@ai-workbench/connect

中文文档
0.7.39发布于 2026/11/07TypeScriptESM + CJS近 30 天下载 4123

查看远程主机连接状态并管理 Claude/Codex 登录。

中文使用文档
文档目录10 节
  1. 0.7.36 · 设置、身份复用和工作位置
  2. TLS证书错误导致安装或组件下载失败(D25)
  3. 0.7.32 · SSH失联保活
  4. 远程目录浏览(0.7.35)
  5. 0.7.30 · 默认浏览器登录
  6. 0.7.25 · owner减法
  7. 统一目录选择器(0.7.24)
  8. 0.7.26 · 复用现成目录选择
  9. 0.7.27 · N0.4.9 精简消费
  10. 设置页与登录交互(0.7.33)

员工一次安装:在官方 DSH「插件 → 添加插件」输入 @ai-workbench/workbench。已分装 network、connect、remote-agent 的,先移除三者,再装总包。

本轮总包0.1.5精确锁定 network 0.4.11 / connect 0.7.39 / remote-agent 0.8.30;管理员按总包发版说明重新生成并核验固定 tgz 与 SHA。工人不 publish。

connect 0.7.39:DSH 版本声明由精确版本改为范围 >=0.2.0-rc.2 <0.3.0-0(peer 与 engines.dsh 同值),不再随 DSH 小版本被拒装。

connect 0.7.37:高级内容沿主体原生行与官方折叠/按钮;导入实际请求覆盖入网激活到连接确认,期间中性显示,结束后保留最终失败原因,不加延时。总包0.1.3按已发布的N0.4.9/L0.7.37/X0.8.29生成。

单独安装 connect:在官方 DSH「插件 → 添加插件」中选择编排已核验的 tgz 绝对路径,或输入编排已发布的精确包版本。发布由编排执行。

远程主机连接插件(L)

员工按插件名安装/更新,沿官方pnpm的24小时成熟期;未满24小时选已成熟旧版。不预置 @ai-workbench/* 发布时间例外,不改员工profile。验收或紧急修复由编排提供精确版本,兼容子包同批发布。历史D17诊断仍留在docs/evidence,旧scope例外不再是当前安装前置。

0.7.36 · 设置、身份复用和工作位置

重装后重新导入同一资料,源authkey已被N按合同清理时,L仍把不含authKeyFile的配置交N.activate,由N先验证已保存身份。L不读身份/journal或密钥字节;只有N明确NEED_ENROLLMENT才显示缺凭据,密钥明确拒绝才要求领取新凭据,空/权限/链接异常仍拒绝。N的配置路径/摘要、nodeName和默认值变更可能ENROLLMENT_MISMATCH,本单不迁移或绕过它;真实重装由编排leo复验。

设置页沿原生通用设置的标题/灰字说明/右侧官方按钮和细分隔线,摘要为一行说明;登录内容与一次粘贴协议保留,高级使用官方DisclosureRow默认折叠。

S0.4.25资料可含workspaceSources=["host","local"]、["host"]或["local"]。L只保存/呈现该非秘密字段,缺字段按两者显示,不补写旧源包/旧登记。添加工作区只显示允许来源,单来源直接进入并灰字说明。这是员工界面限制,不是安全边界;不改变既有工作区、后端选择/主机/session/bridge/policy或执行能力,不改X/N/S。

TLS证书错误导致安装或组件下载失败(D25)

员工看到此类失败时:连接被截获,可能连不上主机。 官方插件安装尚未成功时,L还没有运行,无法接管或替换官方pnpm错误;请把官方安装界面的报错交给管理员。0.7.30已删除登录组件下载;本节仅保留官方插件安装时的诊断。

管理员识别:保留pnpm报错原文,特别是 CERT_HAS_EXPIRED(常伴 certificate has expired)、UNABLE_TO_VERIFY_LEAF_SIGNATURE(日志可能只显示 UNABLE_TO_VERIFY…,常伴 unable to verify the first certificate)、SELF_SIGNED_CERT_IN_CHAIN、DEPTH_ZERO_SELF_SIGNED_CERT 或 ERR_TLS_CERT_ALTNAME_INVALID。这些分别提示证书有效期、信任链或目标域名验证失败;错误码本身不能证明网络截获,也可能是服务端证书、设备时间或本机信任链问题。

在出现问题的员工网络,由管理员执行以下只读诊断;员工不需安装工具或填写技术参数。这只查看npm站点公开证书,不下载或安装软件:

openssl s_client -connect registry.npmjs.org:443 -servername registry.npmjs.org -showcerts -verify_return_error </dev/null

保留输出的证书链、subject/s:、issuer/i:、有效期和 Verify return code;核对叶证书主体及SAN(Subject Alternative Name)是否覆盖 registry.npmjs.org。需要读SAN时可让网管用 openssl x509 -noout -text 读取这份公开叶证书。OpenSSL 3等支持的版本还可在上述命令加 -verify_hostname registry.npmjs.org;macOS自带部分LibreSSL没有这个选项,不能照抄一个不支持的选项,也不能把s_client默认的链校验成功当成主机名验证成功。-verify_return_error使验证失败即返回错误;不要为了获得更多输出关闭验证。证书未完整显示时把原始失败输出交网管协助。

编排10-23在leo的问题网络实测:请求registry.npmjs.org却收到主体为 *.hzwesoft.com 的证书,2026-05-22已到期,pnpm报 CERT_HAS_EXPIRED;此前下午在原正常网络,同一安装操作约9秒成功。这种与目标npm域名不符的证书,结合两次不同网络的结果,可识别网络设备截获或错误网关返回;是否切回后恢复仍需现场核实,下午结果不充当本次恢复验收。不要只因issuer名称不是“npm”就判截获:公网证书通常由独立CA签发,应看叶证书的目标域名及链。正常证书的域名、CA、有效期会轮换,不把某一个固定issuer或证书指纹当标准。

处理:换回可正常访问npm/组件官方来源的网络,再由员工正常执行原安装动作;或把报错原文、问题发生时间/目标域名和公开证书诊断结果交网管,修复网关、证书/信任链或设备时间。保持证书校验:不设置strict-ssl=false,不设置NODE_TLS_REJECT_UNAUTHORIZED=0,不用跳过校验的下载方式,不把HTTP或未经核验的证书作为绕过。网管修复后再按原路径安装,不用反复重试掩盖错误。

依据:Node 24.13.1证书错误码、OpenSSL s_client验证与证书输出、npm strict-ssl默认开启。leo结果来自编排D25记录,本轮未操作leo或复现其真实网络截获。

员工照常使用官方 DSH 默认界面、数据目录与profile。本插件在“设置 → 远程主机连接”管理本项目自己的连接资料、工作区映射与Claude/Codex登录,并通过两个官方添加工作区 slot 提供统一目录选择器;不限制、拦截或记录其他模型,不改变默认布局或服务。

本轮只做中文,已有英文名称保留。A已冻结,Claude/Codex由X的ACP插件承载;L的消费方为X和N。

现行接口见connect-api。工作区来源由员工在统一目录选择器明确选择;远程位置用插件私有唯一映射注册,旧测试会话不迁移。首次说明投递回执与旧legacy确认路径均已删除,不存在持久创建意图或结果未知后锁死选择器。

N消费端保持公开activate/getActivationState/onActivationState握手;L登记非秘密引用,N唯一消费/清理开通材料。本轮不改N开通语义。

D13已通过PR15合推main7915df5,移除前为909eabb;五项被拒产物及清单引用已撤除。当时撤除的旧聚合整包和验收ZIP不再生成;10-26 owner另授权的新workbench包仅复用官方bundle机制合并已发布子包patch,见本文开头,不复活旧整包装配器。

插件版本0.7.32,API版本保持0.7.0,旧native-local-v1能力标识已删除。 本轮沿用现有N/X公开API,真实组合由编排验证。L导入动作固定使用官方系统目录窗口:自动能力为native时直接消费其pick;SSH等启动上下文提供browse时,明确调用同一官方原生包的公开pickNativeDirectory,不修改全局选择器。失败原因在本节技术详情准确投影。js-yaml及其传递运行依赖随tgz打包,官方宿主peer由已安装官方程序提供,员工不另装npm依赖。真实中文GUI/授权及leo E门分别留证。旧140测试/46图只属于前任draft.3;本轮证据独立记录于第2轮证据。不得拿旧0.6.3 tgz当native-local-v1的输入。

开发使用Node24.13.1,依赖/缓存/构建和临时HOME放自有外接APFS。工程检查为npm test、npm run check、npm run build;它们不替代真实产品路径。安装走官方插件管理,本包自身只声明一个官方bundle条目,不使用wrapper或员工启动器。工人GUI按SELFTEST的PID和三项获准偏离执行,不操作owner实例。

员工路径见首次设置,设置与后果见SETTINGS-OWNER,冻结门见本轮计划。

0.7.5仅调整公开 npm 发布元数据和包内容:运行依赖继续随包,合同、源码、测试与证据不进包;无安装脚本。源码与合同见项目仓库。发布前可用官方插件页安装已核验的tgz绝对路径。0.7.32本轮提供固定tgz,由编排决定发布;L不执行publish。

0.7.32 · SSH失联保活

本插件及消费公开 sshArgs 的连接使用OpenSSH标准 ServerAliveInterval=15(秒)、ServerAliveCountMax=3:已建立的加密SSH通道连续15秒无数据时发保活请求,连续3次无响应后由ssh以255退出,交给现有失败路径处理,不重试。取值沿用OpenSSH手册示例,旨在让睡眠/网络黑洞留下的死流结束,并容忍短暂丢包。约45秒是手册估计,本机OpenSSH9.4p1的已建立通道黑洞夹具实测约60秒,实际取决于OpenSSH探测轮次和调度;休眠期间进程不执行探测,不承诺包含睡眠的墙钟上限。健康SSH会回答保活,因此长时间无业务输出的命令/登录不会被此机制限时;保活不替代建连/握手超时,也不是目录查询或生成的总时限。

按本轮编排授权,这两个有名参数固定并在文档公开,不新增管理员Config、阈值面板、重试或探针。原员工身份/主机信任/N代理不变;X消费方只需沿用公开sshArgs,不在L修改X的取消/刷新逻辑。

仅后续新建且使用本版公开sshArgs的SSH生效,升级不会主动结束旧进程;目录查询取消和刷新由X的既有消费路径处理。

远程目录浏览(0.7.35)

官方 profile 中的远程目录浏览使用一个 SSH 通道和一个远程 Node 进程,按行请求多次目录列表,不再每次点击启动登录 shell、命令包装进程和目录 helper。无 profile 的内部 Runner 注入保留原单次请求供独立消费者/诊断;官方插件总是传入自己的 profile。执行前 inspect 和显式新建目录仍走原来的鲜查/创建路径,不把预取当作执行授权;新建前关闭浏览连接,下一次浏览取得新页面。

浏览 SSH 采用 OpenSSH 原生 ControlMaster=auto、ControlPersist=60 秒,并沿用现有 ServerAliveInterval=15 / ServerAliveCountMax=3、严格主机信任及 N 原样 ProxyCommand。DIRECTORY_CONTROL_PERSIST_SECONDS=60 是本轮 B 类固定技术参数,给意外结束的空闲 master 保留短期回收窗口,不是目录/登录/生成总时限;本轮按派单不加设置,可调策略另提 C 类。正常关闭主动 ssh -O exit,不等这 60 秒;N 不需要新增接口。OpenSSH 官方说明明确复用同一已认证网络连接,连接建立时仍使用原代理。

控制 socket 位于 <profile>/ai-workbench-connect/ssh/m-<本次随机目录>/c;L 根、ssh 父目录及随机目录均为当前用户独占 0700,拒绝符号链接或宽权限。SSH 以当前 profile 为 cwd,ControlPath 使用该 profile 内的相对路径,避免长路径超过 macOS Unix socket 路径长度;不借用其他插件、profile 或员工的 master。当前目标完整参数变化、连接 instance/epoch/phase 变化、取消当次请求、profile 卸载会使旧浏览流失效;关闭只操作本实例的精确目录/master,不扫描或删除其他 socket。浏览进程随当前 profile 浏览连接存活,无后台轮询、总时限或自动重放;关闭目录弹窗本身不结束 profile 连接。

每页返回后在主机内预取本页可读且可进入的直接子目录首屏,只一层,不递归、不读取文件内容。单页仍按 workspaceLocations.pageSize 分页;预取缓存合计沿用 commandOutputMaxBytes 字节预算,放不下的不缓存,不截断页面。缓存仅存当前浏览进程内,下一页/目录切换会替换,创建、连接失效或卸载会清除。下一次实际点击先重验缓存目标的规范路径、身份、权限与目录时间戳,并刷新本页子条目的身份/权限;变化时重新列当前路径,预取失败也在实际点击时鲜查,不拿旧错误/旧规范路径替代。传输或协议错误明确失败,不换路径、不降级代理、不重试。

0.7.30 · 默认浏览器登录

在设置 → 远程主机连接点「登录 Claude」,插件用系统默认浏览器打开主机官方CLI生成的授权页。完成网页登录后,在Claude页面复制授权码,回到「Claude(远程主机)」行粘贴并点「完成登录」。码仅在本次内存与受保护POST正文、SSH stdin中交接,不写进命令参数、日志或状态。码不属于本次登录则明确失败;主机未确认成功时说明失败,可立即重发。登录失败后重新查官方状态,未登录重新显示按钮;无法核实保留入口并先检查再授权。

Codex保持官方设备码登录,设备码在本设置行显示,网页用系统默认浏览器打开。取消、断线或本次结束只清本次CLI与输入状态,不关闭员工浏览器。删除Electron登录小窗口、独立userDataDir、下载/缓存/ZIP/来源/进度/IPC设置;不自动删除旧员工缓存。无新设置,仍保留 helper.remoteKillGraceMs=1000 与 helper.loginOutputMaxBytes=1048576 两个主机CLI预算。0.7.31仅支持Mac,直接用系统 /usr/bin/open 和独立URL参数打开默认浏览器;公开state/code_challenge允许放argv,授权码仍只经stdin交主机CLI。非Mac返回现有平台不支持失败。

登录状态属于主机系统用户;第二台设备先检查,已登录直接使用,未知不启动授权。只在本人点击且确认未登录后发起,本次CLI/PKCE/state/stdin独立;无主机全局锁、1455监听或额外隧道。Codex设备码有效期由官方CLI管理,插件不加总授权超时或重试。

0.7.25 · owner减法

工作区只有本机或远程主机两种来源。每轮开始核实一次当前位置,提交前核一次会话与位置;目录或连接本轮失败,恢复后下一轮照常核实,不保存永久撤销/失败锁存。换来源需要新会话;旧测试会话不迁移。

本插件不执行任何Git操作,也不要求所选文件夹是仓库;不默认创建同名主机目录。旧映射确认、首次说明回执、每轮持久接纳账本和详情送达闸门已删除。

「会话技术详情」展开读取本profile的ai-workbench-connect/conversation.log本机日志。记录尽力而为,失败只留一行说明,不影响用户轮;无逐条回执、分页列表、送达核对、第二套连接前详情或覆盖官方Config的管理员设置面板。调用方先脱敏,不写凭据。

持续断线显示已持续的分钟数和“网络恢复后会自动重连;你可以先检查本机网络”,不再按30秒升级找管理员。只有明确需要管理员处理的原因才作对应说明。已删administratorAfterMs和详情maxEventBytes/pageSize孤儿设置;其他Config不变。

统一目录选择器(0.7.24)

在 DSH 的“添加工作区”中直接选择本机或远程主机,两个目标使用相同的目录浏览/上级/选定操作。默认打开上次成功选定的目标和目录;无历史时是本机用户根目录,切换到远程时是主机员工用户根目录。目录失效会在选择器中说明并回到该目标用户根目录;连接失败保留具体原因。取消和浏览不会改记忆;正在提交选定位置时会明确提示并等待保存结果。

选择远程目录无需准备本机文件夹。插件在当前 profile 的 ai-workbench-connect/remote-workspaces/<完整SHA256> 建立空的本机身份映射,远端名称和文件不变,不同步、不存员工文件。注册原生工作区和持久绑定主机来源成功后才交给 DSH。成功映射保留;删除工作区或卸载不自动删除目录和旧历史。添加失败只影响本次,不保存失败锁存或 pending。若原生工作区列表有残留条目,员工可在 DSH 原生工作区管理中删除后重新选择,不要求管理员。插件不调用无条件删除;失败后保留私有唯一映射供下次显式选择复用,不自动删除目录,也不阻断下次选择。设置“远程主机连接 → 工作区文件来源”仍用于管理、刷新和查看错误,不自动改绑已有工作区。

具名设置 workspaceLocations.pickerSlotPriority 默认 -10,可在官方插件 Config 改为安全负整数。官方原生流程为 0,数值更低者显示;同优先级或被其他插件遮蔽会在本插件设置中明确提示。沿用 workspaceLocations.pageSize(默认100)、enrollmentMetadataMaxBytes 和 commandOutputMaxBytes,没有新增时间阈值、重试或目录数量上限。现有来源、原子提交、主机身份/目录复核与 pending 执行阻断是不可关闭的正确性要求。

0.7.26 · 复用现成目录选择

本机通过官方 desktop.pick(与 DSH 添加工作区相同)或官方 uiWorkspace.pickDirectory 打开系统目录框,不再渲染本机目录列表。编排已裁定:本机起始目录由系统记忆,官方 API 不支持指定。不为指定起始目录另写界面或绕过官方 API。远程仍读取上次主机目录,无历史从员工主目录开始。browse 包仅导出插件 apply/inject,内部浏览组件不公开,故插件保留远程数据浏览并沿用 DSH 的面包屑、目录列表、新建文件夹、打开/取消文案;只在显式创建时建一层,不自动建目录或执行 Git。不替换 desktop directoryPicker、不改 DSH core。

安装仅用官方插件管理或应用自带 dsh plugin --profile desktop add;装后核 profile 的 node_modules/@deepseek-ai 不存在,且 .plugin-manager/logs 有本次记录。禁止 profile 直接 npm install。

0.7.27 · N0.4.9 精简消费

仅 N 明确返回 ENROLLMENT_KEY_REJECTED 时显示“开通链接已失效,请向管理员领取新的。”;ENROLLMENT_REJECTED 表示已存设备身份失效,普通网络故障不冒充密钥作废。N 自己处理入网恢复;L 删除结果未知死映射、经主机下载/登录代理声明与适配。

不再生成 network.downloadMaxRedirects、network.proxyListen、network.httpMaxResponseHeaderBytes。读取已开通旧员工记录时仅在内存比较中忽略对应退役字段,不覆盖原记录/私有配置、不改变 N 使用的摘要;有效连接目标和设置仍须匹配。没有新增设置。

显式选本机直接打开官方系统选择框;首次打开仅通过既有 browse 读取上次设备目标,本机分支不列目录、不读上次本机路径。系统返回路径后才取得选择令牌并登记。本机起始目录由系统记忆,官方 API 不支持指定。远程保持上次位置→员工主目录。删掉目录响应额外核验层,失败按普通操作失败显示;下载进行中只留一句进度。

设置页与登录交互(0.7.33)

“远程主机连接”跟随 DSH 当前界面语言,显示连接资料、公司主机连接、Codex、Claude四项真实状态及剩余步骤。已导入后显示员工标识,不再要求重复领取资料;检查中不显示可以开始使用。目录选择器、工作区文件来源和技术详情收在默认折叠的“高级”中。

登录区内联显示完整可选中/复制的公开链接;系统打开默认浏览器较慢或失败时,仍可复制链接自行打开,也可点打开按钮。Codex显示官方CLI提供的一次性设备码和复制按钮;没有verification_uri_complete时只用CLI原基础链接,不拼接附码URL。Claude粘贴框为等宽文本、适应可用宽度,不限制授权码长度,粘贴去首尾空白,空值不能提交。授权码仍只经受保护POST正文和主机CLI stdin交接,不写日志/状态/argv。成功自动收起;本次失败说明原因并可重新发起。不新增设置、检查、轮询、重试或时限。

版本与发布记录

@ai-workbench/connect 共发布 25 个版本,首次发布于 2026/10/22;过去 12 个月发布了 25 个版本。

版本发布日期距今
0.7.39latest2026/11/07今天
0.7.382026/11/07今天
0.7.372026/10/2613 天前
0.7.362026/10/2613 天前
0.7.342026/10/2613 天前
0.7.322026/10/2513 天前

关于 @ai-workbench/connect 的常见问题

@ai-workbench/connect 是什么?

查看远程主机连接状态并管理 Claude/Codex 登录。

如何安装 @ai-workbench/connect?

在项目目录运行 npm install @ai-workbench/connect,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/cordis(^4.0.4)、@deepseek-ai/schemastery(^3.18.4)、@deepseek-ai/dsh-host-directory-picker-native(>=0.2.0-rc.2 <0.3.0-0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@ai-workbench/connect 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ai-workbench/connect 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ai-workbench/connect 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.13.1。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ai-workbench/connect 可以商用吗?

@ai-workbench/connect 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@ai-workbench/connect 的下载量有多少?

根据 npm 官方下载统计,@ai-workbench/connect 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,123 次,日均约 137 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ai-workbench/connect 还在维护吗?

最新版本 0.7.39 发布于 2026/11/07(今天);至今共发布 25 个版本,其中过去 12 个月发布了 25 个;首次发布于 2026/10/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。