GooDAnDReaDY/dsh-vision-bridge ↗★ 2

@goodandready/dsh-vision-bridge

Flagship multimodal vision hub for DeepSeek Harness: ~40 tools, PDF drag-and-drop, LaTeX formulas, complex tables, QR codes, UI flow diagrams, and multi-model consensus. 适合需要处理复杂图片、PDF、公式和图表的多模态任务。

패키지
@goodandready/dsh-vision-bridge
호환성
미검증
Harness peer 범위
^0.1.0-rc.6
Cordis peer 범위
^4.0.1
버전
0.6.5
라이선스
MIT
최근 업데이트
2026. 9. 22.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:GooDAnDReaDY/dsh-vision-bridge

⚙️ Configuration (settings.yaml)

dsh-vision-bridge:
  # Operation mode: 'hybrid' | 'llm' | 'tools'
  mode: hybrid
  
  # Auto-detect vision model or specify provider/model explicitly
  visionProvider: ""
  visionModel: ""
  
  # Allow vision models to receive images natively without rewriting ('prefer' | 'never' | 'always')
  nativePassthrough: prefer
  hideRedundantTools: true   # hide bridge tools when the chat model already sees images
  attachMaxItems: 8          # pages/frames/files one attach call may publish
  
  # Enable LRU description cache
  cacheEnabled: true
  cacheMaxEntries: 200
  
  # Request timeout in milliseconds
  timeoutMs: 120000
  
  # Multi-channel routing configuration
  channels: []
  channelFallback: sequential # 'sequential' | 'parallel-race'

Parameter Reference

ParameterTypeDefaultDescription
modestring"hybrid"Processing mode (hybrid, llm, tools).
visionProviderstring""ID of the vision provider (empty = auto-detect).
visionModelstring""ID of the vision model (empty = auto-detect).
nativePassthroughstring"prefer"Behavior for native vision models (prefer, never, always).
hideRedundantToolsbooleantrueWhen the chat model supports images natively, hide the compensation tools from that agent and keep only the extra instruments.
attachMaxItemsnumber8Maximum images one vision_attach_* call publishes (PDF pages, video frames, files). Hard ceiling 32.
cacheEnabledbooleantrueEnables LRU caching for descriptions.
cacheMaxEntriesnumber200Maximum number of cached items in memory.
timeoutMsnumber120000Execution timeout in milliseconds.
channelFallbackstring"sequential"Channel routing (sequential, parallel-race); ordering via channelOrderMode.

15. 🛡️ Enterprise Security & Settings Governance (v0.5.27)

  • Masked Secrets: GET /channels automatically masks sensitive provider API keys (sk-p...7890 or ********) and reports hasApiKey: true to prevent secret leakage in browser DevTools/XHR. POST /channels preserves existing keys when a mask is submitted.
  • CSRF & Origin Guard: All mutating and cost-incurring endpoints (/config, /channels, /upload-pdf, /test, /bench, /batch, DELETE /journal, DELETE /cache, and /doctor?probe=1) validate sec-fetch-site !== 'cross-site' via isTrustedSettingsRequest, rejecting cross-origin attacks with 403 Forbidden. The default GET /doctor report is static (no channel probes).
  • SSRF fetch policy: model-supplied image URLs are fetched only through safeFetch — non-http(s) schemes, localhost names and private/loopback/link-local hosts (incl. IPv4-mapped IPv6 and NAT64) are refused on every redirect hop; response bodies are capped. Use allowedUrlHosts to explicitly re-allow an internal endpoint.
  • apiKeyRef: channels may reference a credential-service entry or environment variable by NAME instead of storing a plaintext apiKey in settings; keys resolve at call time. GET /channels keeps masking values; key preservation on save matches channels by identity, not position.
  • Privacy & honesty: maskPII, stripEXIF, auditLog and consensusEnabled settings are wired end-to-end; the previously decorative face-blur / NSFW / tiling toggles and no-op presets were removed.
  • Native settingsScope Integration: Settings UI binds directly to ctx.settingsScope (namespace: 'dsh-vision-bridge'), supporting reactive snapshot listeners and kernel state synchronization.