4aae61297f
Analytics parity phases 2–7 (docs/plans/analytics-parity/), built on
138e706 and ported onto v2.3.1:
- Cost by AI tool (?tool= on cost/analytics/stats/workflows, by_tool,
Codex fast/priority and flex tiers, agenthub_cost_usd_total{tool,model})
- Date ranges (from/to) on cost/analytics/workflows; Analytics range select
with Today / This week (Monday) / This month (1st) / 7d / 30d / 90d / All /
Custom; workflow filters carried into workflow-stats.js (read worker)
- Budgets and cost alerts as alert rule types (alert_rules rebuilt without
its rule_type CHECK), GET /api/budgets/status, rule preview, spend pace,
status-bar budget chip; rules stay editable in place
- Query Explorer (/query, allowlisted sort, CSV/JSON export) and scheduled
reports (report_definitions/report_runs, Settings → Reports)
- Session Replay tab and immutable snapshots (session_snapshots, /snapshot/:token)
- Remote Codex sync, push ingest with a hashed token, privacy redaction and
ignored folders (Settings → Data), Cursor sessions (no cost)
- Read-only MCP server, statusline, Grafana/Prometheus files
Also: resizable sidebar, pet run/wave animations, the workspace home keeps a
half-typed prompt, and the pre-commit hook runs only the related tests for a
small commit.
120 lines
7.6 KiB
JSON
120 lines
7.6 KiB
JSON
{
|
||
"title": "Cảnh báo",
|
||
"subtitle": "Cảnh báo theo quy tắc cho phiên, agent, sự kiện và mức dùng token",
|
||
"refresh": "Làm mới",
|
||
"ackAll": "Xác nhận tất cả ({{count}})",
|
||
"ruleTypes": {
|
||
"event_pattern": "Mẫu sự kiện",
|
||
"inactivity": "Không hoạt động",
|
||
"status_duration": "Agent bị kẹt",
|
||
"token_threshold": "Ngưỡng token",
|
||
"cost_threshold": "Ngưỡng chi phí",
|
||
"budget": "Ngân sách chi tiêu"
|
||
},
|
||
"ruleTypeHints": {
|
||
"event_pattern": "Kích hoạt khi một sự kiện khớp với mẫu. Đặt số lần lớn hơn 1 để yêu cầu N sự kiện khớp trong khung thời gian (ví dụ: hơn 5 lỗi trong 2 phút).",
|
||
"inactivity": "Kích hoạt khi một phiên đang hoạt động không nhận được sự kiện nào trong số phút đã cấu hình.",
|
||
"status_duration": "Kích hoạt khi một agent giữ nguyên trạng thái đã chọn mà không có hoạt động trong số phút đã cấu hình.",
|
||
"token_threshold": "Kích hoạt khi tổng mức dùng token của phiên (đầu vào + đầu ra + bộ nhớ đệm) vượt ngưỡng.",
|
||
"cost_threshold": "Kích hoạt khi chi phí của một phiên chạm mức này, tính giá như chi phí riêng của phiên.",
|
||
"budget": "Kích hoạt một lần mỗi kỳ ở từng ngưỡng của hạn mức chi tiêu — theo ngày, tuần hoặc tháng theo giờ địa phương, có thể chỉ cho một công cụ AI."
|
||
},
|
||
"ruleDesc": {
|
||
"eventPattern": "Khớp {{pattern}}",
|
||
"eventPatternCount": "≥{{count}} × {{pattern}} trong {{window}} phút",
|
||
"inactivity": "Phiên không hoạt động trong {{minutes}} phút",
|
||
"statusDuration": "Agent kẹt ở trạng thái {{status}} trong {{minutes}} phút",
|
||
"tokenThreshold": "Token của phiên vượt {{tokens}}",
|
||
"costThreshold": "Chi phí phiên chạm {{usd}}",
|
||
"budget": "{{limit}} mỗi {{period}} · cảnh báo ở {{thresholds}}"
|
||
},
|
||
"rules": {
|
||
"title": "Quy tắc cảnh báo",
|
||
"add": "Thêm quy tắc",
|
||
"cancel": "Hủy",
|
||
"create": "Tạo quy tắc",
|
||
"saving": "Đang lưu…",
|
||
"empty": "Chưa có quy tắc cảnh báo nào",
|
||
"enabled": "Đang bật",
|
||
"disabled": "Đang tắt",
|
||
"enable": "Bật quy tắc",
|
||
"disable": "Tắt quy tắc",
|
||
"delete": "Xóa quy tắc",
|
||
"confirmDelete": "Xóa quy tắc \"{{name}}\" và lịch sử cảnh báo của nó?",
|
||
"cooldown": "thời gian chờ {{seconds}}s",
|
||
"form": {
|
||
"name": "Tên quy tắc",
|
||
"namePlaceholder": "ví dụ: Lỗi dồn dập",
|
||
"type": "Loại quy tắc",
|
||
"eventType": "Loại sự kiện (chính xác)",
|
||
"toolName": "Tên công cụ (chính xác)",
|
||
"summaryContains": "Tóm tắt chứa",
|
||
"count": "Số lần kích hoạt",
|
||
"windowMinutes": "Khung thời gian (phút)",
|
||
"agentStatus": "Trạng thái agent",
|
||
"minutes": "Phút",
|
||
"totalTokens": "Tổng token",
|
||
"cooldown": "Thời gian chờ (giây)",
|
||
"usd": "Chi phí (USD)",
|
||
"period": "Kỳ",
|
||
"limitUsd": "Hạn mức (USD)",
|
||
"thresholds": "Cảnh báo ở (%)",
|
||
"budgetTool": "Công cụ AI",
|
||
"allTools": "Mọi công cụ AI"
|
||
},
|
||
"deleteTitle": "Xóa quy tắc cảnh báo?",
|
||
"help": {
|
||
"name": "Nhãn cho quy tắc này. Hiển thị trong danh sách cảnh báo và đính kèm trong payload webhook (rule_name). vd: 'Lỗi Bash lặp lại'.",
|
||
"type": "Quy tắc theo dõi gì. event_pattern khớp luồng sự kiện trực tiếp; inactivity = phiên đang hoạt động im lặng; status_duration = agent kẹt ở một trạng thái; token_threshold = token của phiên vượt ngưỡng.",
|
||
"eventType": "Sự kiện hook của Claude Code cần khớp. Để trống để khớp mọi loại. Khớp chính xác (phân biệt hoa thường).",
|
||
"toolName": "Công cụ mà agent gọi (trong sự kiện PreToolUse / PostToolUse). Để trống để khớp mọi công cụ. Khớp chính xác.",
|
||
"summaryContains": "Khớp chuỗi con (không phân biệt hoa thường) trong tóm tắt sự kiện. Hữu ích để bắt lỗi hoặc cụm từ cụ thể. Để trống để bỏ qua.",
|
||
"count": "Cần bao nhiêu sự kiện khớp trước khi cảnh báo kích hoạt. 1 = kích hoạt ở lần khớp đầu. Đặt lớn hơn 1 để phát hiện bùng phát (vd lỗi lặp lại).",
|
||
"window": "Cửa sổ nhìn lại cho bộ đếm. vd count 5 + window 2 nghĩa là '5 sự kiện khớp trong bất kỳ khoảng 2 phút nào'.",
|
||
"status": "Trạng thái agent cần theo dõi. 'working' bắt agent kẹt giữa tác vụ; 'waiting' bắt agent chờ nhập liệu/quyền.",
|
||
"minutesInactivity": "Kích hoạt khi một phiên đang hoạt động không có sự kiện nào trong bấy nhiêu phút (phiên bị treo hoặc bị quên).",
|
||
"minutesStatus": "Kích hoạt khi agent ở trạng thái đã chọn mà không có hoạt động trong bấy nhiêu phút (agent bị kẹt).",
|
||
"totalTokens": "Kích hoạt khi tổng token của phiên (input + output + cache read + cache write) vượt số này. vd 1000000 = 1 triệu token.",
|
||
"cooldown": "Số giây tối thiểu giữa các cảnh báo lặp cho cùng quy tắc + phiên + agent. Tránh trùng lặp gây nhiễu. Mặc định 300 (5 phút); 0 = không có thời gian chờ.",
|
||
"usd": "Một phiên chạm số đô la này sẽ kích hoạt cảnh báo.",
|
||
"period": "Ngày bắt đầu lúc nửa đêm giờ địa phương, tuần từ thứ Hai, tháng từ ngày 1.",
|
||
"limitUsd": "Hạn mức chi tiêu cho một kỳ, tính bằng đô la Mỹ.",
|
||
"thresholds": "Phần trăm hạn mức, cách nhau bằng dấu phẩy, vd 50, 80, 100. Mỗi ngưỡng kích hoạt một lần mỗi kỳ.",
|
||
"budgetTool": "Chỉ tính các phiên của công cụ AI này."
|
||
},
|
||
"preview": "Xem trước",
|
||
"previewing": "Đang kiểm tra…",
|
||
"previewHint": "Quy tắc này lẽ ra đã kích hoạt những gì trong 7 ngày qua — không lưu, không gửi gì",
|
||
"previewResult": "Lẽ ra đã kích hoạt {{fires}} lần ở {{sessions}} phiên trong {{days}} ngày qua.",
|
||
"previewBudget": "Chi tiêu mỗi kỳ (kỳ này và năm kỳ trước):",
|
||
"previewUnsupported": "Loại quy tắc này không phát lại được từ lịch sử.",
|
||
"edit": "Sửa quy tắc",
|
||
"save": "Lưu quy tắc",
|
||
"typeFixed": "Không đổi được loại của quy tắc — hãy tạo quy tắc mới.",
|
||
"cooldownInvalid": "Nhập số giây nguyên (từ 0 trở lên)."
|
||
},
|
||
"feed": {
|
||
"title": "Luồng cảnh báo",
|
||
"unackedCount": "{{count}} chưa xác nhận",
|
||
"unackedOnly": "Chỉ chưa xác nhận",
|
||
"ack": "Xác nhận",
|
||
"viewSession": "Xem phiên",
|
||
"loadMore": "Tải thêm ({{shown}} / {{total}})",
|
||
"emptyTitle": "Không có cảnh báo",
|
||
"emptyDescription": "Cảnh báo do các quy tắc của bạn kích hoạt sẽ hiển thị tại đây theo thời gian thực.",
|
||
"emptyUnacked": "Tất cả đã được xác nhận. Cảnh báo mới sẽ hiển thị tại đây khi được kích hoạt."
|
||
},
|
||
"periods": {
|
||
"day": "ngày",
|
||
"week": "tuần",
|
||
"month": "tháng"
|
||
},
|
||
"errors": {
|
||
"loadRules": "Không tải được quy tắc cảnh báo: {{error}}",
|
||
"loadAlerts": "Không tải được cảnh báo: {{error}}",
|
||
"toggleRule": "Không thay đổi được quy tắc: {{error}}",
|
||
"deleteRule": "Không xoá được quy tắc: {{error}}",
|
||
"ack": "Không xác nhận được: {{error}}"
|
||
}
|
||
}
|