Skip to content

dsh-better-sidebar-loader

Verified

@dsh-plugin/dsh-better-sidebar-loader · v0.14.0 · MIT · Web UI

dshloader-API transcription of dsh-better-sidebar: the VSCode-like right sidebar (explorer / editor / terminal / git / browser), whose host half reaches dsh services ONLY through ctx.dshLoader (services/web) and never imports @deepseek-ai/* at runtime. Cl

Install

dsh plugin add @dsh-plugin/dsh-better-sidebar-loader

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Readme

Banner

@dsh-plugin/dsh-better-sidebar-loader

一个移植到 dshloader 稳定 API 上的 VSCode 风格右侧边栏(资源管理器 / 编辑器 / 终端 / Git / 浏览器)——主机端零直接 dsh 服务访问、零 @deepseek-ai/* 运行时导入。

English | 简体中文

DSH Plugin 构建状态 版本 许可证

dsh-better-sidebar(VSCode 风格右侧边栏:资源管理器 / 编辑器 / 终端 / Git / 浏览器)的移植版,其主机半部仅面向 dshloader 的稳定 API (ctx.dshLoader)编程——主机端零直接 dsh 服务访问、零 @deepseek-ai/* 运行时导入。

API 映射(主机)

原版(dsh-better-sidebar) 本插件(dshloader API)
inject = ['webServer','sessions','webRuntime','tools'] inject = ['dshLoader']
ctx.webServer.register({kind:'prefix',...}) ctx.dshLoader.web.register(path, handler)
ctx.webServer.registerUpgrade(...) ctx.dshLoader.web.registerUpgrade({path, handler})
ctx.inject(['settings'], sctx => sctx.settings.register(...)) ctx.dshLoader.settings.register(ns, schema)
sctx.settings.describe/update ctx.dshLoader.settings(owner 作用域 get() + 更新 envelope)
ctx.sessions / ctx.webRuntime / ctx.tools ctx.dshLoader.services.get('sessions'/'webRuntime'/'tools')
ctx.get('jobs'/'agents') ctx.dshLoader.services.get('jobs'/'agents')
@deepseek-ai/dsh-tools defineTool 内联于 src/loader-compat.ts
@deepseek-ai/dsh-settings settingsNamespace / SettingsConflictError 内联于 src/loader-compat.ts

ctx.dshLoader.services.get() 是文档化的逃生通道,用于那些没有专属 loader 覆盖面的服务(sessions / webRuntime / tools / jobs / agents / invariants);loader 本身负责解析真正的 dsh 服务名。

客户端半部

客户端 bundle 以包名 @dsh-plugin/dsh-better-sidebar-loader 注册,并通过 dsh.client.inject(平台契约)挂载。每一个 @deepseek-ai/dsh-client-* 导入都会被改写为 dshloader 的稳定子路径——@dsh-plugin/dsh-loader/ui-primitives/ui-slots/ui-settings/schema-form/runtime——由 loader 的客户端 适配器在运行时映射到真实包,因此本插件@deepseek-ai/* 依赖或导入(仅 在构建时被擦除的 type-only 声明除外)。构建时的 CLIENT_EXTERNALS 列出这些 loader 子路径;package.json 只保留 @dsh-plugin/dsh-loader 作为其 dsh 家族 依赖。那两次不注入的 ctx.get(...) 调用(remote / conversation)经由 window.__dshLoader__.services.get(...) 完成,而声明的注入服务(slots / sessions / connection / workspaces / locale)与所有官方客户端插件一样,仍然 保留在 cordis 上下文中。

构建

pnpm build   # tsc 类型 + tsdown(主机 + 客户端 bundle + 懒加载 chunk)