让智能体操控 Proteus 仿真并保存工程
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add hualuo520-h/dsh-proteus-bridge该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · ui
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 12 处,展示前 12 条)
- 读取本地文件lib/session.js:43
await stat(m[1]); - 读取本地文件lib/session.js:83
await stat(p); - 执行外部命令来自配置/变量lib/session.js:234
const child = spawn(exePath, [args.projectPath], { detached: true, stdio: 'ignore' }); - 读取本地文件lib/session.js:455
const size = (await stat(tmpPath)).size; - 读取本地文件lib/guards.js:14
const [st, data] = await Promise.all([stat(filePath), readFile(filePath)]); - 读取本地文件lib/guards.js:14
const [st, data] = await Promise.all([stat(filePath), readFile(filePath)]); - 写入本地文件lib/guards.js:82
await rename(target, backup); - 写入本地文件lib/guards.js:84
await rename(tmpPath, target); - 写入本地文件lib/guards.js:87
await rename(backup, target).catch(() => { }); - 删除本地文件lib/guards.js:90
await unlink(backup).catch(() => { }); - 读取本地文件lib/whitelist.js:20
parsed = JSON.parse(await readFile(this.filePath, 'utf8')); - 执行外部命令来自配置/变量lib/com/linebroker.js:93
const proc = spawn(this.command, this.args, { stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true });
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 插件:让 Agent 控制 Proteus 8/9 交互仿真并保存工程(COM / UI 双传输)
README
由 DeepSeek 最新模型翻译生成dsh-proteus-bridge
DeepSeek Harness(Cordis)工具插件:让智能体控制 Proteus 8 / 9 的交互仿真,并保存工程。
插件对外只暴露一套工具,内部按本机能力自动选择传输层:
| 传输 | 触发条件 | 能力 |
| com | 系统注册了 Labcenter.InteractiveSimulation COM 服务器 | 仿真生命周期、信号读取、原理图编辑(放置/引脚/连线)、保存 |
| ui | 未注册 COM(shipping Proteus 8.17 就是这种情况) | 仿真生命周期、状态探测、工程保存、布局建议 |
proteus_connect 会明确回传 transport 字段,不做静默降级:拿到 ui 就说明本机只能走键盘驱动路径。
展开完整文档(README 剩余 1 节)
dsh-proteus-bridge
DeepSeek Harness(Cordis)工具插件:让智能体控制 Proteus 8 / 9 的交互仿真,并保存工程。
插件对外只暴露一套工具,内部按本机能力自动选择传输层:
| 传输 | 触发条件 | 能力 |
| com | 系统注册了 Labcenter.InteractiveSimulation COM 服务器 | 仿真生命周期、信号读取、原理图编辑(放置/引脚/连线)、保存 |
| ui | 未注册 COM(shipping Proteus 8.17 就是这种情况) | 仿真生命周期、状态探测、工程保存、布局建议 |
proteus_connect 会明确回传 transport 字段,不做静默降级:拿到 ui 就说明本机只能走键盘驱动路径。
工具一览
| 工具 | COM | UI |
| proteus_connect | ✅ | ✅ |
| proteus_sim_start / proteus_sim_stop / proteus_sim_status | ✅ | ✅ |
| proteus_save_schematic | ✅ | ✅ |
| proteus_suggest_layout | ✅ | ✅(纯本地计算,不需连接) |
| proteus_read_signals | ✅ | ⛔ UNSUPPORTED_ON_TRANSPORT |
| proteus_list_placeable_components / proteus_place_component | ✅ | ⛔ UNSUPPORTED_ON_TRANSPORT |
| proteus_query_pins / proteus_connect_pins | ✅ | ⛔ UNSUPPORTED_ON_TRANSPORT |
UI 传输下被拒绝的工具返回的是领域失败(ok:false + code + hint),不是异常:
PROTEUS UNSUPPORTED_ON_TRANSPORT: proteus_query_pins 在 UI 传输下不可用(shipping Proteus 无原理图脚本接口) hint: UI 传输只覆盖仿真生命周期与保存
安装
dsh plugin add dsh-proteus-bridge
插件通过 cordis.patch.yml 注册进配置档组合:
- insert:
- id: dsh-proteus-bridge
name: dsh-proteus-bridge
UI 传输怎么工作
lib/ui/uibroker.js 内嵌一段 PowerShell 5.1 + C# 脚本,作为持久子进程运行(不是每次调用起一个)。它只提供原子原语,组合逻辑在 lib/session.js:
- 附着:按窗口标题子串 Proteus 8 Professional 找主窗口;找不到就 spawn PDS.EXE + 工程路径,6 次 × 5 s 轮询。
- 前台投递:先发一次裸 ALT(keybd_event 0x12 down/up)解掉 Windows 前台锁,再 AttachThreadInput + SetForegroundWindow。只做后者时 SetForegroundWindow 会返回 true 而前台窗口不变,随后持续 FOREGROUND_FAILED。窗口最小化时先 SW_RESTORE(最小化矩形是 -32000 级哨兵值,在上面算点击坐标会把鼠标扔到屏幕外);仍抢不到则兜底 SwitchToThisWindow。
- 状态探测:WM_CANCELMODE → 3 次 F10 + Right×6(调试菜单)+ Down → GetMenuState(576/581/582)。三键全为 0x100 说明菜单没刷新,重试;582&3 → idle,581&3 → paused,否则 running。
- 保存:Ctrl+S 之后轮询 #32770 对话框并 BM_CLICK 命中 确定/OK/是/继续 的按钮(Proteus 8.17 会弹「File will be saved in version 8.17 format…」)。不点掉它,文件根本不会落盘,而且它占住前台让后续所有注键失败。
- 落盘校验:保存前后各取一次 {size, mtimeMs, sha256},内容与 mtime 都没变就返回 SAVE_NOT_APPLIED,绝不谎报成功。
- 按键表(8.17 实测):F12 运行/恢复 · Pause 暂停 · Shift+Pause 停止 · Ctrl+F12 开始仿真 · Ctrl+S 保存。菜单导航一律不用字母键(中文 IME 会拦),也不向工具栏发 TB_* 消息(越界索引会把 32 位 comctl32 写崩)。
0.4.2 修了什么
三个新缺陷,同样在 Proteus 8.17.37159 上实测复现并验证修复,详见 CHANGELOG.md。
1. fail() 也会产出非法输出 —— 0.4.1 只修了 suggestLayout,没意识到 fail() 是同一个坑的通用出口:无条件写 hint/details,code 没有 hint 映射时留下值为 undefined 的自有属性,宿主直接拒收整个结果,智能体连 code/message 都看不到。改为条件写入,并顺手清掉 timeSeconds、bytes.before/after 两处同类隐患。
2. proteus_sim_start 点了没反应 —— Animation 工具栏按钮在 idle 时是禁用的。改为 F12 优先(工具栏兜底),simStop 改走 Shift+Pause → 菜单停止 → 工具栏三级回退,每步都用 probe 轮询目标态。
3. 窗口最小化后全部 UI 操作失效 —— 最小化时 GetWindowRect 返回 -32000 级哨兵值(实测 -25600),抢前台拿不到、点击落到屏幕外。Foreground 增加 SW_RESTORE 前置与 SwitchToThisWindow 兜底,新增 HasUsableRect 断言,不再静默失败。
0.4.1 修了什么
三个问题都在 Proteus 8.17.37159 上实测复现并验证修复,详见 CHANGELOG.md。
1. proteus_suggest_layout 被宿主判为非法输出 —— partition: group.label || undefined 会留下一个自有属性,值为 undefined,宿主的无损 JSON 快照(snapshotJsonValue)直接拒绝,报 value is not lossless JSON。改成只在标签非空时才写 partition 键。
2. FOREGROUND_FAILED —— 前台投递缺裸 ALT 解锁(见上)。
3. proteus_save_schematic 谎报成功 —— 不处理格式确认框,ok:true 返回时文件 mtime 未变;对话框还占住前台,把后续所有工具一起带崩。
自检
node test/selfcheck.mjs
29 项:8 个布局用例(含 refs:['R1'] 这种单件、columns/gridMm 覆盖、带未匹配前缀的分区)+ fail() 无损性 + 仿真原语顺序 + 最小化恢复 + PowerShell 补丁存在性 + 保存判据源码断言。不连 Proteus、不需要宿主进程。
器件白名单
whitelist/placeable.v1.json 的 components 是脚本可放置的器件集合,必须逐个在真机上验证「放置 → 保存 → 重开」都成立才加入。空数组表示还没有验证过的器件,不是缺陷;此时 proteus_place_component 返回 COMPONENT_NOT_IN_PLACEABLE_WHITELIST。
已知限制
- shipping Proteus 8.17 不含 COM 服务器(WINCORE.DLL 无类型库),所以本机恒为 ui 传输,原理图编辑能力不可用。
- UI 传输的菜单坐标按 8.17 SP2 实测(调试菜单为第 7 项);其它 build 需复核。
- proteus_save_schematic 的 overwrite / confirmRollback 只对 COM 传输有意义;UI 传输下走 Ctrl+S,overwrite 语义由 Proteus 自己的备份机制承担。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hualuo520-h/dsh-proteus-bridge
让智能体操控 Proteus 仿真并保存工程
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,798已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,327已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,021已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 150,724已汉化DSH
71.1