dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
Publish agent presets into a DeepSeek Harness home: copy installs refreshed on every boot, owner tracking, and clean uninstall.
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.
dsh-agent-presets re-reads its roots on every list()/resolve(), so a
preset that appears in the user root is visible immediately — no restart.readdir file types +
isDirectory()), so the default mode is copy. Republish on every plugin
boot (the natural apply() cadence) to refresh the copied preset from its
source — upgrading the plugin and restarting dsh updates the preset.symlink mode exists for tooling that consumes the user root itself, but a
symlinked preset is invisible to dsh.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.
unpublishPreset removes only its own publication; the undo function is
safe to run after a manual rm.Records live in $DSH_HOME/.agent-presets/.publishers/<id>.json.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。