{"_id":"@dsh-mixxed/dsh-client-ui-filesystem-manager","_rev":"4-385c60f7c52dba5ff9b2d164747fbc07","name":"@dsh-mixxed/dsh-client-ui-filesystem-manager","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.1":{"name":"@dsh-mixxed/dsh-client-ui-filesystem-manager","version":"0.1.1","keywords":["dsh","plugin","deepseek","filesystem","file-manager","explorer"],"license":"Apache-2.0","_id":"@dsh-mixxed/dsh-client-ui-filesystem-manager@0.1.1","maintainers":[{"name":"dragons96999","email":"dragons96999@163.com"}],"homepage":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager#readme","bugs":{"url":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"dist":{"shasum":"325eff89d74d8bdc40bbc687dc632fa675fa8203","tarball":"https://registry.npmjs.org/@dsh-mixxed/dsh-client-ui-filesystem-manager/-/dsh-client-ui-filesystem-manager-0.1.1.tgz","fileCount":10,"integrity":"sha512-PX3NAecDTSENmqdgmvJVfiSnuPVpXRXB7HqGKS5kE67Y471Y6ZoDYVDp3XCFU3I4zRwMBYmoGTp9uyfO6HGO8Q==","signatures":[{"sig":"MEUCIQCCckbNAqF/xyGdhTVdib8b09zxaT3uWT2hl8c07COyKQIgW4H5yig1k/YRV8wLUSvhOQDVFl51XT9sA4miApbVnkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302291},"type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"64e3483df18fe284ead522bfe1d573254d939fd2","scripts":{"e2e":"node scripts/e2e.mjs","pack":"npm pack","test":"vitest run","build":"node scripts/build.mjs","prepack":"npm run build","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"dragons96999","email":"dragons96999@163.com"},"repository":{"url":"git+https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager.git","type":"git"},"_npmVersion":"11.9.0","description":"Out-of-tree dsh plugin: a 'Files' tab in the conversation window with a VSCode-style file tree and viewer over the session workspace.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","vitest":"^3.0.0","esbuild":"^0.25.0","react-dom":"^18.2.0","typescript":"^5.7.2","@types/node":"^24.0.0","@types/react":"~18.3.1","lightningcss":"^1.29.0","playwright-core":"^1.62.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-fs":"0.1.0-rc.6","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-client-locale":"0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.6","@deepseek-ai/dsh-host-webserver":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-client-ui-filesystem-manager_0.1.1_1786874927152_0.9995220885320959","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dsh-mixxed/dsh-client-ui-filesystem-manager","version":"0.1.2","keywords":["dsh","plugin","deepseek","filesystem","file-manager","explorer"],"license":"Apache-2.0","_id":"@dsh-mixxed/dsh-client-ui-filesystem-manager@0.1.2","maintainers":[{"name":"dragons96999","email":"dragons96999@163.com"}],"homepage":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager#readme","bugs":{"url":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"dist":{"shasum":"f32e3cbffa6224ffbd289d568a1942fa6dc81ae6","tarball":"https://registry.npmjs.org/@dsh-mixxed/dsh-client-ui-filesystem-manager/-/dsh-client-ui-filesystem-manager-0.1.2.tgz","fileCount":9,"integrity":"sha512-VPDpQGY3kuqUuV3ASIQAtNiMkyVAZ44a9dMWEFFystNadYkzvc1KlZejSwYw1rRgOCi+stbrCfovk3qLIbMrBA==","signatures":[{"sig":"MEYCIQD2gaHs9vx7s2TYeGCT7vmkh2lxXz0jDOE9DFStnAMAbgIhAIY91SSdYSUFHY69/JUqtQ5OQji3e1OBApfYjzywdpfj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249050},"type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"ca2c627f1867eebd3d99141aa299fbae4577dad3","scripts":{"e2e":"node scripts/e2e.mjs","pack":"npm pack","test":"vitest run","build":"node scripts/build.mjs","prepack":"npm run build","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"dragons96999","email":"dragons96999@163.com"},"repository":{"url":"git+https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager.git","type":"git"},"_npmVersion":"11.9.0","description":"Out-of-tree dsh plugin: a 'Files' tab in the conversation window with a VSCode-style file tree and viewer over the session workspace.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","vitest":"^3.0.0","esbuild":"^0.25.0","react-dom":"^18.2.0","typescript":"^5.7.2","@types/node":"^24.0.0","@types/react":"~18.3.1","lightningcss":"^1.29.0","playwright-core":"^1.62.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-fs":"0.1.0-rc.6","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-client-locale":"0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.6","@deepseek-ai/dsh-host-webserver":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-primitives":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-client-ui-filesystem-manager_0.1.2_1786875270473_0.7697870810549459","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dsh-mixxed/dsh-client-ui-filesystem-manager","version":"0.1.3","keywords":["dsh","plugin","deepseek","filesystem","file-manager","explorer"],"license":"MIT","_id":"@dsh-mixxed/dsh-client-ui-filesystem-manager@0.1.3","maintainers":[{"name":"dragons96999","email":"dragons96999@163.com"}],"homepage":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager#readme","bugs":{"url":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"dist":{"shasum":"0f7ef1bf6e9bad0e5db79b769c8a2d926635f56a","tarball":"https://registry.npmjs.org/@dsh-mixxed/dsh-client-ui-filesystem-manager/-/dsh-client-ui-filesystem-manager-0.1.3.tgz","fileCount":9,"integrity":"sha512-MV4GGiL58E0AL6mgg+EHfQAx3FoxyE6c4AEqRus5D6/4EJDPU8qgfZJSU01ZoZcHZfYbp3erPPzKqA0DvxWnmg==","signatures":[{"sig":"MEQCIC4qs96MhOFe9TAUc5V1mFddLJFrKmex9uR6uKM8l/LBAiBTm5CocctH1iDUJpv+m3gD19vsxECLTPOPOsaknot67A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245800},"type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"gitHead":"58a27ed525cd42937952f94aaa81704f3a1bcad5","scripts":{"e2e":"node scripts/e2e.mjs","pack":"npm pack","test":"vitest run","build":"node scripts/build.mjs","prepack":"npm run build","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"dragons96999","email":"dragons96999@163.com"},"repository":{"url":"git+https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager.git","type":"git"},"_npmVersion":"11.9.0","description":"Out-of-tree dsh plugin: a 'Files' tab in the conversation window with a VSCode-style file tree and viewer over the session workspace.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","vitest":"^3.0.0","esbuild":"^0.25.0","react-dom":"^18.2.0","typescript":"^5.7.2","@types/node":"^24.0.0","@types/react":"~18.3.1","lightningcss":"^1.29.0","playwright-core":"^1.62.1","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-fs":"0.1.0-rc.6","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-client-locale":"0.1.2-rc.1","@deepseek-ai/dsh-client-runtime":"0.1.1-rc.2","@deepseek-ai/dsh-host-webserver":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-slots":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-conversation":"0.1.2-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-client-ui-filesystem-manager_0.1.3_1788518604178_0.18001561047565318","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@dsh-mixxed/dsh-client-ui-filesystem-manager","version":"0.1.4","description":"Out-of-tree dsh plugin: a 'Files' tab in the conversation window with a VSCode-style file tree and viewer over the session workspace.","type":"module","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager.git"},"keywords":["dsh","plugin","deepseek","filesystem","file-manager","explorer"],"exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json"},"dsh":{"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation"]},"bundle":{"patch":"./cordis.patch.yml"}},"scripts":{"build":"node scripts/build.mjs","prepack":"npm run build","typecheck":"tsc -p tsconfig.json","test":"vitest run","e2e":"node scripts/e2e.mjs","pack":"npm pack"},"devDependencies":{"@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-client-locale":"0.1.2-rc.1","@deepseek-ai/dsh-client-runtime":"0.1.1-rc.2","@deepseek-ai/dsh-client-ui-conversation":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-primitives":"0.1.2-rc.1","@deepseek-ai/dsh-client-ui-slots":"0.1.2-rc.1","@deepseek-ai/dsh-fs":"0.1.0-rc.6","@deepseek-ai/dsh-host-webserver":"0.1.0-rc.6","@deepseek-ai/dsh-session":"0.1.0-rc.6","@types/node":"^24.0.0","@types/react":"~18.3.1","esbuild":"^0.25.0","jsdom":"^30.0.1","lightningcss":"^1.29.0","playwright-core":"^1.62.1","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.7.2","vitest":"^3.0.0"},"gitHead":"58a27ed525cd42937952f94aaa81704f3a1bcad5","_id":"@dsh-mixxed/dsh-client-ui-filesystem-manager@0.1.4","bugs":{"url":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager/issues"},"homepage":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager#readme","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-u0YMYOuIgVjmCPPL/MP7aoMZ+HF1YDrpWOHPkz8S1XnfwFR5ZCABqzaH4QpDAcfsNv17EvMqZBwv+Gn8SW9Crg==","shasum":"47d9f1c171b3333cc6db8d644a61dc27e09fc32c","tarball":"https://registry.npmjs.org/@dsh-mixxed/dsh-client-ui-filesystem-manager/-/dsh-client-ui-filesystem-manager-0.1.4.tgz","fileCount":9,"unpackedSize":250845,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBYhNJWdcoOlcjUVDfTjaGm8oIVrUmC5VPlJLBAw2RLGAiAQI7h+SPSAA5wEI4T0fU/ywEt4Pg7Y2hBfgpqisSFurA=="}]},"_npmUser":{"name":"dragons96999","email":"dragons96999@163.com"},"directories":{},"maintainers":[{"name":"dragons96999","email":"dragons96999@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-client-ui-filesystem-manager_0.1.4_1788519243011_0.32173431446925393"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T10:08:47.011Z","modified":"2026-09-04T10:54:03.328Z","0.1.1":"2026-08-16T10:08:47.309Z","0.1.2":"2026-08-16T10:14:30.612Z","0.1.3":"2026-09-04T10:43:24.330Z","0.1.4":"2026-09-04T10:54:03.143Z"},"bugs":{"url":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager/issues"},"license":"MIT","homepage":"https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager#readme","keywords":["dsh","plugin","deepseek","filesystem","file-manager","explorer"],"repository":{"type":"git","url":"git+https://github.com/dsh-mixxed/dsh-client-ui-filesystem-manager.git"},"description":"Out-of-tree dsh plugin: a 'Files' tab in the conversation window with a VSCode-style file tree and viewer over the session workspace.","maintainers":[{"name":"dragons96999","email":"dragons96999@163.com"}],"readme":"# dsh-client-ui-filesystem-manager\n\n**中文** · [English](README.md)\n\n一个 dsh 插件，为对话窗口新增 **文件** tab。选中后，会话区域变为 VSCode 风格双栏资源管理器：左侧是当前工作区的目录文件树，右侧是文件查看器。\n\n完全 out-of-tree 构建——deepseek-harness 源码零改动。插件注册进与内置轨迹 tab 相同的 `conversation.view` 环，目录与文件内容通过插件自己的 HTTP 路由（`ctx.webServer`）提供，UI 全部使用 dsh 设计 token（`--dsw-*`）与 ui-primitives 组件。\n\n## 安装\n\n1. 从 npm 安装（发布名 `@dsh-mixxed/dsh-client-ui-filesystem-manager`）：\n\n   ```sh\n   dsh plugin --profile web add @dsh-mixxed/dsh-client-ui-filesystem-manager\n   ```\n\n   包声明了 `dsh.bundle`（内置 `cordis.patch.yml`），`dsh plugin add` 会自动把它追加进\n   profile 的 `dsh.profile.bundles` 层栈，下次启动自动挂载——**无需手改 `cordis.patch.yml`**。\n\n2. 重启 profile（新插件在启动时发现），打开任意会话，点击 **文件** tab。\n\n### 源码构建（开发 / 离线）\n\n```sh\npnpm install\npnpm run typecheck\npnpm test\npnpm run build\nnpm pack          # 产出 dsh-mixxed-dsh-client-ui-filesystem-manager-<version>.tgz\ndsh plugin --profile <name> add ./dsh-mixxed-dsh-client-ui-filesystem-manager-<version>.tgz\n```\n\n## 功能\n\n- **第三个对话 tab**：对话 / 轨迹 / 文件，注册进 `conversation.view` 环（order 20，位于轨迹之后）\n- **VSCode 风格双栏**：可拖拽分隔条，左侧目录树、右侧文件查看器\n- **懒加载目录树**：目录按需展开（每个目录一次列表请求）、目录优先稳定排序、缩进参考线、\n  VSCode 风格的语言图标（JS/TS、HTML、CSS、JSON、Shell、脚本、编译语言、配置、Markdown\n  等各用 dsh 内置图标区分）、隐藏文件正常显示、空/加载/错误三态、刷新按钮\n- **按类型渲染的查看器**：\n  - Markdown（`.md`）用 house MarkdownText 渲染（不带行号）\n  - 其他文本文件（含代码 / JSON）用 house ReadBlock 渲染：VSCode 式行号 gutter +\n    按扩展名的 shiki 高亮（未识别扩展名回退纯等宽），带复制按钮\n  - 图片以内联 base64 显示（png/jpg/jpeg/gif/webp/svg/bmp/ico/avif）\n  - 二进制与超大文件给出明确提示态（带大小），并提供「在系统默认应用中打开」\n- **查看器工具栏**：刷新、在系统默认应用中打开、复制相对路径、下载\n- **全高独立滚动**：文件 tab 激活时隐藏输入对话框，双栏撑满整列高度（底部与侧边栏平齐），\n  目录树与文件内容各自独立滚动，互不影响；文件内容卡片撑满面板高度，滚动条在内容内部\n- **对话链接直达文件 tab**：read / edit / write 工具卡片、产物文件、消息里的文件提及，\n  点击后自动切到文件 tab 打开该文件（仅限当前工作区内的路径；项目外路径保持系统默认打开）\n- **会话级缓存**：目录列表与文件内容按会话单飞行获取一次；`connection/reset` 清空缓存；\n  切走再切回秒开\n- **工作区边界**：每个请求都经 `ctx.fs` 以会话工作区为根解析并做规范包含校验——\n  浏览器提交的裸路径永不被信任\n- **i18n**：中文 / English，主题 token 跟随明暗主题\n\n## 使用说明（harness 行为，按现状接受）\n\n- 树始终展示**当前会话的工作区**；切换工作区/会话会重建树。\n- 列表与内容按会话缓存——磁盘上的文件变更需手动刷新（树头或查看器工具栏）。\n- 超过文本上限（默认 512 KiB）的文件不会流入查看器；请改用「在系统默认应用中打开」。\n- 查看器只读：不支持编辑/写入/重命名/删除，也不做代码索引与搜索。\n\n## 验证\n\n```sh\ndsh --profile <name> --dump-config | Select-String ui-filesystem-manager\n```\n\n组合配置中应出现 `ui-filesystem-manager` 行，且 `$DSH_HOME/profiles/<name>/package.json`\n的 `dsh.profile.bundles` 列出 `@dsh-mixxed/dsh-client-ui-filesystem-manager`\n（由 `dsh plugin add` 自动追加）。\n\n端到端（在空闲端口启动 profile 后）：\n\n```sh\ndsh --profile <name> --port 3800   # 一个终端\nnode scripts/e2e.mjs               # 驱动 Chrome：tab → 树 → 展开 → 查看器\n```\n\n## 配置（可选）\n\n从 profile 自己的 `cordis.patch.yml` 调整读取上限——用户层在 bundle 层之后应用，\n按 id 打补丁即可覆盖内置挂载行：\n\n```yaml\n- id: ui-filesystem-manager\n  name: \"@dsh-mixxed/dsh-client-ui-filesystem-manager\"\n  config:\n    maxTextBytes: 524288     # 文本文件上限，超出提示「文件过大」（默认 512 KiB）\n    maxImageBytes: 8388608   # 图片内联字节上限（默认 8 MiB）\n```\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.zh.md"}