diff --git a/src/client/locales.ts b/src/client/locales.ts index c920120..d9f33ca 100644 --- a/src/client/locales.ts +++ b/src/client/locales.ts @@ -308,6 +308,7 @@ export const zh = { pluginSentinelDesc: '条件驱动的 agent 唤醒系统:文件/进程/端口/HTTP/命令/webhook 传感器,条件达成自动唤醒休眠会话;注册「哨兵」Tab 展示服务器全局监控表', pluginSidebarQaDesc: '基于 better-sidebar 的划选提问tab分页: 对话划选 → 右侧面板提问 → 同工作区独立追问会话(❓追问·主题):快速无思考模型压缩主对话上下文后与引文一起注入,不打断主对话;追问可嵌套、可继续、可归档', pluginVideoPreviewDesc: '在 better-sidebar 编辑器内联预览视频文件(.mp4/.webm/.mov/.mkv/.avi 等),自带支持 HTTP Range(206)的 /video 宿主路由,可拖动进度条、不受 20MB mediaLimit 限制', + pluginDocsPanelDesc: 'DSH 侧边栏里的「全局文档」:全局 Markdown 笔记,任何工作区随时可读——列表点选阅读、悬浮大纲跳转、Chrome / VS Code 外部打开、代码复制,目录可配置(默认 ~/.dsh/docs)', } /** The en dictionary (key-set-equal to zh, enforced by the type annotation). */ @@ -609,6 +610,7 @@ export const en: Record = { pluginSentinelDesc: 'Condition-driven agent wakeup: file/process/port/http/command/webhook sensors wake dormant sessions when conditions fire; registers a "Sentinel" tab with the server-wide watch table', pluginSidebarQaDesc: 'Select-and-ask: Select conversation text → ask in the right-side panel → a dedicated follow-up session (❓追问) in the same workspace; a fast no-thinking model compresses the main context and injects it with the quote, without interrupting the main conversation. Follow-ups nest, continue, and archive', pluginVideoPreviewDesc: 'Inline video preview (.mp4/.webm/.mov/.mkv/.avi etc.) for the better-sidebar editor, backed by a dedicated /video host route with HTTP Range (206) support — scrubbing works and files are not capped by the 20MB mediaLimit', + pluginDocsPanelDesc: 'Global docs in the DSH sidebar: read your own Markdown notes from any workspace — a file list, an outline, open in Chrome / VS Code, and copy buttons; the docs directory is configurable (default ~/.dsh/docs)', } /** diff --git a/src/client/plugins-tabs.ts b/src/client/plugins-tabs.ts index 7304940..d8d51f5 100644 --- a/src/client/plugins-tabs.ts +++ b/src/client/plugins-tabs.ts @@ -24,6 +24,15 @@ export const builtinTabPlugins: readonly PluginEntry[] = [ // context consistent with the other entries. install: 'cd ~/.dsh && dsh plugin --profile web add "github:fuhefei/dsh-sentinel#v0.7.0"', }, + { + id: 'dsh-docs-panel', + name: 'dsh-docs-panel 全局文档', + url: 'https://github.com/mlosun/dsh-docs-panel', + description: () => t('pluginDocsPanelDesc'), + // dsh-docs-panel hard-depends on dsh-better-sidebar (required peer), so + // the install line installs the prerequisite first, then the plugin. + install: 'cd ~/.dsh && dsh plugin --profile web add dsh-better-sidebar && dsh plugin --profile web add dsh-docs-panel', + }, { id: 'dsh-git-remotes', name: 'dsh-git-remotes Git 远程',