Plugin directory / Knowledge / dsh-plugin-wepre
dsh-plugin-wepre
Verified · install-tested on dsh shujiTech
What it does
DeepSeek Harness plugin: publish single-screen content cards to WePre Next from a dsh agent session
Works — verified, early-stage project
DeepSeek Harness plugin: publish single-screen content cards to WePre Next from a dsh agent session It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-plugin-wepre
English | 中文
A DeepSeek Harness (dsh) plugin that lets your agent publish single-screen content cards to WePre Next — a platform that pushes offline, single-viewport cards to users while they wait on AI generations.
With this plugin installed, a dsh session goes from "write me a card" to "it's live" in one conversation:
you: Build a pomodoro-timer card and publish it to WePre
agent: <writes index.html, calls wepre_publish>
agent: QA gate rejected it — OVERFLOW_Y at 390x600. Fixing… <edits, republishes>
agent: Published. contentId=cnt_xxx, version v1 (QA: passed)
Install
dsh plugin --profile web add dsh-plugin-wepre
Verify the layer composed, then boot:
dsh --profile web --dump-config # shows a "# == dsh-plugin-wepre" layer
dsh --profile web
No build step and no prepare script — installing from a git host works too:
dsh plugin --profile web add github:shujiTech/dsh-plugin-wepre
What the agent gets
Five model-facing tools on ctx.tools:
| Tool | What it does |
|---|---|
wepre_request_code |
Send a one-time login code (SMS / email) |
wepre_login |
Redeem the code; the session cookie is persisted locally |
wepre_whoami |
Show current login state |
wepre_publish |
Upload an index.html / .zip card through the server-side QA gate |
wepre_qa_report |
Fetch the full QA report (per-viewport issues) for a content |
The tools' descriptions teach the model WePre's content rules (single-screen layout, no network calls, no external resources, the wepre-next:execute postMessage contract) and the QA fix loop: when the gate answers QA_GATE_FAILED, the agent reads the structured per-viewport issues, fixes the card, and republishes with the same contentId — no human in the loop.
Authentication
wepre_publish / wepre_qa_report resolve credentials in this order:
tokenconfig field — a short-lived publish token from the WePre publish pageWEPRE_PUBLISH_TOKENenvironment variable- The stored login session — created by
wepre_login, persisted tosessionFile(default~/.dsh/wepre-session.json, mode0600)
For interactive use, just ask the agent to log in: "log in to WePre with 13800138000" — it will send the code, ask you for it, and store the session. For CI / headless (dsh --profile headless "…"), set a token.
Configuration
Override the plugin row in your profile's cordis.patch.yml (a patch replaces the row's whole config — restate keys you keep):
- id: wepre-publish
name: dsh-plugin-wepre
config:
endpoint: 'https://wepre.cn/next-test'
token: !!js process.env.WEPRE_PUBLISH_TOKEN
sessionFile: '/home/me/.dsh/wepre-session.json'
| Key | Default | Meaning |
|---|---|---|
endpoint |
https://wepre.cn/next-test |
WePre Next site root |
token |
— | Short-lived publish token (Bearer) |
sessionFile |
~/.dsh/wepre-session.json |
Persisted login session |
What a publish call looks like
wepre_publish maps to POST /next-test/api/next-contents (multipart). Parameters: title, path (absolute, .html or .zip), description, contentId (for in-place version updates), changeNote, versionLabel, downloadEnabled (default false), and manifest fields viewports (all/desktop/mobile), interaction (execute/passive), capabilities.
On success it returns contentId, versionId, versionNumber and the QA status. On QA_GATE_FAILED (HTTP 422) it returns the structured issues and reportId as a canonical value — not an exception — so the agent can iterate. Before uploading, the tool runs a local pre-flight scan for WePre's banned tokens (fetch, localStorage, Worker, overflow:auto, …) and external links, and reports them as non-blocking warnings.
Content rules in one paragraph
WePre Next cards are single-screen, offline, sandboxed pages: one index.html (or a zip with it at the root), root container at 100dvh with overflow:hidden, no overflow:auto/scroll, no network calls / localStorage / Worker (the words are banned even in comments), no external or root-absolute URLs, and execute-mode cards must run their main action on the wepre-next:execute postMessage. The full contract: WePre Next 内容发布规范 (see the publish guide on the site).
Development
Plain ESM JavaScript, no build step. Behavioral tests drive the tools against a mock WePre server:
npm install
npm test
License
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-plugin-wepre for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:shujiTech/dsh-plugin-wepre Headless (CLI) profile:
dsh plugin --profile headless add github:shujiTech/dsh-plugin-wepre Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.
When to use it
Give the agent a memory, a knowledge base, or a retrieval layer so it stops forgetting context between sessions.
Who it's for
Users running long projects who want the agent to remember decisions, docs, and preferences without re-explaining.
For developers — extending it
The memory/retrieval backend is the seam — plug a new store, tune what gets distilled, or add citation and audit trails.