dsh-web-search-ollama-client
已验证@jlvncn/dsh-web-search-ollama-client · v0.1.15 · MIT · Web 界面
Browser half for @jlvncn/dsh-web-search-ollama: registers the plugin row's configuration card on the DeepSeek Harness Web UI Plugins page
安装
dsh plugin add @jlvncn/dsh-web-search-ollama-client 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
发布到 npm 但没有公开仓库。安装前请检查包内容。
标签
说明文档
@jlvncn/dsh-web-search-ollama-client
Browser half of the Ollama web-search plugin for DeepSeek Harness. Runs in
the browser and provides the configure control on the host plugin's row in
the Web UI's Plugins page (sidebar → Plugins → bundle
@jlvncn/dsh-web-search-ollama → row web-search-ollama → 配置).
Harness >= 0.1.7 contract: a bundle row only gains its configure control when a client plugin registers the keyed slot
plugins.row.configunder the key<bundle package name>#<row id>— here@jlvncn/dsh-web-search-ollama#web-search-ollama. There is no auto-generated fallback page; without this package the row's config form has no UI entry.
How it works
client.jsis a hand-writtenwindow.__ModuleLoader__.load({...})bundle (no build step) that:- injects
["slots", "locale", "configForms"] - waits for the host to serve the
web-search-ollamanamespace (ctx.configForms.whileServed([...])), then registers the keyed slotplugins.row.configwith a card built from the official@deepseek-ai/dsh-client-ui-primitives(SettingsForm/SettingsValueField/SettingsSecretField) - stages edits locally and writes them on save via
form.mutate(ops, revision)(path ops + revision fence, durable, hot-applied by the host — no restart). TheapiKeyfield is write-only; the host-onlyenableFetchProviderswitch is intentionally not exposed here. - ships zh/en dictionaries through
ctx.locale.
- injects
index.jsis an empty host-sideapply()— the entry must exist in the Cordis loader sodsh-client-modulesdiscovers the client bundle.
Why it must be a separate package
dsh-client-modules scans loader entries for package names whose
package.json declares exports["./client"] + dsh.client. Hence the client
half is a distinct package:
{
"name": "@jlvncn/dsh-web-search-ollama-client",
"exports": { "./client": "./client.js" },
"dsh": { "client": { "platform": "web", "inject": [
"@deepseek-ai/dsh-client-ui-plugin-manager",
"@deepseek-ai/dsh-client-ui-primitives"
] } }
}
and is mounted by its own bundle patch as
name: '@jlvncn/dsh-web-search-ollama-client' (quote it — a YAML plain scalar
may not start with @).
Install
dsh plugin --profile web add @jlvncn/dsh-web-search-ollama-client # npm registry
dsh plugin --profile web add /path/to/packages/dsh-web-search-ollama-client # local dir
Copy channel: put index.js + client.js + package.json +
cordis.patch.yml into
$DSH_HOME/profiles/node_modules/@jlvncn/dsh-web-search-ollama-client/ (the
repo's ./scripts/install.sh does this). Always keep it paired with the host
package @jlvncn/dsh-web-search-ollama — the card edits the namespace that the
host registers, and its slot key embeds the host bundle's package name.