dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
An AI next-move advisor for DeepSeek Harness. Find a better next step, then press Tab to make it yours.
Beyond the obvious.
An AI next-move advisor for DeepSeek Harness. It reads the recent conversation and shows one card: it restates the thing you are answering, names the relation behind it, points at one other place that relation shows up, and ends with a checkable move. Press Tab to insert only that move; nothing is sent automatically.
Rendered example, not a recording. A real screen capture replaces it before the first release.
The difference, in one line: autocomplete guesses what you would type; ACE reorders something you already know until the reaction is "right, why didn't I see that" — and shows nothing when nothing wins.
The npm name dsh-ace is taken by an unrelated project, so the package is scoped as @ghoscro/dsh-ace. Until it is published, the tarball on Releases is the install path:
# in the DSH profile directory
pnpm add file:/absolute/path/to/ghoscro-dsh-ace-0.5.23.tgz
Then add "@ghoscro/dsh-ace" to dsh.profile.bundles, materialize the profile (DSH plugin page or pnpm install), and restart DSH. The composer row shows ✦ ACE (✦ 深度预测 in the Chinese UI).
If an install goes wrong, INSTALL.md has the two-step recovery: remove the bundle entry, restart. A failed entry does not stop DSH from booting. Developer install (copy this directory into sakura/packages/) is also there. Verified host: DSH 0.2.1-rc.2; other versions are unverified.
Most next-message tools optimize for what you would probably type. ACE optimizes for whether this move is worth sending, and whether it lets you see the next layer yourself.
The four-beat card:
You just said X → the line behind it is Y → so Z will behave the same way → try W first; if you see such-and-such, I was wrong
By default the card shows only W, the line you can send. X/Y/Z, the three plain lines and "wrong if" sit behind Show details in the footer: the card answers "send it or not" first, and "why" on request.
Three plain lines on every card:
One missing line and the card is not shown. Wild mode is included: the line Tab inserts must be readable at the current level, not a stack of unexplained terms.
value, novelty, worth_extra_step, and action type. The relation beat is judged by the host, not scored by the model: a surface-alike example needs no mapping line, and a surface-unlike example with no written mapping is not shown at all.level in the plugin config.reply_to, quoted verbatim), but picks the answer worth sending, not the smoothest one.Tab inserts only W. You can edit it. ACE never sends for you.ACE also works inside the input box:
Tab accepts it.` (backquote) or F1 toggles the ghost. F1 also prints one diagnostic line per press, newest at the bottom.Alt+1 … Alt+4 picks one of the alternative card rows; Escape dismisses the card or the settings panel.<html data-ace-version>; quote it in a bug report.The card above is the intended loop:
Tab inserts only W; you decide whether to send.Tab on the card to fill the draft.If you are migrating from dsh-composer-predict, read MIGRATION.md first. Do not load both packages at once.
A missing card is not a failure. It means nothing beat the obvious "continue" for that turn. Silent turns are logged as no-card, and the score threshold can be swept offline with npm run sweep instead of being tuned on live chats.
These are examples, not a controlled benchmark. They show the kind of added value ACE is aiming for.
--json output and pipe it; no new script to maintain.”cwd to the host route.git status, diff stat, last commit and a bounded diff, plus the project's top-level tree and its dependency/script names, so a structural claim can land on a real module.verify/constrain candidates are penalized so “check again” cannot win by default. The winner then goes through one bounded review call: X/Y/Z, the relation, the analogue and the falsifier are checked against the evidence, and a card that cannot support them is rejected rather than silently downgraded.Tab fills the draft. The card’s why/evidence/risk are not sent with the message.The parser scans balanced JSON objects and skips a truncated or malformed line while keeping valid earlier candidates. A bad line does not discard the whole response.
safe, standard, brainstorm, wild (labelled ACE) are equal-status modes, not a volume dial. Each changes the prompt policy and the output budget, the card shows which mode produced it, and the settings panel switches it. No mode collapses into safe.✦ ACE still works on demand.--dsh-fs-w / --dsh-fs-meta / --dsh-fs-x. The value is stored in chrome.storage.local when the container exposes the extension API (localStorage otherwise) and set on document.documentElement.style, so changing the size never needs a rebuild.captureSamples: false disables prediction samples only; ledger: false separately disables the local conversation ledger. Existing files are not deleted by these switches. Rejected-card feedback and usage/error diagnostics are separate local records; this is not a zero-retention mode.ledgerMaxEntries the oldest part is written to an archive file and replaced by a deterministic digest. ledger: false turns it off.diagnostics/dsh-ace-samples.jsonl; npm run sweep re-scores them offline at every threshold, with no model calls.diagnostics/dsh-ace-usage.jsonl with the session, turn index, token counts, cache hits and a priced cost using the configurable pricing block.safe 1600, standard 2600, brainstorm 3200, wild 3600 tokens, also bounded by expertMaxTokens. Review and recovery each cap output at 2400 tokens. These are output limits, not total usage estimates.npm test
Measure real provider token usage against a running DSH instance. macOS and Linux:
COMPOSER_PREDICT_BASE=http://127.0.0.1:13770 node scripts/token-tiers.mjs
Windows (PowerShell):
$env:COMPOSER_PREDICT_BASE='http://127.0.0.1:13770'
node scripts/token-tiers.mjs
The suite covers prompt/parser behavior, JSONL bad-line salvage, selection scoring, no-card behavior, route envelopes, and the single-card UI interactions.
Compatibility is declared in package.json.dsh.compatibility. Treat a version not listed there as unverified; do not assume a package-manager success is a runtime acceptance.
Remove the bundle and dependency from the profile, restart DSH, and delete the package directory. The old composer-predict route and settings key are kept for migration; removing the new package does not delete your local settings.
A DSH plugin by micker.
MIT. Contributions use DCO sign-off; no CLA. See CONTRIBUTING.md and SECURITY.md.