dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
A Labrador that lives in the DeepSeek Harness window.
She is made of seventeen cut-out photographs of my dog DaiDai, driven by a small state machine. She decides for herself what to do, she can be poked, dragged and thrown, she speaks in dog, and she can be tuned from a settings page.
The frames are photographs of one specific dog. Installing this plugin puts that dog in your window. If you want your own, replace the frames — see Using your own photographs.
dsh plugin --profile web add dsh-labrador
Then restart the harness. She appears in the bottom-right corner of the window.
woof. hff. woof woof! yip! grrr. and so on, in a bubble above her head. Vocalisations only; there are no words and so nothing to translate.Settings → 拉布拉多 / Labrador
Temperament (calm, attentive, lively), size, opacity, and every action with its own weight and a shown/hidden switch. Saving writes to $DSH_HOME/dsh-labrador/main-config.json atomically, and the dog follows without a reload.
{
"temperament": "attentive",
"size": 1,
"opacity": 1,
"weights": { "sleep": 2 },
"disabledActions": []
}
An illegal value is reported in the log and falls back to the documented default; nothing is silently ignored.
lib/index.js — the host half: builds the action library and serves the frames and the settings over one HTTP route.lib/client.js — the client half: the state machine, the floor geometry, the physics, and the UI. The machine is pure — no React, no DOM, no timers — and the tests drive it directly.lib/repertoire.js — the seventeen actions, as data. Tuning his behaviour means editing this, not the engine.lib/library.js — resolves the frames, warns loudly about anything broken, and never throws away a dog quietly.assets/frames/ — the normalised frames. Every one is the same 445×328 canvas with the dog at the same size, on the same floor line and the same centre, so changing pose cannot make him jump or resize.Drop a folder at $DSH_HOME/dsh-labrador/actions/. Each folder inside is an action; the images in it are its frames; an optional action.json overrides the defaults:
// $DSH_HOME/dsh-labrador/actions/sit/action.json
{
"category": "ambient", // idle | ambient | move | click | event
"weight": 20,
"loop": "hold",
"bust": false // true if head-and-shoulders: it cannot stand on the floor
}
Frames are served straight from that folder, so nothing needs rebuilding.
npm test
Forty-four tests of the state machine and the physics, six of the configuration, and thirty-six smoke checks over both halves. They run by being executed directly rather than through node --test, because that runner spawns a child process per file and is blocked in some sandboxed environments.
sniff pose lost its head when it was cut out, so it looks like a piece of dog. It is included anyway, at low weight.MIT