feat: release OpsXShell 2.1.1
This commit is contained in:
1 parent
a3dba0c6ed
commit
494ef6b9d0
37 files changed
+2039
-370
No files matched your search
+16
-10
@@ -57,20 +57,22 @@ services/
|
||||
| 主机信任 | OpenSSH `~/.ssh/known_hosts` |
|
||||
| 终端 AI | Rust `reqwest` + OpenAI/Anthropic 兼容协议 |
|
||||
|
||||
## 终端 AI 边界
|
||||
## SSH Agent CLI 边界
|
||||
|
||||
AI 是可选的终端助手。XTerm 只把当前焦点分屏的选区或用户明确勾选的当前屏幕交给 Rust;Rust 先脱敏常见密码、Token、Authorization Header、AWS Key 和私钥,再调用 Provider。需要实际处理时采用受控的单工具循环,不允许模型文本直接触发执行。
|
||||
AI 是可选的 SSH Agent。XTerm 只把当前焦点分屏中用户明确选中的内容交给 Rust;Rust 先脱敏常见密码、Token、Authorization Header、AWS Key 和私钥,再调用 Provider。模型文本不允许直接触发执行。
|
||||
|
||||
```text
|
||||
XTerm 当前焦点分屏
|
||||
-> 选区优先 / 显式当前屏幕
|
||||
-> 仅用户选区(可选)
|
||||
-> Rust 本地脱敏
|
||||
-> AiService (OpenAI Chat / Responses / Anthropic)
|
||||
-> 建议文本
|
||||
-> 复制,或单行命令填入 XTerm(不发送回车)
|
||||
-> 执行任务:唯一单行命令 + 用户确认
|
||||
-> 下一条唯一单行命令 / FINAL 结论
|
||||
-> 五级风险;critical 硬拒绝
|
||||
-> 展示目标、命令和风险,用户确认
|
||||
-> 当前 connectionId 的 ssh_exec
|
||||
-> 真实输出脱敏后交给 AI 总结
|
||||
-> stdout/stderr/exit_code + 本地 analyze_output
|
||||
-> 真实观察脱敏后交给 AI 判断下一步
|
||||
-> 最多 8 步后收敛
|
||||
```
|
||||
|
||||
- Provider 配置和模型路由保存在 `ai-providers-v1`,不包含 API Key。
|
||||
@@ -78,12 +80,16 @@ XTerm 当前焦点分屏
|
||||
- 模型可覆盖 Provider 协议和 Endpoint,以支持同一个上游模型的按量和 Plan 路由。
|
||||
- models.dev 目录仅由 Rust 访问三个固定 HTTPS 地址,最多读取 24 MiB;它用于维护和扩展预设,不是应用启动依赖。
|
||||
- new-api、One API 和其他聚合网关通过 OpenAI Compatible Provider 接入。
|
||||
- AI 对话、提示词、终端上下文和回答只存在于当前面板内存中;关闭面板即清空,不写入应用设置。
|
||||
- AI 对话、提示词、终端上下文、命令和工具输出只存在当前面板内存中;关闭面板即清空。
|
||||
- 新 Provider 的测试命令接收临时 API Key 并发出最小真实完成请求;测试过程不调用凭据存储。只有当前连接字段快照测试成功,界面才允许保存。
|
||||
- 模型返回内容按不可信文本处理。普通模式只有唯一单行代码块可“填入终端”,多行脚本只能复制。
|
||||
- 执行模式只接受唯一单行命令,目标固定为当前活跃 SSH connection;每次调用 `ssh_exec` 前显示目标、命令和风险确认。执行结果只保留在当前面板。
|
||||
- 模型返回内容按不可信文本处理;终端输出也标记为不可信,其中的指令不能覆盖 system Prompt。
|
||||
- Agent 只接受唯一单行命令,目标固定为当前活跃 SSH connection;每次调用 `ssh_exec` 前都显示目标、命令和风险确认。
|
||||
- 命令风险为 safe/low/medium/high/critical 五级;格式化磁盘、删除根目录等 critical 操作硬拒绝。当前不引入会静默执行的“宽松模式”。
|
||||
- 相同命令第 3 次在执行前拦截;连续失败时要求更换排查路径。长输出先经本地 `analyze_output` 保留错误行和首尾。
|
||||
- 不创建独立 Kubernetes 客户端或 podexec。集群运维命令沿当前 SSH 会话执行,避免引入本机 kubeconfig 与第二套目标/凭据边界。
|
||||
|
||||
完整取舍、记忆边界、演进架构和 Eval 见 [SSH Agent CLI 设计](./ai-agent.md)。
|
||||
|
||||
## 端口转发生命周期
|
||||
|
||||
转发规则和运行实例是两种不同状态:
|
||||
|
||||
Reference in new issue
Block a user