feat: 完善堡垒机与 Agent 智能运维能力

- 支持 Windows Agent 构建、安装脚本和统一上报协议

- 增强 RDP 剪贴板、虚拟盘和文件传输能力

- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
This commit is contained in:
Logan.Li committed 2026-07-05 23:49:36 +08:00
1 parent a9513c2056
commit e0d652d211
169 files changed
+12192 -9116

No files matched your search

+142 -20
View File
@@ -522,7 +522,14 @@
"zoomOut": "Zoom Out",
"username": "Username",
"password": "Password",
"port": "Port"
"port": "Port",
"unnamed": "Unnamed",
"default": "Default",
"saved": "Saved",
"createFailed": "Create failed",
"created": "Created",
"severity": "Severity",
"critical": "Critical"
},
"menu": {
"dashboard": "Dashboard",
@@ -570,7 +577,7 @@
"scripts": "Scripts",
"remoteExec": "Remote Exec",
"aiops": "AIOps",
"aiAssistant": "AI Assistant",
"aiAssistant": "Assistant",
"aiAlertAnalyzer": "Alert Analysis",
"aiPredictive": "Predictive Analytics",
"aiAgentCli": "Agent CLI",
@@ -997,16 +1004,11 @@
"syncButton": "Sync to Remote",
"uploadFile": "Upload File",
"uploading": "Uploading...",
"noFiles": "No files (SMB 445 must be reachable to list)",
"downloading": "Loading...",
"smbHint": "Prefer SMB direct transfer; if port 445 is blocked, auto-stages to AIOps and uses RDP download command.",
"syncSuccess": "Synced to remote",
"emptyContent": "Content is empty",
"clipboardHint": "Cannot auto-read clipboard, please Ctrl+V to paste (auto-read available under HTTPS)",
"uploadedToDownload": "{{name}} uploaded to Download",
"autoSent": "{{name}} auto-delivered (fallback when SMB unavailable)",
"downloadStarted": "Download started: {{name}}",
"listFileError": "Cannot list remote files (SMB 445 may be blocked)",
"uploadFailed": "Upload failed",
"downloadFailed": "Download failed"
},
@@ -1129,6 +1131,8 @@
"webshellLoggingIn": "Logging in...",
"general": "General",
"rdpFiles": "Files",
"rdpClipboard": "Clipboard",
"clipboardReady": "Captured",
"remoteClipboard": "Remote Clipboard",
"remoteClipPlaceholder": "Remote copied content will display here",
"syncToRemote": "Sync to Remote",
@@ -1136,18 +1140,81 @@
"syncButton": "Sync to Remote",
"uploadFile": "Upload File",
"rdpUploading": "Uploading...",
"noRdpFiles": "No files (requires SMB 445 reachable to list)",
"rdpLoading": "Loading...",
"smbHint": "Prefer SMB direct transfer; if port 445 unreachable, auto-stage to AIOps and RDP executes download command.",
"syncedToRemote": "Synced to remote",
"emptyContent": "Content is empty",
"clipboardHint": "Cannot auto-read clipboard, please Ctrl+V to paste (auto-read available under HTTPS)",
"uploadedToDownload": "{{name}} uploaded to Download",
"autoSent": "{{name}} auto-delivered (fallback when SMB unavailable)",
"uploadedToVirtualDrive": "{{name}} staged in AIOps\\Upload",
"aiopsVirtualDrive": "AIOps on Go-client",
"aiopsVirtualDriveLocation": "This PC > AIOps on Go-client",
"uploadToVirtualDrive": "Upload to Drive",
"rdpUploadHint": "Select or drop a file, max {{limit}}",
"downloadStarted": "Download started: {{name}}",
"listFileError": "Cannot list remote files (SMB 445 may be unreachable)",
"rdpUploadFailed": "Upload failed",
"rdpDownloadFailed": "Download failed"
"rdpUploadTooLarge": "File exceeds {{limit}}, please upload in batches",
"rdpUploadStatus": {
"reading": "Reading local file",
"sending": "Sending to RDP session",
"staged": "Staged, copy it from AIOps\\Upload on the remote desktop",
"failed": "Upload failed, please retry"
},
"rdpDownloadFailed": "Download failed",
"rdpDialog": {
"waiting": "Waiting for connection",
"bitmapDecodeFailed": "RDP bitmap decode failed",
"rawFrameDrawFailed": "RDP raw frame draw failed",
"bitmapDrawFailed": "RDP bitmap draw failed, received {{count}} frames",
"creating": "Creating RDP session...",
"unparseableFrame": "Received unparseable RDP frame",
"connectionError": "RDP connection error",
"connectionClosed": "RDP connection closed",
"graphicSession": "Windows RDP graphic session",
"tools": "Tools",
"synced": "Synced to remote",
"remoteCopyRequested": "Requested remote copy, waiting for clipboard data",
"downloadStarted": "Download started: {{name}}",
"uploadStaged": "Staged in AIOps\\Upload: {{name}}",
"autoExecuting": "Auto-executing upload command..."
},
"importCred": {
"sshPort": "SSH Port",
"linuxDefault": "(Linux default)",
"sshCredential": "Linux SSH Credential",
"optional": "(optional)",
"noSshCred": "No SSH credentials",
"noCredential": "No credential",
"rdpPassword": "Windows RDP Password",
"noRdpCred": "No RDP credentials"
},
"statusBadge": {
"running": "Running",
"stopped": "Stopped",
"maintenance": "Maintenance",
"offline": "Offline"
},
"table": {
"cores": " cores",
"memory": "Mem",
"connections": " conn",
"read": "R",
"write": "W",
"terminal": "Terminal",
"files": "Files",
"rdpLogin": "RDP Login",
"terminalLogin": "Terminal Login"
},
"pasteToRemote": "Paste to Remote",
"copyFromRemote": "Copy Remote",
"remoteClipEmpty": "Remote clipboard is empty",
"remoteCopyRequested": "Sent Ctrl+C to remote, waiting for clipboard data",
"copiedToLocal": "Copied to local clipboard",
"copyFailed": "Copy failed",
"manualSync": "Manual input & sync",
"sessionPolicy": {
"restricted": "Current session policy restricts some clipboard or file actions",
"clipboardDisabled": "Clipboard is disabled by session policy",
"fileUploadDisabled": "File upload is disabled by session policy",
"fileDownloadDisabled": "File download is disabled by session policy"
}
},
"alert": {
"stat": {
@@ -2044,6 +2111,22 @@
"allType": "All Types",
"pagination": "{{n}}/page"
},
"credForm": {
"pageSubtitle": "Manage Git repositories, registries, environments, build nodes, and deploy tools",
"gitRepo": "Git Repository",
"imageRegistry": "Image Registry",
"newRepo": "New Repository",
"newRegistry": "New Registry",
"noRepo": "No Git repositories",
"noRegistry": "No image registries",
"namespace": "Namespace",
"repoNamePlaceholder": "e.g. aiops-backend",
"registryNamePlaceholder": "e.g. harbor-prod",
"namespacePlaceholder": "e.g. library / devops",
"credHint": "Use system credential",
"dockerPwd": "Docker password",
"noCredHint": "No {{type}} credential. Create one in Credential Management first."
},
"releaseCreate": {
"commitMsg": "Commit Message",
"commitMsgPlaceholder": "feat: add new feature",
@@ -4657,6 +4740,12 @@
"lastMonth": "Last month",
"thisQuarter": "This quarter",
"thisYear": "This year"
},
"channel": {
"dingtalk": "DingTalk",
"wechat": "WeChat Work",
"email": "Email",
"sms": "SMS"
}
},
"task": {
@@ -7087,6 +7176,20 @@
"batchDeleteFailed": "Batch delete failed",
"singleSignOnDesc": "One account can only be logged in on one device",
"sessionSettings": "Session Settings",
"sessionWatermark": "Session User Watermark",
"sessionWatermarkDesc": "Show current login user \"{{user}}\" on RDP/terminal views",
"sessionRecordEnabled": "Session Recording",
"sessionRecordEnabledDesc": "Record SSH/RDP sessions and keep replay data",
"clipboardEnabled": "Allow Clipboard",
"clipboardEnabledDesc": "Allow bidirectional text clipboard sync between browser and remote host",
"fileUploadEnabled": "Allow File Upload",
"fileUploadEnabledDesc": "Allow file upload through RDP AIOps drive or terminal file features",
"fileDownloadEnabled": "Allow File Download",
"fileDownloadEnabledDesc": "Allow downloading remote files to the local browser",
"commandPolicyEnabled": "Command Policy",
"commandPolicyEnabledDesc": "Enable command allow/deny lists and high-risk command blocking progressively",
"approvalRequired": "Require Approval",
"approvalRequiredDesc": "Require temporary access approval before remote sessions progressively",
"roleManageDesc": "Modify role information and permissions",
"terminalLiveMonitor": "Live Terminal Monitor",
"systemInfoDesc": "Version and system status",
@@ -7245,7 +7348,8 @@
"title": "AIOps",
"subtitle": "AI Assistant · Alert Analysis · Capacity Forecast",
"aiAssistant": "AI Assistant",
"assistantTitle": "AIOps Assistant",
"assistantTitle": "Assistant",
"aiDrivenAssistant": "AI chat, analysis, and remediation suggestions for ops scenarios",
"assistantPlaceholder": "Ask an ops question to start",
"assistantHint": "Enter an ops question and the AI assistant will analyze and suggest",
"sendMessage": "Send",
@@ -7291,7 +7395,9 @@
"assistantSummary": "Summary",
"assistantNoData": "No data",
"alertAnalysis": "Alert Analysis",
"alertAnalysisTitle": "AI Alert Analysis",
"aiAlertAnalysis": "Alert Analysis",
"alertAnalysisTitle": "Alert Analysis",
"alertRootCauseAnalysis": "Alert root cause analysis and remediation suggestions",
"alertAnalysisDesc": "LLM-based alert root cause analysis and remediation",
"alertAnalysisHint": "Select an alert for AI analysis",
"alertRootCause": "Root Cause Analysis",
@@ -7438,7 +7544,7 @@
"capacityPlanning": "Capacity Planning",
"notConnectedRetry": "Connection not ready; please retry later",
"safetyHighRiskConfirm": "High-risk + confirm",
"aiAssistantShort": "AI Assistant",
"aiAssistantShort": "Assistant",
"recommended": "Recommended",
"endpointLabel": "Endpoint",
"wsConnectFailed": "WebSocket connection failed",
@@ -7820,7 +7926,7 @@
"predictive.s1a2b3c4d": "Metric Forecast",
"predictive.s2b3c4d5e": "Capacity Planning",
"predictive.s3c4d5e6f": "Cost Forecast",
"predictive.s4d5e6f7g": "AI Predictive Analytics",
"predictive.s4d5e6f7g": "Predictive Analysis",
"predictive.s5e6f7g8h": "Linear regression prediction, capacity planning and cost forecasting based on real-time metrics and cloud billing",
"predictive.s6f7g8h9i": "Confidence",
"predictive.s7g8h9i0j": "Predicted month-end",
@@ -7896,7 +8002,7 @@
"approvalPermission": "Permission Approval",
"approvalWorkflow": "Approval Workflow",
"scripts": "Scripts",
"aiAssistant": "AI Assistant",
"aiAssistant": "Assistant",
"aiAlertAnalyzer": "Alert Analysis",
"aiPredictive": "Predictive Analysis",
"users": "Users",
@@ -7966,5 +8072,21 @@
"apiaccesskey.s4b5c6d7e": "Credential copied",
"apiaccesskey.s5c6d7e8f": "I've saved it",
"apiaccesskey.s6d7e8f9g": "Your access credential"
},
"logCenter": {
"saveQuery": "Save as Query",
"saveAsAlert": "Save as Alert",
"queryName": "Query Name",
"queryNamePlaceholder": "Enter query name",
"alertName": "Alert Name",
"alertNamePlaceholder": "Enter alert rule name",
"triggerCondition": "Trigger Condition",
"createAlert": "Create Alert",
"createFromQuery": "Created from query: {{name}}",
"defaultDatasource": "Default datasource",
"alertRuleCreated": "Alert rule created",
"quickQuery": "Quick Query",
"quickQueryHint": "{{engine}} common query templates, click to fill",
"entries": "entries"
}
}
}