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

@@ -309,13 +309,14 @@ export function CredFormDialog({ open, onClose, onSaved, editData }: CredFormDia
</SelectContent>
</Select>
</div>
{/* 用户名(左上)与密码(左下)同列上下行,安全模式/域归右列 // Logan.Li */}
<div><FieldWithToggle label="Windows 密码" value={rdpPassword} onChange={setRdpPassword}
placeholder="Windows 登录密码" fieldKey="rdp_pwd" required /></div>
<div className="space-y-1">
<Label className="text-[var(--dg-text-secondary)] text-xs">域</Label>
<Input value={rdpDomain} onChange={e => setRdpDomain(e.target.value)} placeholder="可选"
className="bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] text-[var(--dg-text-primary)]" />
</div>
<div><FieldWithToggle label="Windows 密码" value={rdpPassword} onChange={setRdpPassword}
placeholder="Windows 登录密码" fieldKey="rdp_pwd" required /></div>
</div>
)}
@@ -41,15 +41,15 @@ interface PipelineCreateDialogProps {
const PRESETS = [
{
key: 'ssh',
label: t('deploy.presetHost'),
desc: t('deploy.presetHostDesc'),
labelKey: 'deploy.presetHost',
descKey: 'deploy.presetHostDesc',
stages: ['checkout', 'build', 'deploy'],
deployTarget: 'ssh' as const,
},
{
key: 'k8s',
label: t('deploy.presetK8s'),
desc: t('deploy.presetK8sDesc'),
labelKey: 'deploy.presetK8s',
descKey: 'deploy.presetK8sDesc',
stages: ['checkout', 'build', 'image', 'deploy'],
deployTarget: 'k8s' as const,
},
@@ -287,8 +287,8 @@ export function PipelineCreateDialog({ open, onOpenChange, onCreated }: Pipeline
: 'border-[var(--dg-border)] hover:bg-[var(--dg-bg-hover)]',
)}
>
<div className="text-sm font-medium text-[var(--dg-text-primary)]">{p.label}</div>
<div className="text-[11px] text-[var(--dg-text-muted)] mt-0.5">{p.desc}</div>
<div className="text-sm font-medium text-[var(--dg-text-primary)]">{t(p.labelKey)}</div>
<div className="text-[11px] text-[var(--dg-text-muted)] mt-0.5">{t(p.descKey)}</div>
</button>
))}
</div>