@piagent/platform 1.41.0 → 1.42.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 (125) hide show
  1. package/CHANGELOG.md +1020 -2038
  2. package/CONTRIBUTING.md +2 -0
  3. package/README.md +128 -325
  4. package/README.vi.md +149 -143
  5. package/docs/command-reference-vietnamese.md +2 -2
  6. package/docs/distribution-standard.md +6 -6
  7. package/docs/languages.json +2 -2
  8. package/docs/operator-manual-vietnamese.md +7 -7
  9. package/docs/publishing-for-teams.md +2 -0
  10. package/docs/release-install-policy.md +3 -3
  11. package/docs/team-onboarding.md +2 -2
  12. package/docs-site/architecture.html +71 -63
  13. package/docs-site/assets/docs.css +2736 -1030
  14. package/docs-site/assets/docs.js +451 -43
  15. package/docs-site/assets/og.png +0 -0
  16. package/docs-site/assets/piagent-logo.svg +9 -31
  17. package/docs-site/assets/search-en.json +1 -0
  18. package/docs-site/assets/search-vi.json +1 -0
  19. package/docs-site/benchmark.html +71 -63
  20. package/docs-site/commands.html +72 -64
  21. package/docs-site/content/en/index.html +220 -131
  22. package/docs-site/content/en/quickstart.html +74 -90
  23. package/docs-site/content/en/update.html +80 -0
  24. package/docs-site/content/en/whats-new.html +1 -684
  25. package/docs-site/content/index.html +220 -131
  26. package/docs-site/content/quickstart.html +73 -108
  27. package/docs-site/content/update.html +80 -0
  28. package/docs-site/content/whats-new.html +1 -684
  29. package/docs-site/context-engine.html +73 -65
  30. package/docs-site/ecosystem.html +73 -65
  31. package/docs-site/en/architecture.html +67 -59
  32. package/docs-site/en/benchmark.html +67 -59
  33. package/docs-site/en/commands.html +68 -60
  34. package/docs-site/en/context-engine.html +68 -60
  35. package/docs-site/en/ecosystem.html +68 -60
  36. package/docs-site/en/index.html +281 -220
  37. package/docs-site/en/mcp-approval.html +67 -59
  38. package/docs-site/en/mcp-auth.html +67 -59
  39. package/docs-site/en/mcp-servers.html +68 -60
  40. package/docs-site/en/mcp.html +64 -56
  41. package/docs-site/en/permissions.html +68 -60
  42. package/docs-site/en/profiles.html +68 -60
  43. package/docs-site/en/quickstart.html +142 -150
  44. package/docs-site/en/runtime.html +67 -59
  45. package/docs-site/en/scope.html +68 -60
  46. package/docs-site/en/security.html +64 -56
  47. package/docs-site/en/team.html +67 -59
  48. package/docs-site/en/update.html +228 -0
  49. package/docs-site/en/whats-new.html +1612 -725
  50. package/docs-site/en/windows.html +71 -63
  51. package/docs-site/en/workflows.html +68 -60
  52. package/docs-site/favicon.svg +9 -14
  53. package/docs-site/index.html +281 -220
  54. package/docs-site/mcp-approval.html +70 -62
  55. package/docs-site/mcp-auth.html +70 -62
  56. package/docs-site/mcp-servers.html +71 -63
  57. package/docs-site/mcp.html +70 -62
  58. package/docs-site/permissions.html +72 -64
  59. package/docs-site/profiles.html +72 -64
  60. package/docs-site/quickstart.html +145 -172
  61. package/docs-site/releases.json +4485 -0
  62. package/docs-site/runtime.html +73 -65
  63. package/docs-site/scope.html +73 -65
  64. package/docs-site/security.html +73 -65
  65. package/docs-site/team.html +71 -63
  66. package/docs-site/update.html +228 -0
  67. package/docs-site/whats-new.html +1616 -729
  68. package/docs-site/windows.html +75 -67
  69. package/docs-site/workflows.html +73 -65
  70. package/evals/private-holdout-v1/public-exposure.v2.json +1 -1
  71. package/package.json +1 -1
  72. package/packages/piagent-core/managed/dist/workspace/manifest.json +1 -1
  73. package/packages/piagent-core/managed/dist/workspace/worker.mjs +1 -1
  74. package/packages/piagent-core/package.json +1 -1
  75. package/packages/piagent-core/security/workspace-file-reader.ts +3 -1
  76. package/packages/piagent-webui/dist/client/assets/ActivityPanel-DRAiHliI.js +1 -0
  77. package/packages/piagent-webui/dist/client/assets/App-JMuP_9-r.js +5 -0
  78. package/packages/piagent-webui/dist/client/assets/GatewayApp-awcOLVTi.js +93 -0
  79. package/packages/piagent-webui/dist/client/assets/InspectionApp-DtDc9NxN.js +1 -0
  80. package/packages/piagent-webui/dist/client/assets/LineReview-DZ9ez8kO.js +3 -0
  81. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-DeLo-xiz.js → MarkdownMessage-D7bbIWJe.js} +2 -2
  82. package/packages/piagent-webui/dist/client/assets/SessionAgentWorkspace-DLwK12hX.js +1 -0
  83. package/packages/piagent-webui/dist/client/assets/SessionInspectorDrawer-CsPNI6aU.js +2 -0
  84. package/packages/piagent-webui/dist/client/assets/SettingsNavigation-CM0s3QUC.js +3 -0
  85. package/packages/piagent-webui/dist/client/assets/SettingsPage-Cr6M2FVg.js +1 -0
  86. package/packages/piagent-webui/dist/client/assets/TerminalPanel-A78JVp4e.js +2 -0
  87. package/packages/piagent-webui/dist/client/assets/{TerminalView-r9rG24IO.js → TerminalView-CR4TO5f1.js} +3 -3
  88. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-DPOp-ZoD.js +2 -0
  89. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-H8Ogln3d.js +5 -0
  90. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-vQ5DqfJl.js +1 -0
  91. package/packages/piagent-webui/dist/client/assets/api-BUjrtT1B.js +1 -0
  92. package/packages/piagent-webui/dist/client/assets/composer-drafts-BtMaVw8W.js +1 -0
  93. package/packages/piagent-webui/dist/client/assets/index-Dqb2hNan.css +1 -0
  94. package/packages/piagent-webui/dist/client/assets/index-qi6mjvTy.js +37 -0
  95. package/packages/piagent-webui/dist/client/assets/latest-request-DXcYQW86.js +1 -0
  96. package/packages/piagent-webui/dist/client/assets/tab-close-DHDqCxTL.js +1 -0
  97. package/packages/piagent-webui/dist/client/assets/terminal-transport-Dk5pYNX5.js +1 -0
  98. package/packages/piagent-webui/dist/client/assets/transcript-view-model-BNGQCkzY.js +3 -0
  99. package/packages/piagent-webui/dist/client/assets/ui-preferences-Dy4qeODT.js +1 -0
  100. package/packages/piagent-webui/dist/client/assets/vendor-CA5pzJiI.js +136 -0
  101. package/packages/piagent-webui/dist/client/assets/view-model-CWNiS4JN.js +1 -0
  102. package/packages/piagent-webui/dist/client/assets/workspace-navigation-C8GtShbg.js +1 -0
  103. package/packages/piagent-webui/dist/client/index.html +4 -9
  104. package/packages/piagent-webui/gateway/signed-session-journal.ts +16 -6
  105. package/packages/piagent-webui/server/loopback-server.ts +19 -5
  106. package/packages/piagent-webui/server/static-bundle.ts +10 -2
  107. package/scripts/build-docs-site.mjs +205 -348
  108. package/scripts/check-public-wording.mjs +2 -1
  109. package/scripts/docs-site-icons.mjs +84 -0
  110. package/scripts/docs-site-nav.mjs +302 -0
  111. package/scripts/docs-site-releases.mjs +227 -0
  112. package/scripts/verify-local.sh +17 -1
  113. package/packages/piagent-webui/dist/client/assets/Alert-DGWhP2MM.js +0 -1
  114. package/packages/piagent-webui/dist/client/assets/Button-QItfZUNj.js +0 -1
  115. package/packages/piagent-webui/dist/client/assets/DialogTitle-CyaFPaiW.js +0 -3
  116. package/packages/piagent-webui/dist/client/assets/TerminalPanel-BG-DP_qm.js +0 -2
  117. package/packages/piagent-webui/dist/client/assets/Typography-B9om7Evq.js +0 -1
  118. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-BnqaR3pK.js +0 -2
  119. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-BIxwiGtl.js +0 -5
  120. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-CK3dILhQ.js +0 -1
  121. package/packages/piagent-webui/dist/client/assets/index-DBUTrEXi.css +0 -1
  122. package/packages/piagent-webui/dist/client/assets/index-rlyRccut.js +0 -102
  123. package/packages/piagent-webui/dist/client/assets/tab-close-BoJRyBO_.js +0 -1
  124. package/packages/piagent-webui/dist/client/assets/ui-preferences-BO3AV7QE.js +0 -10
  125. package/packages/piagent-webui/dist/client/assets/useId-DEefKUAT.js +0 -124
@@ -0,0 +1 @@
1
+ [{"href":"/","icon":"home","group":"Bắt đầu","nav":"Tổng quan","title":"Pi Agent Platform","lead":"Coding agent cho cả team: guard kiểm tra mọi tool call, Harness của team tự chạy check và review, một dashboard cho Terminal và trình duyệt.","headings":[{"id":"khac-biet","text":"Agent làm nhanh. Platform giữ cho nó làm đúng."},{"id":"mot-luot","text":"Bạn nói việc. Phần còn lại có kiểm chứng."},{"id":"man-hinh","text":"Chụp từ dashboard đang chạy"},{"id":"hai-che-do","text":"Cùng một dashboard, hai cách dùng model"},{"id":"cai-dat","text":"Chạy trong hai phút"},{"id":"moi-cap-nhat","text":"Phát hành đều, ghi rõ từng thay đổi"}]},{"href":"/ecosystem","icon":"network","group":"Bắt đầu","nav":"Hệ sinh thái","title":"Piagent, Agent Watch và Agent Studio","lead":"Phần nào chạy trên máy bạn, phần nào ở máy chủ công ty, và khi nào dùng model cá nhân hay model của công ty.","headings":[{"id":"toan-canh","text":"Một dashboard, hai cách dùng model"},{"id":"thanh-phan","text":"Mỗi phần làm một việc"},{"id":"piagent","text":"Piagent"},{"id":"guard","text":"Guard"},{"id":"agent-watch","text":"Agent Watch"},{"id":"agent-studio","text":"Agent Studio"},{"id":"mot-luot","text":"Từ tin nhắn tới \"Check đã qua · Review không có lỗi chặn\""},{"id":"chon-che-do","text":"Khi nào dùng cá nhân, khi nào dùng công ty"}]},{"href":"/quickstart","icon":"rocket","group":"Bắt đầu","nav":"Cài đặt","title":"Cài đặt và chạy lượt đầu tiên","lead":"Hai lệnh để cài. Mở repo, chọn profile và quyền, rồi nói việc bằng lời thường.","headings":[{"id":"cai-dat","text":"Cài đặt"},{"id":"mo-project","text":"Mở project"},{"id":"doc-project","text":"Cho agent đọc project"},{"id":"profile-va-quyen","text":"Chọn profile và quyền"},{"id":"giao-viec","text":"Giao việc bằng lời thường"},{"id":"kiem-tra","text":"Kiểm tra cài đặt"},{"id":"ho-tro","text":"Hệ điều hành được hỗ trợ"},{"id":"tiep-theo","text":"Tiếp theo"}]},{"href":"/windows","icon":"windows","group":"Bắt đầu","nav":"Cài trên Windows","title":"Cài trên Windows bằng một lệnh","lead":"Một lệnh PowerShell cài WSL2, Ubuntu, Piagent và Agent Watch, nối key công ty và thêm Piagent vào Start menu. Chạy lại để cập nhật.","headings":[{"id":"cai-mot-lenh","text":"Cài bằng một lệnh"},{"id":"dung-hang-ngay","text":"Dùng hằng ngày"},{"id":"khi-cai-bi-loi","text":"Khi cài bị lỗi"},{"id":"vi-sao-wsl2","text":"Vì sao là WSL2"}]},{"href":"/update","icon":"refresh","group":"Bắt đầu","nav":"Cập nhật và gỡ","title":"Cập nhật, rollback và gỡ cài đặt","lead":"Một lệnh để lên bản mới, dashboard và Terminal tự báo khi có bản mới. Rollback và gỡ cài đặt đều có bước xem trước.","headings":[{"id":"cap-nhat","text":"Cập nhật"},{"id":"cap-nhat-lam-gi","text":"Lệnh này làm gì, theo thứ tự"},{"id":"tuy-chon","text":"Tuỳ chọn thường dùng"},{"id":"pin-cho-team","text":"Pin một bản cho cả team"},{"id":"rollback","text":"Rollback"},{"id":"go-cai-dat","text":"Gỡ cài đặt"},{"id":"windows","text":"Trên Windows"}]},{"href":"/whats-new","icon":"sparkles","group":"Bắt đầu","nav":"Changelog","title":"Changelog","lead":"Mỗi bản phát hành: thay đổi gì, cần bản nào của Studio hay Agent Watch. Bản mới nhất ở trên cùng.","headings":[{"id":"latest","text":"Mới nhất"},{"id":"v1-42-1-title","text":"Dashboard tải nhanh hơn, hash workspace dùng ít bộ nhớ hơn"},{"id":"v1-42-0-title","text":"Dashboard thiết kế lại, tin cũ tải mà không nhảy trang"},{"id":"v1-41-0-title","text":"Báo cáo thay đổi giao diện với ảnh trước/sau"},{"id":"v1-40-0-title","text":"Project local cũng được báo cho Studio"},{"id":"v1-39-0-title","text":"Cảnh báo khi key của team được dùng ngoài team"},{"id":"v1-38-2-title","text":"Cây thư mục, theme màu và editor luôn trong tầm nhìn"},{"id":"v1-38-1-title","text":"Bản phát hành chính thức của v1.38.0"},{"id":"v1-38-0-title","text":"Piagent thành editor, Bypass không hỏi gì không phát hành"},{"id":"v1-37-1-title","text":"Đóng run và báo cáo helper mà Studio tin được"},{"id":"v1-37-0-title","text":"Câu trả lời bị cắt không còn làm dừng task dài"},{"id":"v1-36-1-title","text":"Agent Watch lỗi thoáng qua không còn làm dừng task"},{"id":"v1-36-0-title","text":"Team memory học từ chỗ làm sai"},{"id":"v1-35-1-title","text":"Lỗi tạm thời của nhà cung cấp model không còn làm dừng task dài"},{"id":"v1-35-0-title","text":"Task dài của công ty chạy qua được lúc Studio cập nhật"},{"id":"v1-34-3-title","text":"Agent Watch báo cho cuộc trò chuyện công ty"},{"id":"v1-34-2-title","text":"Kết quả của helper đến được Studio"},{"id":"v1-34-1-title","text":"Kết quả helper, comment theo dòng và thông báo Agent Watch"},{"id":"v1-33-0-title","text":"Session công ty và cá nhân chạy trên Pi 1.3.0"},{"id":"v1-32-1-title","text":"Bypass được giữ sau khi tải lại, tab đang dùng không bị đăng xuất"},{"id":"v1-32-0-title","text":"Lượt lỗi hoặc bấm Stop được dừng cả ở Studio"},{"id":"v1-31-1-title","text":"memory_ask có ngay từ cuộc trò chuyện đầu tiên sau khi cập nhật"},{"id":"v1-31-0-title","text":"Team memory đi theo việc đang làm"},{"id":"v1-30-1-title","text":"Terminal công ty ẩn tên model; báo đúng lý do ở thư mục home"},{"id":"v1-30-0-title","text":"Context lớn đi qua mạng chậm; Terminal công ty rõ ràng hơn"},{"id":"archive","text":"Các bản trước"}]},{"href":"/scope","icon":"target","group":"Bắt đầu","nav":"Phạm vi platform","title":"Platform nhận phần nào về mình","lead":"Agent nào cũng có cơ chế governance riêng. Platform này đóng gói một cách vận hành cụ thể trên Pi để mọi repo dùng lại.","headings":[{"id":"khong-phai-agent-moi","text":"Đây không phải một agent mới"},{"id":"hai-lop-khong-thay-the-nhau","text":"Hai lớp không thay thế nhau"},{"id":"lop-duoi","text":"Lớp dưới thấy process"},{"id":"lop-tren","text":"Lớp trên thấy ý định"},{"id":"khi-nao-khong-can","text":"Khi nào không cần"}]},{"href":"/profiles","icon":"sliders","group":"Sử dụng","nav":"Project profile","title":"Chọn đúng profile cho repo","lead":"Profile quyết định protected path, verify command và capability mà repo được cấp; ghi vào .pi/piagent-profile.json và lock tương ứng.","headings":[]},{"href":"/permissions","icon":"key","group":"Sử dụng","nav":"Permission modes","title":"Đổi quyền theo task bằng một lệnh","lead":"Permission mode chỉ áp dụng cho session hiện tại. Đổi mode không sửa project profile.","headings":[]},{"href":"/commands","icon":"terminal","group":"Sử dụng","nav":"Command catalog","title":"Command ngắn, hành vi rõ","lead":"Slash command gói sẵn policy và flow; một inspector cho diff, command, safety và context.","headings":[{"id":"session-basics","text":"Session basics"},{"id":"project-profile","text":"Project profile"},{"id":"implementation-workflow","text":"Giao việc"},{"id":"git-handoff","text":"Git handoff"},{"id":"fresh-sessions","text":"Session mới"},{"id":"mcp","text":"MCP"},{"id":"subagents","text":"Subagents"},{"id":"product-status-command","text":"Xem runtime đang quyết định gì"},{"id":"skill-va-package","text":"Kiểm tra chất lượng test, chạy vòng thử nghiệm"}]},{"href":"/workflows","icon":"branch","group":"Sử dụng","nav":"Workflows","title":"Làm việc hằng ngày","lead":"Không có launcher workflow: nói việc bằng lời thường. Command xem thêm chỉ quan sát, không mở lượt model.","headings":[{"id":"ket-luan","text":"Không có command bắt buộc mới trong daily flow"},{"id":"command-anh-huong-gi","text":"Command xem thêm ảnh hưởng workflow đến đâu"},{"id":"luong-mau","text":"Một luồng đầy đủ có thể dùng như sau"}]},{"href":"/mcp","icon":"plug","group":"MCP","nav":"Tổng quan MCP","title":"MCP trong Pi Agent Platform","lead":"Platform cài pi-mcp-adapter để dùng MCP tiết kiệm token, và quản lý server trên bốn lớp cấu hình.","headings":[{"id":"bat-dau","text":"Bắt đầu ở đâu"},{"id":"ba-thu-trung-ten","text":"Ba thứ trùng tên, không nối với nhau"},{"id":"bon-layer-config","text":"Bốn layer config"},{"id":"preset","text":"Preset seed sẵn"},{"id":"token","text":"Token efficiency"}]},{"href":"/mcp-servers","icon":"server","group":"MCP","nav":"Quản lý server","title":"Thêm, xem và gỡ MCP server","lead":"piagent-mcp có đủ add, remove, get, list, enable, disable trên cả bốn scope.","headings":[{"id":"hai-be-mat","text":"Hai bề mặt, chọn theo chỗ đang đứng"},{"id":"lenh","text":"Lệnh"},{"id":"trong-session","text":"Trong session"},{"id":"them-server","text":"Thêm server"},{"id":"xem","text":"Xem"},{"id":"tat-xoa","text":"Tắt và xoá"},{"id":"preset-lenh","text":"Preset"},{"id":"output","text":"Output nói rõ đã sửa file nào"},{"id":"update","text":"Server tự thêm và luồng update"},{"id":"giu-nguyen","text":"Giữ nguyên"},{"id":"bi-ghi-de","text":"Bị ghi đè"}]},{"href":"/mcp-auth","icon":"lock","group":"MCP","nav":"Auth và readiness","title":"Đăng nhập và trạng thái sẵn sàng","lead":"Platform không giữ token và không tự chạy OAuth. Nó từ chối ghi secret vào config và cho biết server nào thật sự gọi được.","headings":[{"id":"khong-giu-token","text":"Platform không giữ token"},{"id":"tu-choi-secret","text":"Secret bị từ chối ngay khi ghi config"},{"id":"theo-ten","text":"Theo tên field"},{"id":"theo-gia-tri","text":"Theo giá trị"},{"id":"trang-thai","text":"Trạng thái sẵn sàng"}]},{"href":"/mcp-approval","icon":"shield-check","group":"MCP","nav":"Approval gate","title":"Server đến từ repo phải được duyệt","lead":"Clone một repo lạ không cho tác giả repo đó chạy process trên máy bạn. Quyết định lưu ngoài repo và pin theo digest.","headings":[{"id":"van-de","text":"Vấn đề"},{"id":"ba-tinh-chat","text":"Ba tính chất"},{"id":"ngoai-repo","text":"Quyết định nằm ngoài repo"},{"id":"pin-digest","text":"Pin theo digest"},{"id":"enforce-tool-call","text":"Enforce ở tool call"},{"id":"gioi-han","text":"Giới hạn"},{"id":"imports","text":"Server đến qua imports"},{"id":"thiet-ke","text":"Bốn quyết định thiết kế"},{"id":"migration","text":"Migration"}]},{"href":"/security","icon":"shield","group":"Vận hành","nav":"Security model","title":"Lớp policy, không phải OS sandbox","lead":"Fail-closed trong bề mặt tool được kiểm soát: lock sai, profile sai hay thiếu quyền thì chặn, không đoán.","headings":[{"id":"protected-paths","text":"Protected paths"},{"id":"shell-hardening","text":"Shell hardening"},{"id":"secret-redaction","text":"Secret redaction"},{"id":"capability-lock","text":"Capability lock"},{"id":"human-action-gate","text":"Human-action gate"},{"id":"verify-evidence","text":"Check thật"}]},{"href":"/architecture","icon":"layers","group":"Vận hành","nav":"Kiến trúc","title":"Kiến trúc repo","lead":"Core chỉ giữ policy, prompt, guard, skill và script dùng lại được; business logic ở lại project của nó.","headings":[{"id":"composition","text":"Composition"},{"id":"runtime-adapters","text":"Runtime adapters"},{"id":"core-services","text":"Core services"},{"id":"integrations","text":"Integrations"},{"id":"entrypoints","text":"Entrypoints"},{"id":"product-assets","text":"Product assets"},{"id":"adaptive-runtime","text":"Piagent tách runtime decision khỏi Pi wiring"},{"id":"state-ownership","text":"Một state chỉ có một source of truth"}]},{"href":"/context-engine","icon":"cpu","group":"Vận hành","nav":"Context Engine","title":"Ít context hơn, giữ nguyên chất lượng","lead":"Index local, retrieval có xếp hạng, tool nạp theo task, compaction theo ngữ nghĩa và telemetry minh bạch.","headings":[{"id":"dynamic-tools","text":"Tool theo task"},{"id":"local-index","text":"Index local"},{"id":"ranked-context","text":"Context có xếp hạng"},{"id":"semantic-compact","text":"Semantic compact"},{"id":"test-impact","text":"Test impact"},{"id":"agent-watch","text":"Agent Watch"}]},{"href":"/benchmark","icon":"chart","group":"Vận hành","nav":"Benchmark","title":"Bằng chứng chất lượng và hiệu suất","lead":"So Piagent với codex-cli trên cùng model, cùng thinking: 18 nhóm bài, 108 session chấm tự động.","headings":[{"id":"benchmark-verdict","text":"Điểm fresh-token lịch sử: 9,97/10"},{"id":"cau-hinh","text":"Cùng model, cùng bài, chấm tự động"},{"id":"diem-so","text":"Không đổi chất lượng lấy token"},{"id":"token","text":"Đo toàn bộ workload cố định, không chỉ task thành công"},{"id":"pham-vi","text":"Sáu domain, mỗi domain ba family"},{"id":"benchmark-bands","text":"Chọn đúng suite theo quyết định cần đưa ra"},{"id":"minh-bach","text":"Đọc kết quả đúng phạm vi"},{"id":"lich-su-v1-2-12","text":"v1.2.12 vẫn được giữ như bằng chứng lịch sử"}]},{"href":"/runtime","icon":"wrench","group":"Vận hành","nav":"Runtime tools","title":"Terminal command cho người vận hành","lead":"Command chạy ngoài slash command: setup, doctor, benchmark, capability và MCP.","headings":[]},{"href":"/team","icon":"users","group":"Vận hành","nav":"Dùng cho team","title":"Một chuẩn vận hành cho cả team","lead":"Mỗi repo link package, chọn profile phù hợp và giữ tài liệu riêng ở repo của dự án đó.","headings":[{"id":"viec-nen-lam","text":"Việc nên làm"},{"id":"viec-nen-tranh","text":"Việc nên tránh"}]}]
@@ -1,108 +1,109 @@
1
1
  <!doctype html>
2
- <html lang="vi" data-copy-success="Đã lấy" data-copy-fallback="Chọn lệnh">
2
+ <html lang="vi" data-copy-success="Đã lấy" data-copy-fallback="Chọn lệnh" data-copy-label="Sao chép">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Bằng chứng chất lượng và hiệu suất · Pi Agent Platform Docs</title>
7
- <meta name="description" content="Production benchmark so sánh Piagent với surface codex-cli trên cùng model, cùng thinking level, 18 nhóm bài và 108 session được chấm tự động." />
8
- <meta name="theme-color" content="#050505" />
6
+ <title>Bằng chứng chất lượng và hiệu suất · Pi Agent Platform</title>
7
+ <meta name="description" content="So Piagent với codex-cli trên cùng model, cùng thinking: 18 nhóm bài, 108 session chấm tự động." />
8
+ <meta name="theme-color" content="#09090b" media="(prefers-color-scheme: dark)" />
9
+ <meta name="theme-color" content="#fbfbf9" media="(prefers-color-scheme: light)" />
9
10
  <link rel="canonical" href="https://piagent.io.vn/benchmark" />
10
11
  <link rel="alternate" hreflang="vi" href="https://piagent.io.vn/benchmark" />
11
12
  <link rel="alternate" hreflang="en" href="https://piagent.io.vn/en/benchmark" />
12
13
  <link rel="alternate" hreflang="x-default" href="https://piagent.io.vn/benchmark" />
13
14
  <link rel="icon" href="/favicon.svg" type="image/svg+xml" />
14
- <meta property="og:title" content="Bằng chứng chất lượng và hiệu suất · Pi Agent Platform Docs" />
15
- <meta property="og:description" content="Production benchmark so sánh Piagent với surface codex-cli trên cùng model, cùng thinking level, 18 nhóm bài và 108 session được chấm tự động." />
15
+ <meta property="og:type" content="website" />
16
+ <meta property="og:title" content="Bằng chứng chất lượng và hiệu suất · Pi Agent Platform" />
17
+ <meta property="og:description" content="So Piagent với codex-cli trên cùng model, cùng thinking: 18 nhóm bài, 108 session chấm tự động." />
16
18
  <meta property="og:url" content="https://piagent.io.vn/benchmark" />
19
+ <meta property="og:image" content="https://piagent.io.vn/assets/og.png" />
20
+ <meta name="twitter:card" content="summary_large_image" />
21
+ <script>try{var t=localStorage.getItem("piagent-docs-theme");if(t==="light"||t==="dark")document.documentElement.dataset.theme=t}catch(e){}</script>
17
22
  <link rel="preconnect" href="https://fonts.googleapis.com" />
18
23
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
19
24
  <link
20
- href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap"
25
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700;750&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
21
26
  rel="stylesheet"
22
27
  />
23
28
  <link rel="stylesheet" href="/assets/docs.css" />
24
29
  <script src="/assets/docs.js" defer></script>
25
30
  </head>
26
31
  <body>
32
+ <svg width="0" height="0" style="position:absolute" aria-hidden="true"><symbol id="icon-branch" viewBox="0 0 24 24"><circle cx="6" cy="5.5" r="2"/><circle cx="6" cy="18.5" r="2"/><circle cx="18" cy="7.5" r="2"/><path d="M6 7.5v9M18 9.5c0 4.5-5 4-11 7.5"/></symbol><symbol id="icon-chart" viewBox="0 0 24 24"><path d="M4 4v16h16"/><path d="M8.5 16v-5M12.5 16V8M16.5 16v-3"/></symbol><symbol id="icon-cpu" viewBox="0 0 24 24"><rect x="6" y="6" width="12" height="12" rx="2"/><rect x="9.5" y="9.5" width="5" height="5" rx=".8"/><path d="M9 2.5V6M15 2.5V6M9 18v3.5M15 18v3.5M2.5 9H6M2.5 15H6M18 9h3.5M18 15h3.5"/></symbol><symbol id="icon-edit" viewBox="0 0 24 24"><path d="M4 20h4L19 9l-4-4L4 16z"/><path d="m13.5 6.5 4 4"/></symbol><symbol id="icon-github" viewBox="0 0 24 24"><path d="M9 19c-4.5 1.5-4.5-2.5-6.5-3m13 6v-3.5a3 3 0 0 0-.9-2.4c3-.3 6.4-1.5 6.4-6.7a5.2 5.2 0 0 0-1.4-3.6 4.8 4.8 0 0 0-.1-3.6s-1.1-.3-3.7 1.4a12.6 12.6 0 0 0-6.6 0C6.6 1.9 5.5 2.2 5.5 2.2a4.8 4.8 0 0 0-.1 3.6A5.2 5.2 0 0 0 4 9.4c0 5.2 3.4 6.4 6.4 6.7a3 3 0 0 0-.9 2.4V22"/></symbol><symbol id="icon-hash" viewBox="0 0 24 24"><path d="M5 9h15M4 15h15M10 3 8 21M16 3l-2 18"/></symbol><symbol id="icon-home" viewBox="0 0 24 24"><path d="M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/></symbol><symbol id="icon-key" viewBox="0 0 24 24"><circle cx="8" cy="15" r="4"/><path d="m10.9 12.1 8.6-8.6M16.5 6.5l2.5 2.5M14 9l2 2"/></symbol><symbol id="icon-layers" viewBox="0 0 24 24"><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/><path d="m3 17.5 9 5 9-5" opacity=".55"/></symbol><symbol id="icon-lock" viewBox="0 0 24 24"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></symbol><symbol id="icon-menu" viewBox="0 0 24 24"><path d="M4 7h16M4 12h16M4 17h16"/></symbol><symbol id="icon-moon" viewBox="0 0 24 24"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z"/></symbol><symbol id="icon-network" viewBox="0 0 24 24"><circle cx="12" cy="5" r="2.5"/><circle cx="5" cy="19" r="2.5"/><circle cx="19" cy="19" r="2.5"/><path d="M12 7.5V12m0 0-5.2 5.2M12 12l5.2 5.2"/></symbol><symbol id="icon-plug" viewBox="0 0 24 24"><path d="M9 3v4M15 3v4M6 7h12v4a6 6 0 0 1-12 0zM12 17v4"/></symbol><symbol id="icon-refresh" viewBox="0 0 24 24"><path d="M20 11A8 8 0 0 0 5.3 6.7M4 3v4h4"/><path d="M4 13a8 8 0 0 0 14.7 4.3M20 21v-4h-4"/></symbol><symbol id="icon-rocket" viewBox="0 0 24 24"><path d="M5.5 15.5C4 17 3.5 19.5 3.5 20.5c1 0 3.5-.5 5-2"/><path d="M9 15 6.5 12.5C8 8.5 11.5 4.5 20 4c-.5 8.5-4.5 12-8.5 13.5z"/><circle cx="14.5" cy="9.5" r="1.5"/></symbol><symbol id="icon-search" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></symbol><symbol id="icon-server" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="7" rx="2"/><rect x="3" y="13" width="18" height="7" rx="2"/><path d="M7 7.5h.01M7 16.5h.01"/></symbol><symbol id="icon-shield" viewBox="0 0 24 24"><path d="M12 3 4.5 6v5.5c0 4.8 3.2 8.2 7.5 9.5 4.3-1.3 7.5-4.7 7.5-9.5V6z"/></symbol><symbol id="icon-shield-check" viewBox="0 0 24 24"><path d="M12 3 4.5 6v5.5c0 4.8 3.2 8.2 7.5 9.5 4.3-1.3 7.5-4.7 7.5-9.5V6z"/><path d="m9 12 2.2 2.2L15.5 10"/></symbol><symbol id="icon-sliders" viewBox="0 0 24 24"><path d="M4 7h9M17 7h3M4 17h3M11 17h9"/><circle cx="15" cy="7" r="2"/><circle cx="9" cy="17" r="2"/></symbol><symbol id="icon-sparkles" viewBox="0 0 24 24"><path d="M11 3c.6 4.6 2.4 6.4 7 7-4.6.6-6.4 2.4-7 7-.6-4.6-2.4-6.4-7-7 4.6-.6 6.4-2.4 7-7z"/><path d="M19 15v5M16.5 17.5h5"/></symbol><symbol id="icon-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"/></symbol><symbol id="icon-target" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1"/></symbol><symbol id="icon-terminal" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="m7.5 9.5 3 2.5-3 2.5M13 15h4"/></symbol><symbol id="icon-users" viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.5"/><path d="M2.5 20a6.5 6.5 0 0 1 13 0"/><path d="M16 4.5a3.5 3.5 0 0 1 0 7M18 14a6 6 0 0 1 3.5 6"/></symbol><symbol id="icon-windows" viewBox="0 0 24 24"><path d="M3.5 5.5 10.5 4.5v7h-7zM13 4.2 20.5 3v8.5H13zM3.5 13h7v7l-7-1zM13 13h7.5v8.5L13 20.3z"/></symbol><symbol id="icon-wrench" viewBox="0 0 24 24"><path d="M15 6.5a4.5 4.5 0 0 1-6 6l-5 5L6.5 20l5-5a4.5 4.5 0 0 0 6-6L15 11.5l-2.5-2.5z"/></symbol></svg>
33
+ <a class="skip-link" href="#content">Tới nội dung</a>
27
34
  <header class="topbar">
35
+ <button class="icon-button mobile-menu" type="button" data-menu aria-label="Mở menu tài liệu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-menu"/></svg></button>
28
36
  <a class="brand" href="/" aria-label="Pi Agent Platform">
29
- <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" /></span>
30
- <span>Pi Agent Platform</span>
37
+ <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
+ <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
31
39
  </a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.42.1" title="v1.42.1 docs · VI"><span class="dot"></span>v1.42.1</a>
41
+ <nav class="top-nav" aria-label="Tài liệu">
42
+ <a href="/quickstart">Tài liệu</a>
43
+ <a href="/whats-new">Changelog</a>
44
+ <a href="/benchmark" aria-current="page">Benchmark</a>
45
+ </nav>
46
+ <span class="top-spacer"></span>
47
+ <button class="search-trigger" type="button" data-search aria-label="Tìm trong tài liệu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-search"/></svg><span>Tìm trong tài liệu…</span><kbd>⌘K</kbd></button>
32
48
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.41.0 docs · VI</span>
34
- <nav class="language-switch" aria-label="Ngôn ngữ">
35
- <a class="language-option current" href="/benchmark" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
- <a class="language-option" href="/en/benchmark" hreflang="en" lang="en">EN</a>
37
- </nav>
38
- <a class="button social" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer" aria-label="Mở GitHub repository">
39
- <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
40
- <path d="M7 17 17 7M9 7h8v8" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
41
- </svg>
42
- GitHub
43
- </a>
44
- <button class="button mobile-menu" type="button" data-menu>Lộ trình</button>
45
- <a class="button top-command-link" href="/commands">Commands</a>
49
+ <nav class="language-switch" aria-label="Ngôn ngữ"><a class="language-option current" href="/benchmark" hreflang="vi" lang="vi" aria-current="true">VI</a><a class="language-option" href="/en/benchmark" hreflang="en" lang="en">EN</a></nav>
50
+ <button class="icon-button theme-toggle" type="button" data-theme-toggle aria-label="Đổi giao diện sáng/tối"><svg class="icon icon-moon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-moon"/></svg><svg class="icon icon-sun" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-sun"/></svg></button>
51
+ <a class="icon-button" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer" aria-label="Mở GitHub repository"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-github"/></svg></a>
46
52
  </div>
47
53
  </header>
48
54
 
49
55
  <div class="layout with-toc">
50
56
  <aside class="sidebar" data-sidebar>
51
- <div class="sidebar-search" aria-label="Tìm trong tài liệu">
52
- <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
53
- <path d="M10.8 18.1a7.3 7.3 0 1 1 0-14.6 7.3 7.3 0 0 1 0 14.6Zm5.3-1.7 4.4 4.4" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
54
- </svg>
55
- <input type="search" placeholder="Tìm trang" data-filter />
56
- </div>
57
-
58
57
  <nav aria-label="Tài liệu">
59
58
  <div class="nav-group">
60
- <p class="nav-title">Get started</p>
61
- <a class="nav-link" href="/">Overview</a>
62
- <a class="nav-link" href="/ecosystem">Hệ sinh thái</a>
63
- <a class="nav-link" href="/quickstart">Quickstart</a>
64
- <a class="nav-link" href="/windows">Cài trên Windows</a>
65
- <a class="nav-link" href="/whats-new">Có gì mới</a>
66
- <a class="nav-link" href="/scope">Phạm vi platform</a>
59
+ <p class="nav-title">Bắt đầu</p>
60
+ <a class="nav-link" href="/"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-home"/></svg><span>Tổng quan</span></a>
61
+ <a class="nav-link" href="/ecosystem"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-network"/></svg><span>Hệ sinh thái</span></a>
62
+ <a class="nav-link" href="/quickstart"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-rocket"/></svg><span>Cài đặt</span></a>
63
+ <a class="nav-link" href="/windows"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-windows"/></svg><span>Cài trên Windows</span></a>
64
+ <a class="nav-link" href="/update"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-refresh"/></svg><span>Cập nhật và gỡ</span></a>
65
+ <a class="nav-link" href="/whats-new"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-sparkles"/></svg><span>Changelog</span></a>
66
+ <a class="nav-link" href="/scope"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-target"/></svg><span>Phạm vi platform</span></a>
67
67
  </div>
68
68
  <div class="nav-group">
69
- <p class="nav-title">Build</p>
70
- <a class="nav-link" href="/profiles">Project profile</a>
71
- <a class="nav-link" href="/permissions">Permission modes</a>
72
- <a class="nav-link" href="/commands">Command catalog</a>
73
- <a class="nav-link" href="/workflows">Workflows</a>
69
+ <p class="nav-title">Sử dụng</p>
70
+ <a class="nav-link" href="/profiles"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-sliders"/></svg><span>Project profile</span></a>
71
+ <a class="nav-link" href="/permissions"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-key"/></svg><span>Permission modes</span></a>
72
+ <a class="nav-link" href="/commands"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-terminal"/></svg><span>Command catalog</span></a>
73
+ <a class="nav-link" href="/workflows"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-branch"/></svg><span>Workflows</span></a>
74
74
  </div>
75
75
  <div class="nav-group">
76
76
  <p class="nav-title">MCP</p>
77
- <a class="nav-link" href="/mcp">MCP overview</a>
78
- <a class="nav-link" href="/mcp-servers">Quản lý server</a>
79
- <a class="nav-link" href="/mcp-auth">Auth và readiness</a>
80
- <a class="nav-link" href="/mcp-approval">Approval gate</a>
77
+ <a class="nav-link" href="/mcp"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-plug"/></svg><span>Tổng quan MCP</span></a>
78
+ <a class="nav-link" href="/mcp-servers"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-server"/></svg><span>Quản lý server</span></a>
79
+ <a class="nav-link" href="/mcp-auth"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-lock"/></svg><span>Auth và readiness</span></a>
80
+ <a class="nav-link" href="/mcp-approval"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-shield-check"/></svg><span>Approval gate</span></a>
81
81
  </div>
82
82
  <div class="nav-group">
83
- <p class="nav-title">Operate</p>
84
- <a class="nav-link" href="/security">Security model</a>
85
- <a class="nav-link" href="/architecture">Architecture</a>
86
- <a class="nav-link" href="/context-engine">Context Engine</a>
87
- <a class="nav-link current" href="/benchmark" aria-current="page">Benchmark</a>
88
- <a class="nav-link" href="/runtime">Runtime tools</a>
89
- <a class="nav-link" href="/team">Team usage</a>
83
+ <p class="nav-title">Vận hành</p>
84
+ <a class="nav-link" href="/security"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-shield"/></svg><span>Security model</span></a>
85
+ <a class="nav-link" href="/architecture"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-layers"/></svg><span>Kiến trúc</span></a>
86
+ <a class="nav-link" href="/context-engine"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-cpu"/></svg><span>Context Engine</span></a>
87
+ <a class="nav-link current" href="/benchmark" aria-current="page"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-chart"/></svg><span>Benchmark</span></a>
88
+ <a class="nav-link" href="/runtime"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-wrench"/></svg><span>Runtime tools</span></a>
89
+ <a class="nav-link" href="/team"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-users"/></svg><span>Dùng cho team</span></a>
90
90
  </div>
91
91
  </nav>
92
92
  </aside>
93
93
 
94
- <main>
94
+ <main id="content">
95
95
  <div class="content-shell" data-article>
96
96
  <nav class="breadcrumb" aria-label="Breadcrumb">
97
97
  <a href="/">Docs</a>
98
98
  <span aria-hidden="true">/</span>
99
- <span>Operate</span>
100
- <span aria-hidden="true">/</span>
101
- <span>Benchmark</span>
99
+ <span>Vận hành</span>
102
100
  </nav>
103
101
  <div class="page-head">
104
102
  <h1>Bằng chứng chất lượng và hiệu suất</h1>
105
- <p>Production benchmark so sánh Piagent với surface codex-cli trên cùng model, cùng thinking level, 18 nhóm bài và 108 session được chấm tự động.</p>
103
+ <p>So Piagent với codex-cli trên cùng model, cùng thinking: 18 nhóm bài, 108 session chấm tự động.</p>
104
+ <div class="page-meta">
105
+ <a href="https://github.com/Vt-mmm/piagent/blob/main/docs-site/content/benchmark.html" target="_blank" rel="noopener noreferrer"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-edit"/></svg>Sửa trang này</a>
106
+ </div>
106
107
  </div>
107
108
  <div class="callout">
108
109
  <strong>Số liệu lịch sử</strong>
@@ -339,22 +340,22 @@
339
340
  </section>
340
341
  <nav class="pager" aria-label="Trang kế tiếp">
341
342
  <a class="pager-prev" href="/context-engine">
342
- <span class="pager-label">Trước</span>
343
+ <span class="pager-label">← Trước</span>
343
344
  <span class="pager-title">Context Engine</span>
344
345
  </a>
345
346
  <a class="pager-next" href="/runtime">
346
- <span class="pager-label">Tiếp</span>
347
+ <span class="pager-label">Tiếp →</span>
347
348
  <span class="pager-title">Runtime tools</span>
348
349
  </a>
349
350
  </nav>
350
351
 
351
352
  <footer class="footer">
352
- <p>Pi Agent Platform docs · static HTML · governed agent workflow</p>
353
+ <p>Pi Agent Platform · MIT · tài liệu tĩnh, không cookie</p>
353
354
  <div class="footer-links" aria-label="Liên kết ngoài">
354
- <a href="https://piagent.io.vn" target="_blank" rel="noopener noreferrer">piagent.io.vn</a>
355
- <a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub repository</a>
355
+ <a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub</a>
356
+ <a href="https://www.npmjs.com/package/@piagent/platform" target="_blank" rel="noopener noreferrer">npm</a>
356
357
  <a href="/en/benchmark" hreflang="en">English</a>
357
- <a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook profile</a>
358
+ <a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook</a>
358
359
  </div>
359
360
  </footer>
360
361
  </div>
@@ -365,6 +366,13 @@
365
366
  <nav data-toc></nav>
366
367
  </aside>
367
368
  </div>
369
+ <div class="palette" data-palette data-index="/assets/search-vi.json" data-empty="Không có trang nào khớp." role="dialog" aria-modal="true" aria-label="Tìm trong tài liệu">
370
+ <div class="palette-box">
371
+ <label class="palette-input"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-search"/></svg><input type="search" placeholder="Tìm trong tài liệu…" aria-label="Tìm trong tài liệu" autocomplete="off" spellcheck="false" /></label>
372
+ <div class="palette-results" data-results role="listbox"></div>
373
+ <div class="palette-foot"><span>↑↓ chọn</span><span>↵ mở</span><span>esc đóng</span></div>
374
+ </div>
375
+ </div>
368
376
  <script>
369
377
  window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
370
378
  </script>
@@ -1,108 +1,109 @@
1
1
  <!doctype html>
2
- <html lang="vi" data-copy-success="Đã lấy" data-copy-fallback="Chọn lệnh">
2
+ <html lang="vi" data-copy-success="Đã lấy" data-copy-fallback="Chọn lệnh" data-copy-label="Sao chép">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Command ngắn, rõ, ít token burn · Pi Agent Platform Docs</title>
7
- <meta name="description" content="Slash command gói sẵn policy và flow; một inspector menu duy nhất cho diff, command, safety và context. Thành viên không cần nhớ nhiều command rời." />
8
- <meta name="theme-color" content="#050505" />
6
+ <title>Command ngắn, hành vi rõ · Pi Agent Platform</title>
7
+ <meta name="description" content="Slash command gói sẵn policy và flow; một inspector cho diff, command, safety và context." />
8
+ <meta name="theme-color" content="#09090b" media="(prefers-color-scheme: dark)" />
9
+ <meta name="theme-color" content="#fbfbf9" media="(prefers-color-scheme: light)" />
9
10
  <link rel="canonical" href="https://piagent.io.vn/commands" />
10
11
  <link rel="alternate" hreflang="vi" href="https://piagent.io.vn/commands" />
11
12
  <link rel="alternate" hreflang="en" href="https://piagent.io.vn/en/commands" />
12
13
  <link rel="alternate" hreflang="x-default" href="https://piagent.io.vn/commands" />
13
14
  <link rel="icon" href="/favicon.svg" type="image/svg+xml" />
14
- <meta property="og:title" content="Command ngắn, rõ, ít token burn · Pi Agent Platform Docs" />
15
- <meta property="og:description" content="Slash command gói sẵn policy và flow; một inspector menu duy nhất cho diff, command, safety và context. Thành viên không cần nhớ nhiều command rời." />
15
+ <meta property="og:type" content="website" />
16
+ <meta property="og:title" content="Command ngắn, hành vi rõ · Pi Agent Platform" />
17
+ <meta property="og:description" content="Slash command gói sẵn policy và flow; một inspector cho diff, command, safety và context." />
16
18
  <meta property="og:url" content="https://piagent.io.vn/commands" />
19
+ <meta property="og:image" content="https://piagent.io.vn/assets/og.png" />
20
+ <meta name="twitter:card" content="summary_large_image" />
21
+ <script>try{var t=localStorage.getItem("piagent-docs-theme");if(t==="light"||t==="dark")document.documentElement.dataset.theme=t}catch(e){}</script>
17
22
  <link rel="preconnect" href="https://fonts.googleapis.com" />
18
23
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
19
24
  <link
20
- href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap"
25
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700;750&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
21
26
  rel="stylesheet"
22
27
  />
23
28
  <link rel="stylesheet" href="/assets/docs.css" />
24
29
  <script src="/assets/docs.js" defer></script>
25
30
  </head>
26
31
  <body>
32
+ <svg width="0" height="0" style="position:absolute" aria-hidden="true"><symbol id="icon-branch" viewBox="0 0 24 24"><circle cx="6" cy="5.5" r="2"/><circle cx="6" cy="18.5" r="2"/><circle cx="18" cy="7.5" r="2"/><path d="M6 7.5v9M18 9.5c0 4.5-5 4-11 7.5"/></symbol><symbol id="icon-chart" viewBox="0 0 24 24"><path d="M4 4v16h16"/><path d="M8.5 16v-5M12.5 16V8M16.5 16v-3"/></symbol><symbol id="icon-cpu" viewBox="0 0 24 24"><rect x="6" y="6" width="12" height="12" rx="2"/><rect x="9.5" y="9.5" width="5" height="5" rx=".8"/><path d="M9 2.5V6M15 2.5V6M9 18v3.5M15 18v3.5M2.5 9H6M2.5 15H6M18 9h3.5M18 15h3.5"/></symbol><symbol id="icon-edit" viewBox="0 0 24 24"><path d="M4 20h4L19 9l-4-4L4 16z"/><path d="m13.5 6.5 4 4"/></symbol><symbol id="icon-github" viewBox="0 0 24 24"><path d="M9 19c-4.5 1.5-4.5-2.5-6.5-3m13 6v-3.5a3 3 0 0 0-.9-2.4c3-.3 6.4-1.5 6.4-6.7a5.2 5.2 0 0 0-1.4-3.6 4.8 4.8 0 0 0-.1-3.6s-1.1-.3-3.7 1.4a12.6 12.6 0 0 0-6.6 0C6.6 1.9 5.5 2.2 5.5 2.2a4.8 4.8 0 0 0-.1 3.6A5.2 5.2 0 0 0 4 9.4c0 5.2 3.4 6.4 6.4 6.7a3 3 0 0 0-.9 2.4V22"/></symbol><symbol id="icon-hash" viewBox="0 0 24 24"><path d="M5 9h15M4 15h15M10 3 8 21M16 3l-2 18"/></symbol><symbol id="icon-home" viewBox="0 0 24 24"><path d="M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z"/></symbol><symbol id="icon-key" viewBox="0 0 24 24"><circle cx="8" cy="15" r="4"/><path d="m10.9 12.1 8.6-8.6M16.5 6.5l2.5 2.5M14 9l2 2"/></symbol><symbol id="icon-layers" viewBox="0 0 24 24"><path d="m12 3 9 5-9 5-9-5z"/><path d="m3 13 9 5 9-5"/><path d="m3 17.5 9 5 9-5" opacity=".55"/></symbol><symbol id="icon-lock" viewBox="0 0 24 24"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></symbol><symbol id="icon-menu" viewBox="0 0 24 24"><path d="M4 7h16M4 12h16M4 17h16"/></symbol><symbol id="icon-moon" viewBox="0 0 24 24"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z"/></symbol><symbol id="icon-network" viewBox="0 0 24 24"><circle cx="12" cy="5" r="2.5"/><circle cx="5" cy="19" r="2.5"/><circle cx="19" cy="19" r="2.5"/><path d="M12 7.5V12m0 0-5.2 5.2M12 12l5.2 5.2"/></symbol><symbol id="icon-plug" viewBox="0 0 24 24"><path d="M9 3v4M15 3v4M6 7h12v4a6 6 0 0 1-12 0zM12 17v4"/></symbol><symbol id="icon-refresh" viewBox="0 0 24 24"><path d="M20 11A8 8 0 0 0 5.3 6.7M4 3v4h4"/><path d="M4 13a8 8 0 0 0 14.7 4.3M20 21v-4h-4"/></symbol><symbol id="icon-rocket" viewBox="0 0 24 24"><path d="M5.5 15.5C4 17 3.5 19.5 3.5 20.5c1 0 3.5-.5 5-2"/><path d="M9 15 6.5 12.5C8 8.5 11.5 4.5 20 4c-.5 8.5-4.5 12-8.5 13.5z"/><circle cx="14.5" cy="9.5" r="1.5"/></symbol><symbol id="icon-search" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></symbol><symbol id="icon-server" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="7" rx="2"/><rect x="3" y="13" width="18" height="7" rx="2"/><path d="M7 7.5h.01M7 16.5h.01"/></symbol><symbol id="icon-shield" viewBox="0 0 24 24"><path d="M12 3 4.5 6v5.5c0 4.8 3.2 8.2 7.5 9.5 4.3-1.3 7.5-4.7 7.5-9.5V6z"/></symbol><symbol id="icon-shield-check" viewBox="0 0 24 24"><path d="M12 3 4.5 6v5.5c0 4.8 3.2 8.2 7.5 9.5 4.3-1.3 7.5-4.7 7.5-9.5V6z"/><path d="m9 12 2.2 2.2L15.5 10"/></symbol><symbol id="icon-sliders" viewBox="0 0 24 24"><path d="M4 7h9M17 7h3M4 17h3M11 17h9"/><circle cx="15" cy="7" r="2"/><circle cx="9" cy="17" r="2"/></symbol><symbol id="icon-sparkles" viewBox="0 0 24 24"><path d="M11 3c.6 4.6 2.4 6.4 7 7-4.6.6-6.4 2.4-7 7-.6-4.6-2.4-6.4-7-7 4.6-.6 6.4-2.4 7-7z"/><path d="M19 15v5M16.5 17.5h5"/></symbol><symbol id="icon-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"/></symbol><symbol id="icon-target" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1"/></symbol><symbol id="icon-terminal" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="m7.5 9.5 3 2.5-3 2.5M13 15h4"/></symbol><symbol id="icon-users" viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.5"/><path d="M2.5 20a6.5 6.5 0 0 1 13 0"/><path d="M16 4.5a3.5 3.5 0 0 1 0 7M18 14a6 6 0 0 1 3.5 6"/></symbol><symbol id="icon-windows" viewBox="0 0 24 24"><path d="M3.5 5.5 10.5 4.5v7h-7zM13 4.2 20.5 3v8.5H13zM3.5 13h7v7l-7-1zM13 13h7.5v8.5L13 20.3z"/></symbol><symbol id="icon-wrench" viewBox="0 0 24 24"><path d="M15 6.5a4.5 4.5 0 0 1-6 6l-5 5L6.5 20l5-5a4.5 4.5 0 0 0 6-6L15 11.5l-2.5-2.5z"/></symbol></svg>
33
+ <a class="skip-link" href="#content">Tới nội dung</a>
27
34
  <header class="topbar">
35
+ <button class="icon-button mobile-menu" type="button" data-menu aria-label="Mở menu tài liệu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-menu"/></svg></button>
28
36
  <a class="brand" href="/" aria-label="Pi Agent Platform">
29
- <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" /></span>
30
- <span>Pi Agent Platform</span>
37
+ <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" width="28" height="28" /></span>
38
+ <span class="brand-name"><b>Piagent</b> <span>Platform</span></span>
31
39
  </a>
40
+ <a class="version-badge" href="/whats-new" data-docs-version="v1.42.1" title="v1.42.1 docs · VI"><span class="dot"></span>v1.42.1</a>
41
+ <nav class="top-nav" aria-label="Tài liệu">
42
+ <a href="/quickstart">Tài liệu</a>
43
+ <a href="/whats-new">Changelog</a>
44
+ <a href="/benchmark">Benchmark</a>
45
+ </nav>
46
+ <span class="top-spacer"></span>
47
+ <button class="search-trigger" type="button" data-search aria-label="Tìm trong tài liệu"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-search"/></svg><span>Tìm trong tài liệu…</span><kbd>⌘K</kbd></button>
32
48
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.41.0 docs · VI</span>
34
- <nav class="language-switch" aria-label="Ngôn ngữ">
35
- <a class="language-option current" href="/commands" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
- <a class="language-option" href="/en/commands" hreflang="en" lang="en">EN</a>
37
- </nav>
38
- <a class="button social" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer" aria-label="Mở GitHub repository">
39
- <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
40
- <path d="M7 17 17 7M9 7h8v8" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
41
- </svg>
42
- GitHub
43
- </a>
44
- <button class="button mobile-menu" type="button" data-menu>Lộ trình</button>
45
- <a class="button top-command-link" href="/commands">Commands</a>
49
+ <nav class="language-switch" aria-label="Ngôn ngữ"><a class="language-option current" href="/commands" hreflang="vi" lang="vi" aria-current="true">VI</a><a class="language-option" href="/en/commands" hreflang="en" lang="en">EN</a></nav>
50
+ <button class="icon-button theme-toggle" type="button" data-theme-toggle aria-label="Đổi giao diện sáng/tối"><svg class="icon icon-moon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-moon"/></svg><svg class="icon icon-sun" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-sun"/></svg></button>
51
+ <a class="icon-button" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer" aria-label="Mở GitHub repository"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-github"/></svg></a>
46
52
  </div>
47
53
  </header>
48
54
 
49
55
  <div class="layout with-toc">
50
56
  <aside class="sidebar" data-sidebar>
51
- <div class="sidebar-search" aria-label="Tìm trong tài liệu">
52
- <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
53
- <path d="M10.8 18.1a7.3 7.3 0 1 1 0-14.6 7.3 7.3 0 0 1 0 14.6Zm5.3-1.7 4.4 4.4" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
54
- </svg>
55
- <input type="search" placeholder="Tìm trang" data-filter />
56
- </div>
57
-
58
57
  <nav aria-label="Tài liệu">
59
58
  <div class="nav-group">
60
- <p class="nav-title">Get started</p>
61
- <a class="nav-link" href="/">Overview</a>
62
- <a class="nav-link" href="/ecosystem">Hệ sinh thái</a>
63
- <a class="nav-link" href="/quickstart">Quickstart</a>
64
- <a class="nav-link" href="/windows">Cài trên Windows</a>
65
- <a class="nav-link" href="/whats-new">Có gì mới</a>
66
- <a class="nav-link" href="/scope">Phạm vi platform</a>
59
+ <p class="nav-title">Bắt đầu</p>
60
+ <a class="nav-link" href="/"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-home"/></svg><span>Tổng quan</span></a>
61
+ <a class="nav-link" href="/ecosystem"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-network"/></svg><span>Hệ sinh thái</span></a>
62
+ <a class="nav-link" href="/quickstart"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-rocket"/></svg><span>Cài đặt</span></a>
63
+ <a class="nav-link" href="/windows"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-windows"/></svg><span>Cài trên Windows</span></a>
64
+ <a class="nav-link" href="/update"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-refresh"/></svg><span>Cập nhật và gỡ</span></a>
65
+ <a class="nav-link" href="/whats-new"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-sparkles"/></svg><span>Changelog</span></a>
66
+ <a class="nav-link" href="/scope"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-target"/></svg><span>Phạm vi platform</span></a>
67
67
  </div>
68
68
  <div class="nav-group">
69
- <p class="nav-title">Build</p>
70
- <a class="nav-link" href="/profiles">Project profile</a>
71
- <a class="nav-link" href="/permissions">Permission modes</a>
72
- <a class="nav-link current" href="/commands" aria-current="page">Command catalog</a>
73
- <a class="nav-link" href="/workflows">Workflows</a>
69
+ <p class="nav-title">Sử dụng</p>
70
+ <a class="nav-link" href="/profiles"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-sliders"/></svg><span>Project profile</span></a>
71
+ <a class="nav-link" href="/permissions"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-key"/></svg><span>Permission modes</span></a>
72
+ <a class="nav-link current" href="/commands" aria-current="page"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-terminal"/></svg><span>Command catalog</span></a>
73
+ <a class="nav-link" href="/workflows"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-branch"/></svg><span>Workflows</span></a>
74
74
  </div>
75
75
  <div class="nav-group">
76
76
  <p class="nav-title">MCP</p>
77
- <a class="nav-link" href="/mcp">MCP overview</a>
78
- <a class="nav-link" href="/mcp-servers">Quản lý server</a>
79
- <a class="nav-link" href="/mcp-auth">Auth và readiness</a>
80
- <a class="nav-link" href="/mcp-approval">Approval gate</a>
77
+ <a class="nav-link" href="/mcp"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-plug"/></svg><span>Tổng quan MCP</span></a>
78
+ <a class="nav-link" href="/mcp-servers"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-server"/></svg><span>Quản lý server</span></a>
79
+ <a class="nav-link" href="/mcp-auth"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-lock"/></svg><span>Auth và readiness</span></a>
80
+ <a class="nav-link" href="/mcp-approval"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-shield-check"/></svg><span>Approval gate</span></a>
81
81
  </div>
82
82
  <div class="nav-group">
83
- <p class="nav-title">Operate</p>
84
- <a class="nav-link" href="/security">Security model</a>
85
- <a class="nav-link" href="/architecture">Architecture</a>
86
- <a class="nav-link" href="/context-engine">Context Engine</a>
87
- <a class="nav-link" href="/benchmark">Benchmark</a>
88
- <a class="nav-link" href="/runtime">Runtime tools</a>
89
- <a class="nav-link" href="/team">Team usage</a>
83
+ <p class="nav-title">Vận hành</p>
84
+ <a class="nav-link" href="/security"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-shield"/></svg><span>Security model</span></a>
85
+ <a class="nav-link" href="/architecture"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-layers"/></svg><span>Kiến trúc</span></a>
86
+ <a class="nav-link" href="/context-engine"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-cpu"/></svg><span>Context Engine</span></a>
87
+ <a class="nav-link" href="/benchmark"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-chart"/></svg><span>Benchmark</span></a>
88
+ <a class="nav-link" href="/runtime"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-wrench"/></svg><span>Runtime tools</span></a>
89
+ <a class="nav-link" href="/team"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-users"/></svg><span>Dùng cho team</span></a>
90
90
  </div>
91
91
  </nav>
92
92
  </aside>
93
93
 
94
- <main>
94
+ <main id="content">
95
95
  <div class="content-shell" data-article>
96
96
  <nav class="breadcrumb" aria-label="Breadcrumb">
97
97
  <a href="/">Docs</a>
98
98
  <span aria-hidden="true">/</span>
99
- <span>Build</span>
100
- <span aria-hidden="true">/</span>
101
- <span>Command catalog</span>
99
+ <span>Sử dụng</span>
102
100
  </nav>
103
101
  <div class="page-head">
104
- <h1>Command ngắn, rõ, ít token burn</h1>
105
- <p>Slash command gói sẵn policy và flow; một inspector menu duy nhất cho diff, command, safety và context. Thành viên không cần nhớ nhiều command rời.</p>
102
+ <h1>Command ngắn, hành vi rõ</h1>
103
+ <p>Slash command gói sẵn policy và flow; một inspector cho diff, command, safety và context.</p>
104
+ <div class="page-meta">
105
+ <a href="https://github.com/Vt-mmm/piagent/blob/main/docs-site/content/commands.html" target="_blank" rel="noopener noreferrer"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-edit"/></svg>Sửa trang này</a>
106
+ </div>
106
107
  </div>
107
108
  <section class="section">
108
109
 
@@ -243,22 +244,22 @@
243
244
  </section>
244
245
  <nav class="pager" aria-label="Trang kế tiếp">
245
246
  <a class="pager-prev" href="/permissions">
246
- <span class="pager-label">Trước</span>
247
+ <span class="pager-label">← Trước</span>
247
248
  <span class="pager-title">Permission modes</span>
248
249
  </a>
249
250
  <a class="pager-next" href="/workflows">
250
- <span class="pager-label">Tiếp</span>
251
+ <span class="pager-label">Tiếp →</span>
251
252
  <span class="pager-title">Workflows</span>
252
253
  </a>
253
254
  </nav>
254
255
 
255
256
  <footer class="footer">
256
- <p>Pi Agent Platform docs · static HTML · governed agent workflow</p>
257
+ <p>Pi Agent Platform · MIT · tài liệu tĩnh, không cookie</p>
257
258
  <div class="footer-links" aria-label="Liên kết ngoài">
258
- <a href="https://piagent.io.vn" target="_blank" rel="noopener noreferrer">piagent.io.vn</a>
259
- <a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub repository</a>
259
+ <a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub</a>
260
+ <a href="https://www.npmjs.com/package/@piagent/platform" target="_blank" rel="noopener noreferrer">npm</a>
260
261
  <a href="/en/commands" hreflang="en">English</a>
261
- <a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook profile</a>
262
+ <a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook</a>
262
263
  </div>
263
264
  </footer>
264
265
  </div>
@@ -269,6 +270,13 @@
269
270
  <nav data-toc></nav>
270
271
  </aside>
271
272
  </div>
273
+ <div class="palette" data-palette data-index="/assets/search-vi.json" data-empty="Không có trang nào khớp." role="dialog" aria-modal="true" aria-label="Tìm trong tài liệu">
274
+ <div class="palette-box">
275
+ <label class="palette-input"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><use href="#icon-search"/></svg><input type="search" placeholder="Tìm trong tài liệu…" aria-label="Tìm trong tài liệu" autocomplete="off" spellcheck="false" /></label>
276
+ <div class="palette-results" data-results role="listbox"></div>
277
+ <div class="palette-foot"><span>↑↓ chọn</span><span>↵ mở</span><span>esc đóng</span></div>
278
+ </div>
279
+ </div>
272
280
  <script>
273
281
  window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
274
282
  </script>