## Summary What changed and why? ## Change Type - [ ] Cowork feature - [ ] Bug fix - [x] Core AI contribution - [ ] Test / hardening - [ ] Performance - [ ] Documentation ## Related Work Cowork Task: Core Repo: http://34.143.229.138/gitea-admin/fsg-ai-core-assets Core AI Issue: Core Task: Related PR: ## Scope What is intentionally included? What is intentionally NOT included? ## Validation - [ ] Unit tests - [ ] Integration tests - [ ] Manual verification - [ ] Regression check Commands / evidence: ## Security Impact Permission / credential / network / customer data impact: ## Compatibility - [ ] No breaking change - [ ] Breaking change documented ## Reviewer Notes Anything Cowork reviewers should pay attention to. --------- Co-authored-by: Hiep Ha Van <hiephv3@fpt.com> Co-authored-by: Nam Pham Dinh Thanh <nampdt@fpt.com> Co-authored-by: Lam Hoang Van <lamhv7@fpt.com> Co-authored-by: NamPDT <minhanhpkpro@gmail.com> Reviewed-on: #3
This commit was merged in pull request #3.
This commit is contained in:
@@ -0,0 +1,473 @@
|
||||
# 📋 COWORK-LOCAL BamBOO — Danh Sách Chức Năng Chi Tiết Theo Navigation Bar
|
||||
|
||||
---
|
||||
|
||||
## 🔹 1. 📊 DASHBOARD (Bảng Điều Khiển)
|
||||
|
||||
### 1.1 Token Usage & Cost — Thống Kê Token & Chi Phí
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 1.1.1 | `_refresh_cards()` | Làm mới các thẻ thống kê (Total, Input, Output, Cache tokens + Cost) |
|
||||
| 1.1.2 | `_refresh_chart()` | Vẽ biểu đồ spline theo chu kỳ (week/month/year) và metric (cost/tokens) |
|
||||
| 1.1.3 | `_chart_prev()` / `_chart_next()` | Chuyển đến chu kỳ trước/sau trên biểu đồ |
|
||||
| 1.1.4 | `_on_gran_changed()` | Thay đổi đơn vị thời gian (week/month/year) |
|
||||
| 1.1.5 | `_refresh_budget()` | Cập nhật ngân sách (budget card — còn lại / đã dùng / cảnh báo >85%) |
|
||||
| 1.1.6 | `_apply_budget()` | Lưu giá trị budget mới |
|
||||
| 1.1.7 | `_refresh_habits()` | Hiển thị thói quen sử dụng (task tốn nhiều token nhất, trung bình/prompt, ngày/giờ bận nhất) |
|
||||
| 1.1.8 | `_ai_analyze()` | ✨ AI phân tích thói quen dùng token và gợi ý tiết kiệm |
|
||||
| 1.1.9 | `_apply_saving_strategy()` | Áp dụng chiến lược tiết kiệm AI (tự nén context, nén sớm hơn) |
|
||||
| 1.1.10 | Currency Picker | Chọn đơn vị tiền tệ hiển thị (USD, VND, JPY, …) |
|
||||
|
||||
---
|
||||
|
||||
## 🔹 2. 📅 SCHEDULE TASK (Lên Lịch Nhiệm Vụ)
|
||||
|
||||
### 2.1 Kanban Board
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 2.1.1 | `_build_kanban()` | Xây dựng board Kanban với 7 cột: Backlog, Scheduled, Running, Waiting Input, Done, Failed, Paused |
|
||||
| 2.1.2 | `_render_kanban()` | Render các thẻ task vào từng cột |
|
||||
| 2.1.3 | `_on_task_dropped(task_id, new_status)` | Kéo thả task giữa các cột (thay đổi status) |
|
||||
| 2.1.4 | `_on_card_double_click()` | Mở Task Editor khi double-click |
|
||||
| 2.1.5 | `_on_card_right_click()` | Menu ngữ cảnh: Run now, Edit, Duplicate, Pause, Delete, View logs, Create-next-from-output |
|
||||
| 2.1.6 | `_bulk_delete_menu()` | Xóa hàng loạt (chọn nhiều thẻ → right-click → Delete N selected) |
|
||||
| 2.1.7 | `_run_now(task_id)` | Chạy task ngay lập tức |
|
||||
| 2.1.8 | `_duplicate_task(task_id)` | Sao chép task |
|
||||
| 2.1.9 | `_pause_task(task_id)` | Tạm dừng task |
|
||||
| 2.1.10 | `_delete_task(task_id)` | Xóa task |
|
||||
| 2.1.11 | `_view_logs(task_id)` | Xem log của task |
|
||||
| 2.1.12 | `_search_tasks()` | Tìm kiếm task theo tên |
|
||||
| 2.1.13 | `_filter_by_type()` | Lọc task theo loại (cowork/co4e/code/…) |
|
||||
|
||||
### 2.2 Calendar View
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 2.2.1 | `_build_calendar()` | Xây dựng chế độ xem lịch |
|
||||
| 2.2.2 | `_shift(direction)` | Chuyển tháng/tuần trước/sau |
|
||||
| 2.2.3 | `add_task_on_date(date)` | Thêm task vào ngày cụ thể |
|
||||
| 2.2.4 | `edit_task(task_id)` | Sửa task từ lịch |
|
||||
|
||||
### 2.3 Add / AI Create Task
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 2.3.1 | `_open_add_dialog()` | Mở dialog thêm task thủ công |
|
||||
| 2.3.2 | `_ai_create_task()` | Mở dialog AI tạo task tự động |
|
||||
| 2.3.3 | `_ai_pick_files()` | Chọn file đính kèm cho AI planner |
|
||||
| 2.3.4 | `_generate()` | AI tạo kế hoạch tasks từ mô tả |
|
||||
| 2.3.5 | `_on_planned(result)` | Hiển thị preview các task AI đề xuất |
|
||||
| 2.3.6 | `_confirm()` | Xác nhận và tạo các task từ AI plan |
|
||||
|
||||
### 2.4 AI Import Tasks
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 2.4.1 | `_ai_import()` | AI nhập task từ file/link |
|
||||
| 2.4.2 | `_ai_pick_import_files()` | Chọn file để import |
|
||||
| 2.4.3 | `_generate_import()` | AI phân tích file và tạo tasks |
|
||||
| 2.4.4 | `_on_import_planned()` | Hiển thị preview import |
|
||||
|
||||
---
|
||||
|
||||
## 🔹 3. 🏠 WORKSPACE (Không Gian Làm Việc)
|
||||
|
||||
### 3.1 Projects — Quản Lý Dự Án (Tab 0)
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.1.1 | `_create()` | Tạo dự án mới |
|
||||
| 3.1.2 | `_delete()` | Xóa dự án (có xác nhận) |
|
||||
| 3.1.3 | `_save()` | Lưu thông tin dự án (name, description, instructions, folder) |
|
||||
| 3.1.4 | `_pick_folder()` | Chọn workspace folder cho dự án |
|
||||
| 3.1.5 | `_open_workspace()` | Mở folder workspace trong file explorer |
|
||||
| 3.1.6 | `_select_project_row(project_id)` | Chọn dự án trong danh sách |
|
||||
| 3.1.7 | `_refresh_sandbox_toggle()` | Bật/tắt sandbox cho dự án |
|
||||
| 3.1.8 | `refresh()` | Làm mới danh sách dự án |
|
||||
|
||||
### 3.2 Workspace Pane — Mỗi Dự Án Mở (Tab 1..N)
|
||||
|
||||
#### 3.2.1 🤖 COWORK — Chat Với AI Agent
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.1.1 | `new_session()` | Tạo phiên chat mới |
|
||||
| 3.2.1.2 | `send_message()` | Gửi tin nhắn đến AI agent |
|
||||
| 3.2.1.3 | `_build_job()` | Xây dựng job cho AgentWorker (gọi `run_cowork`) |
|
||||
| 3.2.1.4 | `_cleanup_turn(ctx, ok)` | Dọn dẹp sau khi turn kết thúc (promote files, xóa sandbox) |
|
||||
| 3.2.1.5 | `_promote_turn_outputs()` | Di chuyển file đầu ra từ sandbox lên session output |
|
||||
| 3.2.1.6 | `_refresh_outputs_from_disk()` | Làm mới danh sách output files |
|
||||
| 3.2.1.7 | `_pick_output_folder()` | Chọn thư mục output |
|
||||
| 3.2.1.8 | `_open_skills_manager()` | Mở Skill Manager |
|
||||
| 3.2.1.9 | `refresh_header()` | Làm mới header (project name, model info) |
|
||||
| 3.2.1.10 | `refresh_agents()` | Làm mới danh sách agents trong combo |
|
||||
| 3.2.1.11 | `admin_agent_prompt()` | Lấy prompt từ agent preset đã chọn |
|
||||
| 3.2.1.12 | `build_provider()` | Xây dựng provider từ cấu hình agent/model |
|
||||
| 3.2.1.13 | `workspace_dir()` | Trả về workspace directory hiện tại |
|
||||
| 3.2.1.14 | `_start_watching(dir)` | Giám sát folder output (file watcher) |
|
||||
| 3.2.1.15 | `_on_file_changed()` | Xử lý khi file output thay đổi |
|
||||
|
||||
**ChatPanel (Class cha của CoworkTab):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.1.16 | `_submit_message()` | Gửi tin nhắn (kiểm tra queue, parallel limit) |
|
||||
| 3.2.1.17 | `_on_turn_started()` | Khi turn bắt đầu (show thinking indicator) |
|
||||
| 3.2.1.18 | `_on_turn_finished()` | Khi turn kết thúc (update UI, queue next) |
|
||||
| 3.2.1.19 | `_on_event(ev)` | Xử lý streaming events (text delta, tool calls, plan) |
|
||||
| 3.2.1.20 | `_compress_messages()` | Nén tin nhắn cũ để giảm token |
|
||||
| 3.2.1.21 | `_on_agent_changed()` | Khi thay đổi agent trong combo |
|
||||
| 3.2.1.22 | `_apply_routing()` | Áp dụng model routing (Auto/Manual/Off) |
|
||||
| 3.2.1.23 | `_note_agent_switch()` | Ghi chú khi agent thay đổi giữa các turn |
|
||||
| 3.2.1.24 | `_ensure_conversation()` | Đảm bảo conversation tab tồn tại |
|
||||
| 3.2.1.25 | `load_conversation()` | Load hội thoại từ disk |
|
||||
| 3.2.1.26 | `running_session_ids()` | Trả về danh sách session đang chạy |
|
||||
| 3.2.1.27 | `active_workers()` | Trả về danh sách worker đang hoạt động |
|
||||
| 3.2.1.28 | `_save_conversation()` | Tự động lưu hội thoại |
|
||||
|
||||
**Composer (Composer input box):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.1.29 | `send()` | Gửi tin nhắn |
|
||||
| 3.2.1.30 | `attach_files()` | Đính kèm file |
|
||||
| 3.2.1.31 | `attach_links()` | Đính kèm link URL |
|
||||
| 3.2.1.32 | `has_any_queue()` | Kiểm tra queue có tin nhắn chờ |
|
||||
| 3.2.1.33 | `_parse_directives()` | Phân tích directives inline (`/agent:name`, `/skill:name`) |
|
||||
| 3.2.1.34 | `_show_autocomplete()` | Hiển thị gợi ý tự động |
|
||||
|
||||
#### 3.2.2 ⚡ CO4E — Node-Graph Workflow Studio
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.1 | `_build_sidebar()` | Xây dựng sidebar (Workflows / Agents / Skills tabs) |
|
||||
| 3.2.2.2 | `_build_canvas()` | Xây dựng canvas node-graph |
|
||||
| 3.2.2.3 | `_build_config_panel()` | Xây dựng config panel bên phải |
|
||||
| 3.2.2.4 | `_toggle_config()` | Thu/mở config panel |
|
||||
| 3.2.2.5 | `_build_canvas_overlay()` | Zoom +/− và Fit buttons trên canvas |
|
||||
|
||||
**Workflows (Sidebar):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.6 | `_refresh_flows_list()` | Làm mới danh sách flows |
|
||||
| 3.2.2.7 | `_create_flow()` | Tạo flow mới |
|
||||
| 3.2.2.8 | `_delete_flow()` | Xóa flow |
|
||||
| 3.2.2.9 | `_duplicate_flow()` | Sao chép flow |
|
||||
| 3.2.2.10 | `_import_flow()` | Import flow từ file |
|
||||
| 3.2.2.11 | `_export_flow()` | Export flow ra file |
|
||||
| 3.2.2.12 | `_run_flow()` | Chạy flow (foreground/background) |
|
||||
| 3.2.2.13 | `_stop_flow()` | Dừng flow đang chạy |
|
||||
| 3.2.2.14 | `_open_flow()` | Mở flow trên canvas |
|
||||
|
||||
**Agents (Sidebar):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.15 | `_refresh_agents_list()` | Làm mới danh sách agents |
|
||||
| 3.2.2.16 | `_create_agent()` | Tạo agent mới (dialog) |
|
||||
| 3.2.2.17 | `_edit_agent()` | Sửa agent |
|
||||
| 3.2.2.18 | `_delete_agent()` | Xóa agent |
|
||||
| 3.2.2.19 | `_toggle_agent_enabled()` | Bật/tắt agent |
|
||||
|
||||
**Skills (Sidebar):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.20 | `_refresh_skills_list()` | Làm mới danh sách skills |
|
||||
|
||||
**Canvas (Node-Graph):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.21 | `zoom_in()` / `zoom_out()` | Zoom canvas |
|
||||
| 3.2.2.22 | `fit_view()` | Auto-fit canvas |
|
||||
| 3.2.2.23 | `_add_node()` | Thêm node lên canvas |
|
||||
| 3.2.2.24 | `_delete_node()` | Xóa node |
|
||||
| 3.2.2.25 | `_connect_nodes()` | Kết nối 2 nodes |
|
||||
| 3.2.2.26 | `_drag_node()` | Kéo thả node |
|
||||
| 3.2.2.27 | `_select_node()` | Chọn node (→ config panel) |
|
||||
| 3.2.2.28 | `_activate_node()` | Double-click node |
|
||||
|
||||
**Run Modes:**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.29 | `_set_run_mode("auto")` | Auto mode: agent tự plan rồi execute |
|
||||
| 3.2.2.30 | `_set_run_mode("plan")` | Plan mode: chỉ tạo kế hoạch |
|
||||
| 3.2.2.31 | `_set_run_mode("manual")` | Manual mode: từng bước, bấm "Next step" |
|
||||
| 3.2.2.32 | `_run_step()` | Chạy bước tiếp theo (manual mode) |
|
||||
| 3.2.2.33 | `_on_step_finished()` | Xử lý khi bước hoàn thành |
|
||||
| 3.2.2.34 | `_render_plan()` | Render plan checklist |
|
||||
|
||||
**Chat/Output (Bottom):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.2.35 | `_get_flow_chat(flow_id)` | Lấy ChatView cho flow (tạo mới nếu chưa có) |
|
||||
| 3.2.2.36 | `_on_chat_event()` | Xử lý event từ chat |
|
||||
|
||||
#### 3.2.3 📁 FOLDER — File Explorer
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.3.1 | `set_root(path)` | Đặt thư mục gốc |
|
||||
| 3.2.3.2 | `_build_tree_view()` | Xây dựng cây thư mục (QFileSystemModel) |
|
||||
| 3.2.3.3 | `_open_file(path)` | Mở file được chọn |
|
||||
| 3.2.3.4 | `_view_source()` | Xem source code (syntax highlighting) |
|
||||
| 3.2.3.5 | `_view_html_preview()` | Preview HTML (WebEngine/rich text) |
|
||||
| 3.2.3.6 | `_view_office_doc()` | Xem Office doc (docx/pdf/xlsx/…) |
|
||||
| 3.2.3.7 | `_view_image()` | Hiển thị ảnh inline |
|
||||
| 3.2.3.8 | `_edit_file()` | Chỉnh sửa file (code editor) |
|
||||
| 3.2.3.9 | `_save_file()` | Lưu file |
|
||||
| 3.2.3.10 | `_preview_toggle()` | Chuyển đổi Preview ⇄ Edit |
|
||||
| 3.2.3.11 | `_create_new_file()` | Tạo file mới |
|
||||
| 3.2.3.12 | `_create_new_folder()` | Tạo folder mới |
|
||||
| 3.2.3.13 | `_rename_item()` | Đổi tên file/folder |
|
||||
| 3.2.3.14 | `_delete_item()` | Xóa file/folder |
|
||||
| 3.2.3.15 | `_copy_item()` | Sao chép file/folder |
|
||||
| 3.2.3.16 | `_paste_item()` | Dán file/folder |
|
||||
| 3.2.3.17 | `refresh_ai_models()` | Làm mới danh sách AI models cho AI Edit |
|
||||
|
||||
**AI Edit (Chỉnh Sửa File Bằng AI):**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.3.18 | `_ai_send()` | Gửi yêu cầu AI edit |
|
||||
| 3.2.3.19 | `_ai_apply()` | Áp dụng thay đổi AI |
|
||||
| 3.2.3.20 | `_ai_discard()` | Hủy thay đổi AI |
|
||||
| 3.2.3.21 | `_reset_ai_conversation()` | Xóa hội thoại AI edit |
|
||||
| 3.2.3.22 | `_ai_apply_routing()` | Áp dụng routing cho AI edit |
|
||||
|
||||
#### 3.2.4 🧠 GRAPH RAG — Knowledge Graph
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.4.1 | `_build_graph()` | Xây dựng knowledge graph từ code/documents |
|
||||
| 3.2.4.2 | `_render_d3_graph()` | Render graph bằng D3.js (WebEngine) |
|
||||
| 3.2.4.3 | `_render_native_graph()` | Render graph bằng QGraphicsView (fallback) |
|
||||
| 3.2.4.4 | `_auto_rotate()` | Tự xoay graph khi idle |
|
||||
| 3.2.4.5 | `_on_node_click()` | Xử lý click node (mở folder) |
|
||||
| 3.2.4.6 | `_open_node_path()` | Mở folder chứa node |
|
||||
| 3.2.4.7 | `_refresh_graph()` | Tự cập nhật graph khi có output mới |
|
||||
| 3.2.4.8 | `_search_graph()` | Tìm kiếm trong graph |
|
||||
| 3.2.4.9 | `_filter_by_kind()` | Lọc node theo loại |
|
||||
| 3.2.4.10 | `_zoom_graph()` | Zoom graph |
|
||||
|
||||
**Graph-RAG Q&A:**
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 3.2.4.11 | `_ask_question()` | Hỏi AI về graph |
|
||||
| 3.2.4.12 | `_on_ask_event()` | Xử lý streaming answer |
|
||||
| 3.2.4.13 | `_on_ask_done()` | Khi AI trả lời xong |
|
||||
| 3.2.4.14 | `_candidate_file_paths()` | Lấy danh sách file để extract |
|
||||
| 3.2.4.15 | `_extract_tmp_dir()` | Tạo thư mục tạm cho extraction |
|
||||
| 3.2.4.16 | `_clear_extracts()` | Xóa dữ liệu extract tạm |
|
||||
|
||||
---
|
||||
|
||||
## 🔹 4. 📊 MONITORING (Giám Sát)
|
||||
|
||||
### 4.1 Overview — Tổng Quan
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 4.1.1 | `_refresh_overview()` | Làm mới tất cả cards overview |
|
||||
| 4.1.2 | `_refresh_usage_cards()` | Token Usage & Cost cards (Total, Input, Output, Cache) |
|
||||
| 4.1.3 | `_refresh_resource_usage()` | Resource usage (CPU, RAM, Disk) |
|
||||
| 4.1.4 | `_refresh_recent_activity()` | Hoạt động gần đây |
|
||||
| 4.1.5 | `_refresh_sandbox_details()` | Chi tiết sandbox (PID, uptime, limits) |
|
||||
| 4.1.6 | `_refresh_permissions()` | Hiển thị permissions hiện tại |
|
||||
| 4.1.7 | `_refresh_audit_log()` | Audit log gần đây |
|
||||
| 4.1.8 | `_refresh_budget()` | Budget card (còn lại / đã dùng) |
|
||||
| 4.1.9 | `_apply_budget()` | Lưu budget mới |
|
||||
|
||||
### 4.2 Security Events — Sự Kiện Bảo Mật
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 4.2.1 | `_refresh_security_events()` | Làm mới bảng security events (audit log `kind="security_block"`) |
|
||||
| 4.2.2 | `_filter_security_events()` | Lọc sự kiện bảo mật |
|
||||
| 4.2.3 | `_sort_events()` | Sắp xếp bảng events |
|
||||
|
||||
### 4.3 MCP Call History — Lịch Sử Gọi MCP
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 4.3.1 | `_refresh_mcp_calls()` | Làm mới bảng MCP calls (audit log `kind="mcp_call"`) |
|
||||
| 4.3.2 | `_filter_mcp_calls()` | Lọc MCP calls |
|
||||
|
||||
### 4.4 Action Logs — Nhật Ký Hành Động
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 4.4.1 | `_refresh_action_logs()` | Làm mới bảng action logs (toàn bộ audit log) |
|
||||
| 4.4.2 | `_filter_action_logs()` | Lọc action logs |
|
||||
| 4.4.3 | `_sort_action_logs()` | Sắp xếp action logs |
|
||||
|
||||
### 4.5 Agent Status — Trạng Thái Agent
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 4.5.1 | `_refresh_agent_status()` | Làm mới trạng thái các agent (Cowork, Co4E, Schedule, GraphRAG) |
|
||||
|
||||
### 4.6 Security Settings — Cài Đặt Bảo Mật
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 4.6.1 | `_toggle_sandbox()` | Bật/tắt sandbox |
|
||||
| 4.6.2 | `_toggle_network_block()` | Chặn kết nối mạng |
|
||||
| 4.6.3 | `_set_resource_limits()` | Đặt giới hạn tài nguyên (CPU/RAM/Disk) |
|
||||
| 4.6.4 | `_toggle_command_confirm()` | Xác nhận trước khi chạy lệnh |
|
||||
| 4.6.5 | `_manage_permissions()` | Quản lý quyền truy cập |
|
||||
|
||||
---
|
||||
|
||||
## 🔹 5. ⚙️ SETTINGS (Cài Đặt)
|
||||
|
||||
### 5.1 AI Provider — Nhà Cung Cấp AI
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 5.1.1 | `_on_provider_changed()` | Khi thay đổi provider |
|
||||
| 5.1.2 | `_load_models(provider)` | Load danh sách models của provider |
|
||||
| 5.1.3 | `_test_connection(provider)` | Kiểm tra kết nối provider |
|
||||
| 5.1.4 | `_stash_provider_fields()` | Lưu tạm các trường cấu hình provider |
|
||||
| 5.1.5 | `_apply_provider_fields()` | Áp dụng các trường cấu hình provider |
|
||||
| 5.1.6 | Model List Widget | Hiển thị danh sách models (enable/disable, chọn default) |
|
||||
|
||||
### 5.2 Connectors (MCP) — Kết Nối
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 5.2.1 | `_add_mcp_server()` | Thêm MCP server mới |
|
||||
| 5.2.2 | `_edit_mcp_server()` | Sửa MCP server |
|
||||
| 5.2.3 | `_delete_mcp_server()` | Xóa MCP server |
|
||||
| 5.2.4 | `_test_mcp_connection()` | Kiểm tra kết nối MCP |
|
||||
| 5.2.5 | MS365 Connector | Kết nối Microsoft 365 (tự động khi đăng nhập) |
|
||||
| 5.2.6 | CAD/CAE Connectors | Kết nối CAD/CAE tools |
|
||||
|
||||
### 5.3 Parameters — Tham Số
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 5.3.1 | `attach_tokens` | Giới hạn token cho attachments |
|
||||
| 5.3.2 | `attach_files` | Giới hạn số file attachments |
|
||||
| 5.3.3 | `struct_nodes` | Giới hạn nodes cho GraphRAG |
|
||||
| 5.3.4 | `struct_edges` | Giới hạn edges cho GraphRAG |
|
||||
|
||||
### 5.4 Model Routing — Định Tuyến Model
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 5.4.1 | `routing_mode` | Chế độ routing (Off/Auto/Manual) |
|
||||
| 5.4.2 | `routing_policy` | Chính sách routing |
|
||||
| 5.4.3 | `routing_min_gain` | Threshold tối thiểu để chuyển model |
|
||||
| 5.4.4 | `routing_timeout` | Timeout xác nhận routing |
|
||||
| 5.4.5 | `routing_interval` | Khoảng thời gian đánh giá lại |
|
||||
| 5.4.6 | `routing_concurrency` | Số lượng request đồng thời per provider |
|
||||
| 5.4.7 | `routing_judge` | Model dùng để đánh giá routing |
|
||||
|
||||
### 5.5 General — Chung
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 5.5.1 | Language Picker | Chọn ngôn ngữ (EN/VI/JP) |
|
||||
| 5.5.2 | `tray_chk` | Minimize to tray thay vì đóng |
|
||||
| 5.5.3 | `notify_chk` | Thông báo khi task hoàn thành |
|
||||
| 5.5.4 | `_save()` | Lưu tất cả cài đặt |
|
||||
|
||||
---
|
||||
|
||||
## 🔹 6. 📜 HISTORY SIDEBAR (Thanh Lịch Sử Bên Trái)
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 6.0.1 | `refresh()` | Làm mới danh sách hội thoại |
|
||||
| 6.0.2 | `set_view_state(session_id, running_ids)` | Đánh dấu hội thoại hiện tại + đang chạy |
|
||||
| 6.0.3 | `set_project_filter(project_id)` | Lọc theo dự án |
|
||||
| 6.0.4 | `_open_chat()` | Mở hội thoại khi click |
|
||||
| 6.0.5 | `_context_menu()` | Menu chuột phải (Pin/Unpin, Rename, Delete) |
|
||||
| 6.0.6 | `_bulk_delete_menu()` | Menu xóa hàng loạt |
|
||||
| 6.0.7 | `_confirm_and_delete_selected()` | Xác nhận và xóa các hội thoại đã chọn |
|
||||
| 6.0.8 | `new_chat(kind)` | Tạo hội thoại mới |
|
||||
| 6.0.9 | `collapse_requested()` | Thu nhỏ sidebar |
|
||||
| 6.0.10 | `expand_requested()` | Mở rộng sidebar |
|
||||
|
||||
---
|
||||
|
||||
## 🔹 7. 🧩 CÁC CHỨC NĂNG TOÀN CẦU (Global)
|
||||
|
||||
### 7.1 MainWindow (app.py)
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 7.1.1 | `_build_topbar()` | Xây dựng thanh trên cùng (User name, Settings, Language) |
|
||||
| 7.1.2 | `_build_nav_rail()` | Xây dựng thanh điều hướng bên trái |
|
||||
| 7.1.3 | `_toggle_nav()` | Thu/mở nav rail (icon-only ↔ full) |
|
||||
| 7.1.4 | `_apply_nav_labels()` | Áp dụng labels cho nav items |
|
||||
| 7.1.5 | `_ensure_page(row)` | Xây dựng page lười (lazy loading) |
|
||||
| 7.1.6 | `_refresh_history()` | Làm mới history của tất cả panes |
|
||||
| 7.1.7 | `_on_scheduled_task_done()` | Thông báo khi scheduled task hoàn thành |
|
||||
| 7.1.8 | `_notify_task()` | Thông báo khi task hoàn thành |
|
||||
| 7.1.9 | `_on_projects_changed()` | Khi danh sách dự án thay đổi |
|
||||
| 7.1.10 | `_on_pane_turn_finished()` | Khi turn trong pane hoàn thành |
|
||||
| 7.1.11 | `_open_settings()` | Mở dialog cài đặt |
|
||||
| 7.1.12 | `_fit_to_screen()` | Tự động fit cửa sổ theo màn hình |
|
||||
| 7.1.13 | Toast notifications | Hiển thị thông báo toast |
|
||||
| 7.1.14 | System Tray | Minimize to tray, tray notifications |
|
||||
|
||||
### 7.2 Skills Manager
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 7.2.1 | `_open_skills_manager()` | Mở Skill Manager |
|
||||
| 7.2.2 | `seed_library_skills()` | Gieo skills mặc định |
|
||||
| 7.2.3 | `prune_seeded_builtins()` | Dọn dẹp skills built-in |
|
||||
|
||||
### 7.3 Welcome Dialog
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 7.3.1 | `maybe_show_welcome()` | Hiển thị dialog chào mừng lần đầu |
|
||||
|
||||
### 7.4 i18n (Đa Ngôn Ngữ)
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 7.4.1 | `tr(key)` | Dịch chuỗi theo ngôn ngữ hiện tại |
|
||||
| 7.4.2 | `set_language(lang)` | Đặt ngôn ngữ |
|
||||
| 7.4.3 | `get_language()` | Lấy ngôn ngữ hiện tại |
|
||||
| 7.4.4 | `on_language_changed(callback)` | Đăng ký callback khi ngôn ngữ thay đổi |
|
||||
|
||||
### 7.5 Task Scheduler (Nền)
|
||||
|
||||
| # | Tên Hàm / Chức Năng | Mô Tả |
|
||||
|---|---------------------|--------|
|
||||
| 7.5.1 | `task_finished` signal | Khi scheduled task hoàn thành |
|
||||
| 7.5.2 | `history_ready` signal | Khi session của task sẵn sàng |
|
||||
| 7.5.3 | `running_session_ids()` | Lấy danh sách session đang chạy |
|
||||
|
||||
---
|
||||
|
||||
## 📌 TỔNG KẾT
|
||||
|
||||
| Navigation Item | Số Hàm/Chức Năng |
|
||||
|----------------|:-:|
|
||||
| 📊 Dashboard | ~10 |
|
||||
| 📅 Schedule Task | ~25 |
|
||||
| 🏠 Workspace → Projects | ~8 |
|
||||
| 🏠 Workspace → Cowork | ~34 |
|
||||
| 🏠 Workspace → Co4E | ~36 |
|
||||
| 🏠 Workspace → Folder | ~22 |
|
||||
| 🏠 Workspace → Graph RAG | ~16 |
|
||||
| 📊 Monitoring | ~20 |
|
||||
| ⚙️ Settings | ~25 |
|
||||
| 📜 History Sidebar | ~10 |
|
||||
| 🌐 Global Functions | ~15 |
|
||||
| **TỔNG CỘNG** | **~221** |
|
||||
|
||||
> **Lưu ý:** Đây là danh sách các hàm/chức năng ở cấp UI và business logic chính. Các hàm core (providers, MCP, worker, security…) nằm ở tầng dưới và được gọi bởi các hàm UI ở trên.
|
||||
Reference in New Issue
Block a user