Skip to content

connect

Verified

@ai-workbench/connect · v0.7.29 · Web UI

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

Install

dsh plugin add @ai-workbench/connect

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

安装:在官方 DSH「插件 → 添加插件」中选择编排已核验的 tgz 绝对路径。已由编排发布的版本也可按其提供的精确包版本安装;本轮0.7.27只提供固定tgz,本项目不自行 publish。

远程主机连接插件(L)

首次安装前置(管理员):先在员工本机运行官方 DSH 的用户 HOME 下,向默认 profile 的 ~/.dsh/profiles/desktop/pnpm-workspace.yaml 合并以下设置,再让员工安装或更新本项目插件。这里的 ~ 不是管理员自己的 HOME,也不是公司主机上的员工 HOME。若 profile 尚未生成,先正常打开官方 DSH 一次完成默认初始化,再正常退出该实例后修改;不要手建一个缺少官方默认项的配置文件。在已有 minimumReleaseAgeExclude 键下合并,不新增重复 YAML 键;把本项目例外放在清单首条,将已有 @ai-workbench/…@版本 逐版本条目合并为这一条;保留其他包的例外和其他设置,不覆盖整个文件:

minimumReleaseAgeExclude:
  - '@ai-workbench/*'

原因:官方 DSH 0.2.0-rc.2 自带 pnpm 11.7.0,其默认新版本等待期为 1440 分钟。同名例外按第一条匹配规则决定;例如先有 @ai-workbench/[email protected],后追加 @ai-workbench/[email protected],后者仍可能被旧规则挡住,锁文件检查甚至会阻塞该 profile 的其他插件安装/更新(D17)。首次安装可能成功,提前配置是为了使后续快速更新也能正常完成。本项仅对本项目 scope 豁免发布时间等待,不关闭其他包的保护,也不把全局等待期改为0。pnpm 设置说明

能否自动写入:当前不能由首次安装中的 L 自举完成。官方安装流程先执行 pnpm,成功后才启用插件;L 的运行代码来不及修复阻止自身安装的规则。当前公开安装接口未提供由待安装插件执行的前置配置钩子,本包也无安装脚本。无需改 DSH 核心的可行层级是管理员在安装前预配置 profile;本轮只评估、未实现自动准备器或改员工配置。这是管理员部署前置,员工不需填写主机、密钥或技术参数。核验依据见 D17 源码证据。

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

员工看到此类失败时:连接被截获,可能连不上主机。 官方插件安装尚未成功时,L还没有运行,无法接管或替换官方pnpm错误;请把官方安装界面的报错交给管理员。插件运行后的登录组件HTTPS下载能识别明确证书原因码,在“远程主机连接”显示上述提示,具体原因为技术详情中的 COMPONENT_DOWNLOAD_TLS_<证书原因码>。不会因此启动授权、自动重试或换下载源。

管理员识别:保留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,交付物为插件本身。

插件版本0.7.27,API版本保持0.7.0,旧native-local-v1能力标识已删除。 本轮沿用现有N/X公开API,真实组合由编排验证。L导入动作固定使用官方系统目录窗口:自动能力为native时直接消费其pick;SSH等启动上下文提供browse时,明确调用同一官方原生包的公开pickNativeDirectory,不修改全局选择器。失败原因与临时登录路径只在本节技术详情准确投影。js-yaml/yauzl及其传递运行依赖随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,冻结门见本轮计划。

L0.7.4按owner最新纠正分开供给和授权:Electron组件从自身官方地址直接下载,设置显示实际字节/校验/解压;固定版本与SHA不变。供给完成后才启动远端登录。当前0.7.9中两品牌网页均使用员工本机系统网络;Codex用官方device-auth,网页不经N代理。系统WebKit探针回环绕过代理,故本轮保留既有Electron内存窗口;不通过重试或多流掩盖隧道慢。

官方Electron内置Node会把.asar视作虚拟目录;组件缓存/解压专用physical-fs在Electron中使用original-fs核验物理归档,不修改全局process.noAsar。真实官方运行时新建及跨Node复用缓存均有回归。

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

0.7.26:登录组件固定从 npmmirror 下载,保留 Electron44.0.0 及原 SHA256 校验。删除下载源切换按钮、切换接口与保存偏好,旧 component-source.json 不再读取、不自动改写。helper.componentDownloadSource 和 helper.source 的选源设置删除;无自动测速/竞速/失败换源。helper.componentObservationIntervalMs 仍只刷新无进展秒数。

0.7.8:Claude 本机网页登录

Claude:网页走本机网络,授权结果经隧道交主机。 点击本节“登录 Claude”后,主机上本员工自己的claude auth login --claudeai生成官方OAuth链接与PKCE上下文;插件的独立临时登录窗口通过员工电脑的系统网络/系统代理打开网页,不为Claude网页申请N代理。员工只在窗口中操作。窗口校验官方回调的state并自动将code#state经匿名IPC和现有SSH stdin交给原主机CLI,无需抄码或运行命令;PKCE交换与CLI凭据保存仍只在主机员工HOME。页面出现不等于登录成功,仍以原CLI结果和重新检查为准。窗口会话不持久化,关闭清理本轮临时目录;不改系统代理或其他模型。

0.7.9:Codex 使用官方设备码登录(已知限制:仍需粘贴码)。 主机员工自己的 codex login --device-auth 生成本次设备码;独立登录窗口上方大字显示并提供“复制一次性码”,下方用员工本机系统网络打开 https://auth.openai.com/codex/device。员工在窗口登录后,点击复制、粘贴到官方页面,再按官方页面提示确认;不是自动填码,不需要复制命令。官方CLI在主机完成轮询、交换及凭据保存,最终重新检查状态;不监听1455,不自动回退浏览器授权,不排队、不加锁、不限制员工/设备/账号并发数。

RFC8628的 verification_uri_complete 是可选字段;固定0.163.0 CLI只提供分离的页面地址与码。本轮公开设备码接口HTTP200仅返回device_auth_id/expires_at/interval/user_code,没有完整验证链接或其他URL字段;未找到已公开支持的带码参数,不猜 ?user_code= 或官方DOM字段。此结论不声称服务器绝不支持未公开行为,依据见本轮核实。只采用本单明确授权的复制流程,限制由编排报owner。

一次性码不进argv、环境变量、设置、技术详情或日志;只经匿名SSH/IPC进入本次窗口内存。只有本人点击复制才写入系统剪贴板;正常关窗或连接取消时先等本轮复制结束,若剪贴板仍是本次码则清除,已被员工改写则保留;清理失败明确报错。码由官方CLI控制有效期(当前提示15分钟),插件不新增超时、自动重试或新码生成策略。个人账户安全设置/workspace权限可能要求启用device-auth;编排实测的Pro账号可直接完成,不代表所有账户。

登录状态属于主机系统用户,不属于员工设备。 同一员工多设备映射到该主机用户的不同会话;新设备导入自己的连接资料后,先核实该用户的两品牌状态,已登录直接可用,无登录步骤、不启动主机授权命令(只读status照常);未知也不得启动。仅明确未登录、本人点击后才允许授权,启动前再查。Claude每次授权独享自己的CLI/PKCE/state/stdin,不增加跨用户或跨设备的共享资源、锁或队列。现有设置票据协调只在单个DSH插件实例内存中,无主机/跨设备共享锁;它不是账号并发限制。

此轮无新增设置/默认值/阈值:两品牌遵循系统网络;原N连接与组件配置保持。组件来源/固定Electron版本及SHA256、publishConfig、随包依赖和无安装脚本规则保持。

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 不支持指定。远程保持上次位置→员工主目录。删掉目录响应额外核验层,失败按普通操作失败显示;下载进行中只留一句进度。