Moeblack/dsh-preset-kit
Publish DeepSeek Harness agent presets as plugins: symlink installs, hot reload, ownership records, clean uninstall
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.
dsh-preset-kit
Publish agent presets into a DeepSeek Harness home: copy installs refreshed on every boot, owner tracking, and clean uninstall.
Why
dsh treats presets as local files: a preset is a directory under
$DSH_HOME/.agent-presets/<id>/ holding agent.cordis.yml (+ optional
preset.yml). Bundles cannot add preset roots — composeProfile replaces
the agent-presets row's roots with the shipped root at the top overlay —
so a plugin that ships a preset has to write into the user root itself.
This kit is that shared piece: publish, conflict rules, ownership records, and uninstall, so every preset-carrying plugin does not reinvent it.
Hot reload vs. boot refresh
dsh-agent-presetsre-reads its roots on everylist()/resolve(), so a preset that appears in the user root is visible immediately — no restart.- dsh's preset scanner does not follow symlinks (
readdirfile types +isDirectory()), so the default mode iscopy. Republish on every plugin boot (the naturalapply()cadence) to refresh the copied preset from its source — upgrading the plugin and restarting dsh updates the preset. symlinkmode exists for tooling that consumes the user root itself, but a symlinked preset is invisible to dsh.
API
import { publishPresetSync } from 'dsh-preset-kit'
// In a Cordis plugin apply():
const undo = publishPresetSync({
id: 'minimal-web', // /^[a-z0-9][a-z0-9-]*$/
dir: new URL('./presets/minimal-web/', import.meta.url).pathname,
owner: 'dsh-minimal-web', // your package name
})
ctx.effect(() => undo, 'preset-publish')
Async variants for scripts: publishPreset, unpublishPreset,
listPublished. dshHome defaults to $DSH_HOME, then ~/.dsh.
Ownership rules
- Publishing into an id already published by the same owner replaces it.
- Publishing into an id published by a different owner throws.
- Publishing into a preset directory the user authored by hand (no publisher record) throws — never overwrite a person's work.
unpublishPresetremoves only its own publication; the undo function is safe to run after a manualrm.
Records live in $DSH_HOME/.agent-presets/.publishers/<id>.json.
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
GitHub 메타데이터에서 라이선스가 감지되지 않았습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.
missing-license