JohnXu22786/dsh-web-submit0

dsh-web-submit

DeepSeek Harness plugin: run headless-style tasks through the running dsh web process via one HTTP endpoint (POST /x/headless) with status and SSE live-event endpoints — CLI-invoked runs are visible in the Web UI in real time.

包名
dsh-web-submit
版本
0.1.0
许可证
MIT
最近更新
2026年8月23日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

dsh-web-submit

DeepSeek Harness plugin that lets you drive the running dsh web instance from the command line — the task executes inside the web process, so the Web UI shows it live (same sessions store, same event stream), and permission / approval questions appear in the Web UI.

No separate headless process, no webhook glue: one plugin, three endpoints.

Endpoints

MethodPathDescription
POST/x/headless{"task": "...", "cwd": "...", "preset": "standard", "mode": "queue"}{"ok": true, "sessionId": "session-..."}
GET/x/headless/status?sessionId=...Latest session events (non-streaming poll)
GET/x/headless/events?sessionId=...SSE live event stream; ends after turn/end

Loopback requests only (127.0.0.1 / localhost), same trust posture as the built-in /api surface. The plugin reuses the in-process ApiProxyService, so it stays identical to the UI's own session/prompt path.

Install

cd ~/.dsh/profiles/web
# add the row to cordis.patch.yml:
#   - insert:
#       - id: dsh-web-submit
#         name: 'dsh-web-submit'
# then install the package (or place the folder in node_modules/)
dsh plugin --profile web add file:C:/dsh-web-submit

Restart dsh web (~/.dsh/start-web.cmd) to load the plugin.

Example (CLI)

# submit a task
curl -s -X POST http://127.0.0.1:3080/x/headless \
  -H 'content-type: application/json' \
  -d '{"task":"Summarize the README","cwd":"C:/my/project","preset":"coding"}'

# tail it live
curl -sN "http://127.0.0.1:3080/x/headless/events?sessionId=session-xxx"

While it runs, open the Web UI: the session is visible in real time, exactly as if you had typed the task there.

Config

KeyDefaultMeaning
routePrefix/xRoute prefix for all endpoints
maxBodyBytes1048576Max request body size

License

MIT