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

dsh-plugin-deploy

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dsh-plugin-deploy

DeepSeek Harness 插件:一句话把当前项目部署到 Cloudflare

Source
npmnpm
Version
0.1.0
Version published
Weekly downloads
54
-71.28%
Maintainers
1
Weekly downloads
 
Created
Source

dsh-plugin-deploy

DeepSeek Harness 树外插件:一句话把当前项目部署到 Cloudflare。

支持的 harness 版本:0.1.0-rc.7(钉死 commit 99f6f02fecdb)。Web UI 需要 web-capable profile。

它做什么

层你是谁实际发生的事
L1没有 Cloudflare 账号,或显式要求临时预览wrangler deploy --temporary 创建临时预览账号,立刻给出 *.workers.dev URL
L2已有 Cloudflare 账号设置里只存 token 的引用名,值经 ShellExecRequest.env 传给 wrangler

P0 只做 Cloudflare。不支持 Vercel / Netlify / VPS / 自定义域 / 回滚 / Next.js SSR(OpenNext)。

支持的项目形态:纯静态目录、Vite 类构建产物(dist/)、已有 wrangler.jsonc / wrangler.toml 的 Worker。检测不出来会问你,不会猜。

安装

dsh plugin --profile web add dsh-plugin-deploy

本地开发(路径必须是绝对路径):

dsh plugin --profile web add /absolute/path/to/dsh-plugin-deploy

然后用同一个 profile 启动,例如 dsh --profile web。

怎么用

  • 对模型说「帮我发出去」,或使用斜杠命令 /deploy(后面可跟目录)。
  • 工具名是 deploy。不要把 token 写进对话或工具参数。
  • 会话里的部署结果卡片优先读顶层调用的结构化 presentationMeta;嵌套调用(子 agent 等)时 harness 不会写入 meta,卡片会从工具结果文本回落解析预览 / 认领信息,这是预期行为。

发布 dsh 插件

工具名 publish_plugin,斜杠命令 /publish-plugin。只做两件事:校验并打包 tarball,以及(另需审批)发布到 npm。不推 GitHub,不代提 dsh.pub 收录 PR。

mode做什么
check(默认)只校验,不写文件、不发布
pack校验通过后 npm pack --pack-destination 把 .tgz 写到平台临时目录,返回绝对路径。不写进插件仓。
npm校验通过、版本未被占用、审批为 allowed-once 后才 npm publish。直接发布,不把 tarball 留在项目里。
# 斜杠命令:默认 check;可写成 /publish-plugin pack
dsh plugin --profile <p> add /absolute/path/to/plugin-0.1.0.tgz
  • 参数只有 directory / mode / tag / access,没有 token 参数。
  • pack 产物在 os.tmpdir()/dsh-plugin-deploy/packed/,不进项目目录。临时目录可能被系统清理,请自行拷走或尽快使用。
  • check 使用 npm pack --dry-run(隔离 cache),不写 tarball。npm 模式直接 npm publish,不会先在项目里落一份 .tgz。
  • npm token 的引用名在设置里配置(默认 NPM_TOKEN),值走凭据服务。发布时写入项目外的临时 .npmrc(内容只有 ${DSH_NPM_TOKEN}),经 env 传入,用完删除。不会写 ~/.npmrc,也不会 npm config set。
  • scoped 包默认 --access public。遇到 OTP/2FA 挑战会直接失败,请改用 automation token。
  • 结果卡片注册在 tool.call.toolview(key = publish_plugin),同样是 meta 优先、嵌套调用从文本回落。

L1 临时预览(请如实阅读)

  • 这是临时预览地址,不是正式上线。
  • 认领窗口大约 60 分钟。官方说明:若不完成认领,Cloudflare 会删除该临时账号及其资源。
  • 认领链接是 bearer 凭据。它会出现在工具结果里,因此也会进入会话日志。请勿分享该会话。
  • 执行前插件会用交互问题请你同意 Cloudflare 服务条款与隐私政策:
    • https://www.cloudflare.com/terms/
    • https://www.cloudflare.com/privacypolicy/
  • 需要 Wrangler ≥ 4.102.0。低于此版本只能走 L2。
  • 本机 wrangler 已登录或已配置 token 时,mode=auto 仍优先走 L2。显式指定 mode=temporary 会在隔离 HOME 下执行(并把 CLOUDFLARE_API_TOKEN 设为空),本机登录态不会被读取或改写,不要为此 wrangler logout。
  • 临时账号静态资产:最多 1000 个文件,单文件 ≤ 5 MiB。

L2 自己的账号

  • 在 Cloudflare 控制台创建 API token(Workers 编辑权限)。
  • 打开 Web UI 设置里本插件的卡片,确认引用名(默认 CLOUDFLARE_API_TOKEN)。
  • 把 token 值写入 dsh 凭据服务(卡片提供只写输入;也可以用宿主既有的凭据入口)。
  • 值只存在凭据服务里。设置文档只存引用名。describe() 只回答是否已配置,永不返回值。模型看不到 token。
  • 之后再说「发到我的 Cloudflare」,或 /deploy。

凭据规则

  • token 不会出现在工具参数、命令行字符串、工具返回值或审批理由里。
  • 唯一传递方式是 ctx.shell.resolve({ command: 'wrangler deploy', env: { CLOUDFLARE_API_TOKEN } })。
  • 子进程环境会擦掉名字匹配 TOKEN 的变量,因此必须显式放进 env,不能指望继承。L1 会把 CLOUDFLARE_API_TOKEN 显式设成空串,避免环境里残留的 token 让 --temporary 失败。

已知限制(P0)

  • 只有 Cloudflare。
  • 不做自定义域、回滚、CI/CD、Next.js SSR。
  • L1 在默认 workspace-write 沙箱下不能写用户家目录里的 wrangler 配置。插件把 HOME 指到平台临时目录下的固定路径,让临时账号缓存在那里复用。不能改用 XDG_CONFIG_HOME:wrangler 4.x 的 getGlobalConfigPath 只要发现 ~/.wrangler 目录存在,就优先用它并完全绕过 XDG(useLegacyHomeDir)。隔离 HOME 之后 os.homedir() 不再指向用户家目录,因此不会读取或改写用户真实的 ~/.wrangler。L2(经 env 传 token)不改 HOME。
  • 没有现成 wrangler 配置时,插件把生成的 wrangler.jsonc 写到项目目录之外(平台临时目录),并用 --config <绝对路径> 指向它。wrangler 把 assets.directory 解析为相对于配置文件所在目录,所以配置里的 assets.directory 必须是站点的绝对路径。部署时的工作目录也设在配置文件旁,避免 wrangler 把 .wrangler/tmp 写进站点根。同时会临时写入 .assetsignore(wrangler 4.x 的 assets 没有 exclude 字段),排除 .wrangler/ 和旧版落在项目里的 .dsh-deploy.wrangler.jsonc。
  • L2 若只用本机 wrangler login、没有配置 API token:沙箱可能读不到家目录里的登录态。请配置 API token(推荐),或在更宽的权限模式下运行。插件不会为此升权。
  • harness 没有 stderrMaxBytes;wrangler 的 stderr 受宿主默认上限约束(常见约 64KB),超长报错可能被截断。
  • Worker 项目只预检 wrangler 配置里的 assets.directory。解析不出来就不做整仓预检,改由 wrangler 报错再映射提示。
  • 未在真实浏览器里验证设置卡片与工具视图(构建与 vm 沙箱会验证 bundle 形态)。
  • 未做真实 wrangler deploy 端到端(本机是否登录、是否有网,以你的环境为准)。

开发

npm install
npm run build
npm test
npm run check

FAQs

Package last updated on 19 Aug 2026

Related posts