DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

leolee9086 /

leolee9086/dsh-sketchup

Verified

DeepSeek Harness 的 SketchUp 独立对接套装:Host 插件、Ruby 扩展、内嵌聊天与 CEF 兼容垫片。保留上游 fork 来源及 MIT 版权。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@cc0883fe

DSH SketchUp 对接套装

独立的 DeepSeek Harness Host 插件 + SketchUp Ruby 扩展,提供 SketchUp 内嵌聊天窗口,并为 SketchUp 2024 自带的 Chromium 补充所需的兼容垫片。

项目来源:独立衍生版本(fork)。 本项目从 leolee9086/dsh-browser 的 SketchUp 包中拆分,该仓库源自 Lum1104/dsh-browser。本项目不是 SketchUp 或 DeepSeek 官方产品。LICENSE 中保留了原始 Copyright (c) 2026 Yuxiang Lin 版权声明及 MIT 许可证,详见致谢。

下载与安装

请从 GitHub 发布页 下载对应版本的附件。v0.1.0-alpha.1 为预发布版,兼容性仍需进一步验证。

文件 用途
dsh-sketchup-0.1.0-alpha.1.zip Windows 完整安装套装,内含预编译 Host 包与 Ruby 扩展
dsh-sketchup-0.1.0-alpha.1.rbz 通过 SketchUp 扩展管理器安装的扩展包
leolee9086-dsh-sketchup-0.1.0-alpha.1.tgz DSH 使用的预编译 Host 插件包
bootstrap.ps1 Ruby 安装菜单调用的 Windows 引导安装器,固定安装版本
SHA256SUMS 发布附件的 SHA-256 校验和

包名为 @leolee9086/dsh-sketchup。本次通过 GitHub 发布附件分发,尚未发布到 npm 软件包仓库,请使用下载的 TGZ 安装。

使用 Windows 完整套装

解压 ZIP 后,在 PowerShell 中运行 install.ps1。脚本会把预编译 Host 包登记到 DSH profile,并将 Ruby 扩展安装到 SketchUp 的 Plugins 目录。可通过参数指定安装路径,也可用 -DryRun 预览操作而不写入文件。

安装完成后,重启 DSH 以加载新的 Host 文件;保存模型并重启 SketchUp 以加载新的 Ruby 文件。安装器不会强制重启应用。

从 SketchUp 安装 Host

在 SketchUp 中通过扩展程序 → 扩展管理器 → 安装扩展程序安装 RBZ,然后选择扩展菜单中的 Install DSH Host for SketchUp...(为 SketchUp 安装 DSH Host)。安装过程会在独立的 PowerShell 窗口中运行。

引导安装器根据 SHA256SUMS 校验固定版本的安装套装。若本机缺少 DSH,则将固定版本安装到独立目录,不升级已有的全局安装。需要预先安装 Node.js 22.13+ 和 npm,并能够访问 GitHub 和 npm。

从 DSH 安装 Ruby 扩展

已有 DSH 时,可先登记下载的 Host 包:

dsh plugin --profile web add --save-exact ./leolee9086-dsh-sketchup-0.1.0-alpha.1.tgz

包内包含 Ruby 扩展及安装脚本。运行安装器即可将 Ruby 部分复制到 SketchUp;具体参数、备份位置和回滚方法见安装指南。安装脚本需要显式运行,没有隐藏的安装后自动执行步骤。

目前已在 Windows + SketchUp 2024(24.0.484,Ruby 3.2.2) 中验证桥接和内嵌聊天。其他版本尚未实测。提供 Bash 脚本并不代表 SketchUp 支持 Linux。

功能

  • 读取模型信息、选择集、当前编辑路径、限量实体几何信息和审计事件。
  • 执行结构化操作:创建长方体或圆柱体、选择或删除实体、切换活动标签、保存模型。
  • 按明确指定的 SketchUp 实例或当前会话绑定分发指令。绑定的实例断线时会报错,不会悄悄转发到另一个已打开的模型。
  • 在 SketchUp 内打开经过认证的 Harness 聊天界面。
  • 在内嵌窗口的应用模块加载之前执行 core-js/stable 垫片,补充 Iterator、Set 运算、分组、数组复制方法等标准 API;普通浏览器标签页和 Node Host 不受影响。详见 CEF 兼容说明。
  • 按需启用指定 Plugins 子目录内的 Ruby 插件写入与重新加载,包含校验、备份和显式权限开关。
SketchUp Ruby 扩展 ── 本地 WebSocket ── DSH Host 插件
  SketchUp API/界面定时器              工具、实例路由、内嵌网页

默认本地地址为 ws://127.0.0.1:3080/ext/sketchup。几何坐标和工具长度统一使用 SketchUp 内部单位:英寸。事件历史来自观察器回调,不等于完整的内部撤销记录。

权限与已知限制

随包提供的 Host 配置将 allowPluginWrite 和 allowPluginLoad 默认设为 false。启用后,Ruby 代码可以使用 SketchUp 的进程权限;每次写入或重新加载还需传入 confirm: true。虽然没有通用 eval 命令,加载 Ruby 文件仍属于代码执行,启用前应检查源码。

回环地址检查与固定的 sketchup://dsh-bridge Origin 用于限制浏览器来源,不能验证恶意本地进程的身份,因此应在可信本机环境使用。桥接将模型数据发送给本地 Harness;Harness 可能按照所选模型服务和自身设置将数据发送给模型提供方。本仓库和发布套装不包含个人工程、会话记录或凭证。

WebView 会话绑定属于客户端协调机制,不是原子化的权限边界。请避免在多个窗口中将同一会话同时绑定到不同 SketchUp 实例。绑定失败会阻止后续操作;若会话已经创建,随后的绑定失败不会删除该会话。复用连接中的绑定失败会关闭共享连接,也可能中断其中的其他流。每个实例的事件历史有数量上限,但当前 alpha 尚未清理长期运行 Host 中的所有已断线实例标识。

模型操作在 SketchUp 界面线程上排队执行。断线后会丢弃该连接尚未执行的任务,网络队列有大小上限,写入也有超时限制。取消操作无法撤销已经开始的原生模型修改。插件路径检查会拒绝目录穿越、链接和 Windows 路径别名,但不能完全防御恶意进程同时重命名目录造成的竞争条件。CEF 垫片不能升级 CSS、编解码器、浏览器权限或不支持的 JavaScript 语法;Web Worker 拥有独立运行环境,需要单独处理兼容性。

开发与验证

需要 Node.js 22.13+、pnpm 11.7.0:

pnpm install --frozen-lockfile --ignore-scripts
pnpm test
pnpm run build
ruby test-ruby/run.rb

构建时会把标准 JavaScript 兼容代码打包到本地文件,运行页面不从 CDN 下载垫片。core-js 仅作为构建依赖,其可选安装钩子已禁用。Ruby 测试使用模拟界面、模拟连接和临时目录,不会修改正在打开的 SketchUp 模型。Windows 若不允许创建文件符号链接,相应测试会跳过;目录联接测试另行执行。

测试覆盖协议校验、实例路由、WebView 绑定、Cordis 组合、缺失 API 的行为、队列隔离、WebSocket 帧及大小限制、插件文件系统检查。实际运行已确认:加入 Iterator 兼容修复后,SketchUp 2024 能加载完整聊天界面。安装器测试使用临时目录和模拟 DSH 命令,另已通过真实 DSH CLI 验证 Host 包安装;这些验证不等于全新电脑上的完整安装认证。

致谢

  • Yuxiang Lin/Lum1104 与 dsh-browser 贡献者:提供 MIT 许可的上游代码,Lum1104/dsh-browser。
  • leolee9086/dsh-browser:本独立包拆分时所依据的 fork。
  • DeepSeek Harness:提供 Host 运行时及 Cordis 插件生态。
  • Denis Pushkarev 与 core-js 贡献者:维护标准 JavaScript 垫片,core-js,采用 MIT 许可证;原文保存在 THIRD-PARTY/core-js-LICENSE。

本仓库由 leolee9086 维护独立打包、可靠性修复、安装套装和 CEF 兼容集成。上游署名完整保留,不将上游桥接代码宣称为本仓库独有原创。

—/ 5

No ratings yet

Verified DSH bundle

Commit cc0883fef201

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout