dsh-plugin-scaffold
开发工具 活跃维护

dsh-plugin-scaffold

Tianbaidi/dsh-plugin-scaffold

提供社区插件开发标准化脚手架,内置四种官方扩展形态的模板示例,开发者可直接复用基础结构快速搭建符合规范的插件,无需从零配置开发环境。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
None
开源协议
22 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Tianbaidi/dsh-plugin-scaffold
git clone https://github.com/Tianbaidi/dsh-plugin-scaffold.git
git clone git@github.com:Tianbaidi/dsh-plugin-scaffold.git
README.md main

dsh-plugin-scaffold

A starter DeepSeek Harness (dsh) plugin.
It demonstrates the four extension shapes a community plugin can use, shipped as a
working persistent note scratchpad: note_write / note_read / note_list / note_delete.

Shape Where in this repo
Plugin with Config src/index.ts — Schemastery schema, defaults, cordis.yml overrides
Tools ctx.tools.register(defineTool(...)) — canonical JSON outputs + output.render
UI cards presentCall / presentResult / presentationMeta — pure projections
Hooks ctx.on('session/event', ...) — observe the agent loop

Try it

Install the bundle into any profile (the prepare script builds on install):

dsh plugin --profile web add github:Tianbaidi/dsh-plugin-scaffold

Open the Web UI and ask the agent to save a note called project-ideas about the scaffold, then list all notes.

Prefer a dev overlay instead? Point it at your local checkout:

- insert:
    - id: scaffold
      name: 'file:///<path-to-plugin>/src/index.ts'

Windows note: plugin paths in overlays must be file:// URLs
(file:///D:/...%20...), not bare D:/... paths — the ESM loader rejects
the latter as scheme d:.

Develop

pnpm install        # installs the published @deepseek-ai peer packages
pnpm typecheck      # strict TypeScript check against published .d.ts
pnpm test           # vitest: config defaults, tool round-trips, limits, presenters

Hot reload: edit src/index.ts, save, and the running dsh web reloads the
plugin (registrations are effects and clean themselves up).

Make it yours

  1. Rename the package and the name export in src/index.ts.
  2. Replace the note domain with yours — keep the Config/tool/card/hook shapes.
  3. Rebuild the cordis.yml name: file URL to point at your src/index.ts.

Publish to the ecosystem

This project is already a bundle (dsh.bundle.patch in package.json), the
official distribution format: install it into any profile with dsh plugin add.

# from a dsh installation (npm or source checkout):
dsh plugin --profile my-profile add /path/to/dsh-plugin-scaffold
dsh --profile my-profile "save a note about the scaffold"

Windows note: dsh plugin add forwards the path to pnpm, which splits on
spaces — keep the package on a path without spaces, or use a tarball.

To share it with the community:

  1. Push this project to your own GitHub repository.
  2. Add the dsh-plugin topic to your repo
    so the community can discover it.
  3. Users can then install straight from GitHub (dsh plugin --profile my-profile add github:you/dsh-plugin-scaffold). The prepare script builds lib/ from
    source on install — pnpm will ask you to allowlist the build once
    (see the package-and-install tutorial).
  4. (Optional) npm publish to make it installable by name.

License

MIT