banlanzs/dsh-web-enhanced3

dsh-web-enhanced

DSH 网页端增强插件,包含带定时调度的任务板、Git 关系图、右侧预览/文件面板、余额显示及文本模型图片理解。

AI 分析

核心用途是全方位提升网页端功能。适合需要项目看板、Git 视图、文件管理及多模态增强的重度 DSH 网页端用户。

包名
dsh-web-enhanced
版本
0.19.0
许可证
MIT
最近更新
2026年8月17日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:banlanzs/dsh-web-enhanced

Configuration

Plugin-row config fields (all have defaults; the vision* ones can also be edited live in Settings → Web Enhanced → Vision, whose saves override these base values):

keydefaultmeaning
cronIntervalMs30000Minimum delay before the cron scheduler fires; it arms one timer at the earliest pending run and no timer exists while nothing is scheduled
balanceApiKeyEnvDEEPSEEK_API_KEYEnv var for the balance query API key
balanceCacheTtlMs60000Balance view cache duration
balanceBaseUrlhttps://api.deepseek.comBalance endpoint base URL
balanceProviders[deepseek-official]Model routes the balance line is shown for; a route with its own configured baseURL must also share the endpoint's host
modelsDevUrlhttps://models.dev/api.jsonPricing blob fetched for the session-cost readout
modelsDevCacheTtlMs21600000How long one fetched pricing index stays fresh (6 h)
modelsDevTimeoutMs10000Pricing fetch timeout
pricingProviderMap{deepseek-official: deepseek}Model-route provider id → models.dev provider id
skipDirs[node_modules]Directories skipped by the file tree/search and by the mention pickers (.git is always skipped; the browse overlay does not apply the filter)
readMaxBytes1 MiBText read cap (truncated with a marker beyond it)
writeMaxBytes2 MiBFile write cap
binaryMaxBytes5 MiBBinary preview (base64) cap
gitOutputMaxBytes256 KiBSingle git stream output cap
gitMaxCount100git log row cap
gitWorkingMaxFiles300Cap on the uncommitted file list, and with it how many untracked files are read to count their lines
searchMaxDepth / searchMaxEntries8 / 200File search depth and entry caps
officeMaxBytes5 MiBOffice preview (docx/xlsx) file size cap
browseMaxEntries500Entry cap of one directory level in the mention browser
pluginOpTimeoutMs300000Deadline for one pnpm operation (update/remove)
profileDiremptyProfile directory; empty walks up from this module. Only for a deployment whose profile is not an ancestor of the loaded plugin
visionEnabledtrueMaster switch of the image-understanding integration
visionPatchAdmissiontrueWrap llm.resolveModelInfo so text-only models admit images past the send preflight and the read_image gate (reversible, unload-order safe)
visionProvider / visionModelemptyPin the DSH-configured provider/model used for transcription; empty = auto-detect the first image-capable models from all configured providers
visionHarnessModels[]User-selected DSH model pool [{provider, model}, …], tried in order before the dedicated API; non-empty replaces auto-detection (the pinned pair still goes first)
visionPrompt / visionMarkerChinese thorough-description prompt / [图片内容描述]Transcription prompt and the marker the model sees instead of the image block
visionBaseUrl / visionApiKey / visionEndpointModelemptyOpenAI-compatible VLM endpoint (e.g. DashScope compatible mode); key falls back to visionApiKeyEnvVISION_API_KEYDASHSCOPE_API_KEY. Empty base URL or model disables this source
visionEndpointModels[]Dedicated-endpoint model pool; the Settings tab fills it by fetching /models and multi-selecting. Transcription tries visionEndpointModel first (when set), then every pool model in order
visionApiKeyEnv / visionAnonymousVISION_API_KEY / falseEnv var for the endpoint key; true skips the Authorization header (free/local endpoints get a hard 20 s timeout cap)
visionTimeoutMs / visionMaxTokens120000 / 4096VLM request timeout and output cap
visionAutoLocalOllamatrueProbe visionLocalOllamaUrl at startup; when an Ollama is running, its first vision-capable model is prepended to the transcription chain (images stay on this machine)
visionLocalOllamaModel / visionLocalOllamaUrlempty / http://localhost:11434/v1Preferred Ollama model (empty picks the first *vl*/*vision* model) and its OpenAI-compatible base URL
visionFallbackModels[]Ordered fallback chain {model, baseURL?, apiKey?, anonymous?, timeoutMs?}; each entry may point at a different provider, keyless non-anonymous entries are skipped
visionCacheLimit / visionCooldownMs200 / 60000In-process transcription cache entries (SHA-256 of image bytes) and how long an endpoint that just failed (429/timeout) is skipped