New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

dsh-workspace-quick-create

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dsh-workspace-quick-create

新建工作区快速创建:默认根目录 + 免系统文件对话框(Codex 风格)

latest
npmnpm
Version
0.1.4
Version published
Maintainers
1
Created
Source

dsh-workspace-quick-create

npm version npm downloads node Install License: MIT

新建工作区快速创建 —— 给 DSH Web GUI 的「新建工作区」流程做的 UI 增强:

  • 在 GUI 里设置一个默认工作区根目录(例如 ~/Documents/deepseek_projects);
  • 之后新建工作区直接输入名字回车,即在根目录下 mkdir 并注册为新工作区, 全程不再弹出系统文件选择对话框(Codex 风格快速创建);
  • 面板里的「浏览…」按钮仍可随时退回系统选择器,选任意目录。

本项目由本地脚手架 dsh-plugin-scaffold (模板版本见 package.json 的 scaffoldVersion)生成,host/client 双半 + Typert RPC 回环的静态插件(static-bundle)。

它是怎么工作的

DSH 的工作区「添加」流程把目录选择交给两个 slot 洞:

conversation.hero.workspace.directoryFlow   (新会话页的选择器)
sidebar.workspaces.directoryFlow            (侧边栏工作区的 + 按钮)

原生行为由官方包 @deepseek-ai/dsh-client-ui-directory-picker-native 占据—— 每次都弹 OS 文件夹选择框。本插件在同一对 slot 上以更低 priority 注册自己的 面板(single-slot 影子语义:priority 最低者渲染),于是:

  • 点 + / 新会话选择器 → 弹出本插件的面板(不再是系统对话框);
  • 输入名字 → 实时预览完整路径 <默认根目录>/<名字> → 回车或点「创建并打开」;
  • Client 调 Host RPC ensure-workspace-dir:校验单个合法路径段、mkdir -p;
  • 拿到绝对路径后走 ui-workspace 原生的 createWorkspace({ path }) 完成注册与跳转。

默认根目录保存在 <dsh-home>/storages/dsh-workspace-quick-create.json (遵循 $DSH_HOME → ~/.dsh 的解析顺序),可在两处修改:

  • 快速创建面板顶部的「更改」;
  • 设置页「工作区快速创建」(settings.section)。

面板与设置页的所有控件均使用平台原语(Modal/Input/Button),自动跟随明暗主题。

安装

从 npm 安装(推荐)

dsh plugin --profile web add npm:dsh-workspace-quick-create

指定版本 / 更新:

dsh plugin --profile web add npm:dsh-workspace-quick-create@^0.1.0

安装后重启 dsh(或刷新 Web GUI)即生效;插件会出现在设置页「工作区快速创建」。

首次发布前上面的命令会 404 —— 请先用下面的本地联调方式安装。

本地开发联调

npm install             # 首次
npm run install:local   # 构建 + 软链进 ~/.dsh/profiles/web
# 重启 dsh / 刷新 Web GUI 后生效

卸载(二选一):

dsh plugin --profile web remove dsh-workspace-quick-create
npm run uninstall:local

软链安装 —— 移动/删除/改名本项目前务必先卸载,避免 Profile 里留下悬空软链。

使用

  • 打开设置页「工作区快速创建」,把根目录设为如 /Users/you/Documents/deepseek_projects,保存;
  • 侧边栏「工作区」点 + (或新会话页的工作区选择器)→ 输入名字 → 回车;
  • 新工作区出现在列表里并自动打开会话;想挑任意目录时点面板里的「浏览…」。

RPC 面(Typert service workspaceQuickCreate)

方法入参返回
ping—{ ok, pong, plugin } 连通自检
get-config—{ ok, root, home } 当前根目录 + Host 家目录
set-root{ root }(空串清除){ ok, root } 校验 + mkdir -p + 持久化
ensure-workspace-dir{ name } 单个路径段{ ok, path } join 到根目录后 mkdir -p

名称校验:trim 后非空、≤80 字符、不含 / \ < > : " | ? * 与控制字符、 非纯点、不以点/空格结尾;中文名完全可用。输入框对 IME 组合中的回车做了防误触。

开发

npm run typecheck    # tsc --noEmit,严格模式
npm test             # 双冒烟:vm 沙箱加载真实 dist 产物并断言行为(需先 build)
npm run build        # dist/host.js (ESM) + dist/client.js (__ModuleLoader__ 工厂)
想做什么改哪里
加 RPC 方法src/shared/contract.ts 的 METHODS + src/host/service.ts 加方法
改快速创建面板src/client/components/QuickWorkspaceFlow.tsx
改设置页src/client/components/RootSettingsPage.tsx
加文案src/client/i18n.ts 的 ZH/EN 字典
加样式src/client/styles.ts
换 UI 挂点 / 用其他客户端能力先读 docs/client-modules.md,按需调整两处 inject

兼容性说明

  • 针对 DSH 0.1.x-rc.7 的 slot 拓扑(conversation.hero.workspace.directoryFlow 为 single kind);若未来版本改变洞名/语义,需同步调整 src/client/index.tsx。
  • 若与其他同样影子化这对 slot 的社区插件共存,priority 数值更低者胜出 (本插件用 -10)。

License

MIT © wqy8593521

Keywords

dsh

FAQs

Package last updated on 23 Aug 2026

Related posts