Files
deepseek-harness/packages/host
Yichen Jiang 7281615d44 feat(agent-presets): give a preset a name and a description
A picker showed directory names, so the settings page could only ever list
`standard` / `core-web` / `cordis` and hope the reader knew what they meant.
A preset may now publish display text in an optional `preset.yml` beside
its composition, and the section renders cards — name, description, and the
one in use — instead of rows.

The file carries display text ONLY. `id` is the directory name and `trust`
comes from the root a preset was discovered under, so neither is writable
there: otherwise a locally authored preset could name itself into the
shipped set. It is a separate file because a composition is a top-level list
of plugin rows — YAML cannot carry sibling keys beside it, and a fake
metadata row would hand the Loader something to load.

Every read failure degrades to no metadata; absent, malformed, wrongly
typed, and blank all mean the same thing and the picker falls back to the
id. Presentation is not capability: a preset whose name is broken still
mounts.

The editor gained name and description fields above the YAML, and clearing
both removes the file rather than storing a blank name.
2026-08-07 00:41:50 +08:00
..

host/ — web-GUI host half

English | 中文

The host side of the dsh web GUI: the API gateway every client shape shares, and the plain HTTP server it rides on. The browser side lives in client/; the composed application is apps/cli booting the dsh-base bundle serving apps/web. All product packages.

Package Role ctx key
apiproxy/ Shared host API gateway and wire contract ctx.apiProxy
webserver/ HTTP route carrier ctx.httpServer
frontend-static/ SPA dist server on the webserver fallback seat consumes ctx.httpServer
directory-picker/ Workspace-directory picking seam ctx.directoryPicker
directory-picker-native/ Native directory-picker backend and browser interaction registers ctx.directoryPicker
directory-picker-browse/ In-app directory-browser backend and interaction registers ctx.directoryPicker
directory-picker-auto/ Host-adaptive picker composition mounts a backend

apiproxy remains transport-independent; client/connection supplies the browser/HTTP carrier. Picker implementations replace one another behind the shared seam.