dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Enterprise Agent Workbench for DeepSeek Harness (DSH) Web UI.
企业 Agent 工作台以"场景卡片"为入口、以交互式表单收集参数、以 Session 为执行单元的定制化工作台。它基于 DSH 插件式架构构建,是一个纯增量插件,不替换、不禁用任何官方插件。
阶段边界(Phase boundary):"启动"会通过宿主 sessionController(web 端新建会话同一个服务)真实创建 agent 会话并注入 prompt——会话出现在对话列表、agent 真正执行。
卡片配置的 agentPreset 在宿主可解析时挂载;若未安装则自动降级为默认会话继续运行,
控制室 stepDescription 会说明。spawnAgent: false 可显式关闭真启动(仅记录)。尚未做的是:把 card 的 agentConfig.skills 显式挂进 preset 组合(preset 本身可带 skills,但卡片级 skills 尚未透传)。
用户点击卡片 → 参数采集面板滑出(含条件子表单联动)
→ 用户填写/上传(file 字段为服务端绝对路径,启动时校验存在性)
→ 点击"启动"
→ 组装Prompt + 校验(必填/体积/服务端路径)
→ sessionController.create({sessionId, agentPreset}) 创建真实会话
→ sessionController.prompt({sessionId, content}) 注入 prompt → agent 执行
→ 控制室通过宿主 session/event 驱动会话状态key == 'value' expressions dynamically show/hide sub-forms(逻辑与宿主端共享单一来源 src/conditions.js)sessionController 真实创建 agent 会话并注入组装好的 prompt(spawnAgent: false 可关闭真启动、仅记录)file 字段是服务端绝对路径(如 /mnt/share_space/profiling),启动时逐条校验存在性session/event 驱动;每张会话卡可删除(失败/完成直接删,运行中需两步确认,只删工作台记录不动真实会话)Card · Skill · Preset · Category 开箱寻优 · model-oob-perf-optimize · model-oob-perf-optimize · 寻优 Profiling 采集 · ascend-profiler · ascend-profiler · 寻优 验证流测试 · veriflow · veriflow · 测试 AIPerf 压测 · —(提示词自包含) · aiperf · 测试
AIPerf 压测卡是自包含的:采集台 JSON 内含可直接执行的aiperf profile命令,卡片 systemPrompt 已包含执行与产物分析指令。宿主若安装了aiperfpreset 会自动挂载,否则以默认会话运行。
# Clone or copy this package into your DSH profile's node_modules
dsh plugin --profile web add @lycheelink/dsh-workbenchThe package exposes a host typert artifact (./typert): the typert-loader discovers it and registers the workbench/* Remote endpoints on the host. This artifact is mandatory — without it the host never exposes any workbench/* endpoint.
# Symlink into the web profile:
node scripts/install-dev.mjs
# Build host (Node.js) + client (browser):
npm run build
# Test:
npm test # requires a build first (imports lib/)npm run build:host # Build host side (src/index.js + typert/remote/descriptors → lib/)
npm run build:client # Build client side (src/client/index.jsx → lib/client.js)
npm run build # Build both
npm run pack:release # Build + npm pack四个参数控制台(寻优参数采集台 / Profiling 参数采集台 / 验证流测试台 / AIPerf 压测台)是双模单文件 HTML:既在插件内嵌运行(src/client/artifacts/*.html,经 npm run sync:artifact 从 pages/cloudflare-pages/dist/ 同步),也独立部署在 Cloudflare Pages。`pages/cloudflare-pages/dist/` 是唯一权威源——改页面只改这里,然后:
npm run sync:artifact # 刷新插件内嵌副本(幂等剥离 builder node-id 噪音)
./pages/publish.sh # 部署 → https://dsh-workbench.pages.dev(需 pages/publish.env,勿提交)publish.sh 支持 --check / --dry-run / --force / --help;包含发布前污染自检与发布后字节数抽查。凭证从 pages/publish.env 读取(模板见 pages/publish.env.example)。
@lycheelink/dsh-workbench is published to npm from GitHub Actions on a version tag. Pushing a vX.Y.Z tag whose version equals package.json version triggers .github/workflows/publish.yml, which runs the full gate (tag ↔ version check → npm ci → npm run build → npm test → npm pack + artifact validation) and publishes the validated tarball to registry.npmjs.org. Authentication uses npm trusted publishing (GitHub Actions OIDC) — no long-lived npm token is stored — and npm automatically emits a sigstore provenance statement for the public package.
npm version patch -m "chore: release %s" # bumps package.json + package-lock.json, creates commit + tag
# keep dsh.plugin.json version in sync (npm version does not touch it)
git push origin main
git push origin v0.1.6 # ← this push triggers the action- prerelease suffix) publish to latest; prereleases (e.g. 0.1.2-alpha.0, via npm version prerelease --preid alpha) publish to next.v{package.json.version} exactly or the workflow aborts at the first step.lycheelink/dsh-workbench, workflow filename publish.yml, with the npm publish action allowed. The workflow must keep permissions: id-token: write; it runs on Node 24, upgrades to npm 12.2.1, and explicitly sets the registry. Do not set registry-url on actions/setup-node — it injects a placeholder NODE_AUTH_TOKEN into GITHUB_ENV, which makes npm skip the OIDC exchange and fall back to token auth.latest backwards.shell.overlay — Full-page workbench layer + left-sidebar "工作台" nav entrysettings.plugins.tab — Card management settings pageMIT