mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
The browse and native backends were dual-face packages: a Node backend plus a browser surface under one tsconfig that referenced Client packages. That put Client projects — and through them the Client runtime — inside the Host compiler aggregate, which builds before the generated Remote contributions exist. Each browser half moves to its own Client package, and both backends become Node-only. The interaction is still one choice: the adaptive chooser mounts the backend and its surface as a pair of Loader entries and tears both down in reverse, so a resolved kind still swaps both faces. Compositions that pin an interaction directly now pin the pair, and the chooser's runtime-string package list keeps naming everything a composing app must resolve.
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.
The subsystem references: http-server.md and workspace.md (the picker seam).