dsh-plugin-core 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/explorer/open.d.ts +11 -4
  2. package/dist/explorer/open.d.ts.map +1 -1
  3. package/dist/explorer/open.js +146 -60
  4. package/dist/explorer/open.js.map +1 -1
  5. package/dist/ui/PanelDock.d.ts +5 -0
  6. package/dist/ui/PanelDock.d.ts.map +1 -1
  7. package/dist/ui/PanelDock.js +85 -9
  8. package/dist/ui/PanelDock.js.map +1 -1
  9. package/dist/ui/Picker.d.ts.map +1 -1
  10. package/dist/ui/Picker.js +3 -1
  11. package/dist/ui/Picker.js.map +1 -1
  12. package/dist/ui/host-data.d.ts +6 -0
  13. package/dist/ui/host-data.d.ts.map +1 -1
  14. package/dist/ui/host-data.js +22 -15
  15. package/dist/ui/host-data.js.map +1 -1
  16. package/dist/ui/index.d.ts +2 -2
  17. package/dist/ui/index.d.ts.map +1 -1
  18. package/dist/ui/index.js +2 -2
  19. package/dist/ui/index.js.map +1 -1
  20. package/dist/ui/panel-dock-css.generated.d.ts +1 -1
  21. package/dist/ui/panel-dock-css.generated.d.ts.map +1 -1
  22. package/dist/ui/panel-dock-css.generated.js +1 -1
  23. package/dist/ui/panel-dock-css.generated.js.map +1 -1
  24. package/dist/ui/panel-dock-logic.d.ts +21 -4
  25. package/dist/ui/panel-dock-logic.d.ts.map +1 -1
  26. package/dist/ui/panel-dock-logic.js +55 -9
  27. package/dist/ui/panel-dock-logic.js.map +1 -1
  28. package/dist/ui/picker-css.generated.d.ts +1 -1
  29. package/dist/ui/picker-css.generated.d.ts.map +1 -1
  30. package/dist/ui/picker-css.generated.js +1 -1
  31. package/dist/ui/picker-css.generated.js.map +1 -1
  32. package/dist/utils/i18n.d.ts +1 -1
  33. package/dist/utils/i18n.d.ts.map +1 -1
  34. package/dist/utils/i18n.js +4 -0
  35. package/dist/utils/i18n.js.map +1 -1
  36. package/docs/design/architecture.md +11 -7
  37. package/docs/help/explorer.doc.ts +33 -14
  38. package/docs/help/explorer.md +24 -14
  39. package/docs/help/ui.doc.ts +9 -5
  40. package/docs/help/ui.md +9 -5
  41. package/docs/requirements.md +10 -2
  42. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"panel-dock-logic.js","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel-dock-logic.js","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const PICKER_CSS = "\n.dshpc-picker{position:relative;display:inline-block;max-width:100%;font-size:13px;line-height:20px}\n.dshpc-picker__trigger{\n display:inline-flex;align-items:center;justify-content:space-between;gap:6px;\n min-width:120px;max-width:100%;height:28px;padding:0 8px;\n color:var(--dshpc-fg);background:var(--dshpc-surface-1);\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;\n}\n.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}\n/* \u805A\u7126\uFF08\u952E\u76D8\u6216\u70B9\u51FB\u9009\u4E2D\uFF09\u65F6\u4E0E\u5168\u7AD9\u4E00\u81F4\u7684\u84DD\u8272\u63CF\u8FB9\uFF1B\u83DC\u5355\u6253\u5F00\u540E\u7126\u70B9\u4F1A\u8FDB\u53BB\uFF0C\u89E6\u53D1\u5668\u81EA\u7136\u5931\u53BB\u7126\u70B9\u3002 */\n.dshpc-picker__trigger:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* \u6587\u5B57\u9ED8\u8BA4\u9760\u5DE6\uFF08\u5403\u6389\u5269\u4F59\u5BBD\u5EA6\uFF09\uFF0C\u4E0D\u7ED9 space-between \u628A\u77ED\u6587\u6848\u63A8\u5230\u4E2D\u95F4\u7684\u673A\u4F1A\uFF1B\n \u786E\u5B9E\u8981\u5C45\u4E2D\u5C31\u663E\u5F0F\u4F20 align=\"center\"\u3002 */\n.dshpc-picker__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}\n.dshpc-picker__trigger--center .dshpc-picker__label{text-align:center}\n.dshpc-picker__caret{flex:none;color:var(--dshpc-fg-3)}\n.dshpc-picker__icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__option-icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__menu{\n z-index:60;max-height:280px;overflow:auto;padding:4px;\n /* \u83DC\u5355\u7ECF FloatingPortal \u6302\u5230 body\uFF0C\u8131\u79BB .dshpc-picker\uFF0C\u987B\u663E\u5F0F\u5B57\u53F7\uFF0C\u5426\u5219\u7EE7\u627F body \u7684\u5927\u5B57\u53F7 */\n font-size:13px;line-height:20px;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);\n border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);\n}\n/* \u5C3A\u5BF8\u6863\uFF08\u4E0E Field \u7684 sm/md/lg \u5BF9\u5E94\uFF09\u3002 */\n.dshpc-picker__trigger--sm{height:24px;font-size:12px}\n.dshpc-picker__trigger--lg{height:32px}\n/* \u952E\u76D8\u6E38\u6807\u6240\u5728\u9879\uFF08\u65E0 hover \u4E5F\u8981\u770B\u5F97\u89C1\uFF09\u3002 */\n.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}\n.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}\n.dshpc-picker__search{\n width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;\n color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);\n border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;\n}\n.dshpc-picker__group-label{\n padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;\n}\n.dshpc-picker__option{\n display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;\n color:var(--dshpc-fg);white-space:nowrap;\n}\n.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}\n.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}\n.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}\n.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}\n.dshpc-picker__degraded{\n padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);\n font-size:11px;\n}\n.dshpc-picker__row{display:flex;align-items:center;gap:8px}\n";
1
+ export declare const PICKER_CSS = "\n.dshpc-picker{position:relative;display:inline-block;max-width:100%;font-size:13px;line-height:20px}\n.dshpc-picker__trigger{\n display:inline-flex;align-items:center;justify-content:space-between;gap:6px;\n min-width:120px;max-width:100%;height:28px;padding:0 8px;\n color:var(--dshpc-fg);background:var(--dshpc-surface-1);\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;\n}\n.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}\n/* \u805A\u7126\uFF08\u952E\u76D8\u6216\u70B9\u51FB\u9009\u4E2D\uFF09\u65F6\u4E0E\u5168\u7AD9\u4E00\u81F4\u7684\u84DD\u8272\u63CF\u8FB9\uFF1B\u83DC\u5355\u6253\u5F00\u540E\u7126\u70B9\u4F1A\u8FDB\u53BB\uFF0C\u89E6\u53D1\u5668\u81EA\u7136\u5931\u53BB\u7126\u70B9\u3002 */\n.dshpc-picker__trigger:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* \u6587\u5B57\u9ED8\u8BA4\u9760\u5DE6\uFF08\u5403\u6389\u5269\u4F59\u5BBD\u5EA6\uFF09\uFF0C\u4E0D\u7ED9 space-between \u628A\u77ED\u6587\u6848\u63A8\u5230\u4E2D\u95F4\u7684\u673A\u4F1A\uFF1B\n \u786E\u5B9E\u8981\u5C45\u4E2D\u5C31\u663E\u5F0F\u4F20 align=\"center\"\u3002 */\n.dshpc-picker__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}\n.dshpc-picker__trigger--center .dshpc-picker__label{text-align:center}\n.dshpc-picker__caret{flex:none;color:var(--dshpc-fg-3)}\n.dshpc-picker__icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__option-icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__menu{\n z-index:60;max-height:280px;overflow:auto;padding:4px;\n /* \u83DC\u5355\u7ECF FloatingPortal \u6302\u5230 body\uFF0C\u8131\u79BB .dshpc-picker\uFF0C\u987B\u663E\u5F0F\u5B57\u53F7\uFF0C\u5426\u5219\u7EE7\u627F body \u7684\u5927\u5B57\u53F7 */\n font-size:13px;line-height:20px;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);\n border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);\n}\n/* \u5C3A\u5BF8\u6863\uFF08\u4E0E Field \u7684 sm/md/lg \u5BF9\u5E94\uFF09\u3002 */\n.dshpc-picker__trigger--sm{height:24px;font-size:12px}\n.dshpc-picker__trigger--lg{height:32px}\n/* \u952E\u76D8\u6E38\u6807\u6240\u5728\u9879\uFF08\u65E0 hover \u4E5F\u8981\u770B\u5F97\u89C1\uFF09\u3002 */\n.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}\n.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}\n.dshpc-picker__search{\n width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;\n color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);\n border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;\n}\n.dshpc-picker__group-label{\n padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;\n}\n.dshpc-picker__option{\n display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;\n color:var(--dshpc-fg);white-space:nowrap;\n}\n.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}\n.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}\n/* \u9009\u9879\u6587\u5B57\u5403\u6389\u5269\u4F59\u5BBD\u5EA6\uFF1A\u8D85\u957F\u7701\u7565\u53F7\uFF08\u914D\u5408 MarqueeText hover \u8DD1\u9A6C\u706F\uFF09\uFF0C\u4E0D\u6491\u5BBD\u83DC\u5355\u3002 */\n.dshpc-picker__option-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}\n.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}\n.dshpc-picker__degraded{\n padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);\n font-size:11px;\n}\n.dshpc-picker__row{display:flex;align-items:center;gap:8px}\n";
2
2
  //# sourceMappingURL=picker-css.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"picker-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/picker-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,mpHAA+/F,CAAA"}
1
+ {"version":3,"file":"picker-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/picker-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,o9HAA0qG,CAAA"}
@@ -1,4 +1,4 @@
1
1
  // ⚠️ 生成物,勿手改。真源 = src/ui/picker.css
2
2
  // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
- export const PICKER_CSS = "\n.dshpc-picker{position:relative;display:inline-block;max-width:100%;font-size:13px;line-height:20px}\n.dshpc-picker__trigger{\n display:inline-flex;align-items:center;justify-content:space-between;gap:6px;\n min-width:120px;max-width:100%;height:28px;padding:0 8px;\n color:var(--dshpc-fg);background:var(--dshpc-surface-1);\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;\n}\n.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}\n/* 聚焦(键盘或点击选中)时与全站一致的蓝色描边;菜单打开后焦点会进去,触发器自然失去焦点。 */\n.dshpc-picker__trigger:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* 文字默认靠左(吃掉剩余宽度),不给 space-between 把短文案推到中间的机会;\n 确实要居中就显式传 align=\"center\"。 */\n.dshpc-picker__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}\n.dshpc-picker__trigger--center .dshpc-picker__label{text-align:center}\n.dshpc-picker__caret{flex:none;color:var(--dshpc-fg-3)}\n.dshpc-picker__icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__option-icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__menu{\n z-index:60;max-height:280px;overflow:auto;padding:4px;\n /* 菜单经 FloatingPortal 挂到 body,脱离 .dshpc-picker,须显式字号,否则继承 body 的大字号 */\n font-size:13px;line-height:20px;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);\n border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);\n}\n/* 尺寸档(与 Field 的 sm/md/lg 对应)。 */\n.dshpc-picker__trigger--sm{height:24px;font-size:12px}\n.dshpc-picker__trigger--lg{height:32px}\n/* 键盘游标所在项(无 hover 也要看得见)。 */\n.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}\n.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}\n.dshpc-picker__search{\n width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;\n color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);\n border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;\n}\n.dshpc-picker__group-label{\n padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;\n}\n.dshpc-picker__option{\n display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;\n color:var(--dshpc-fg);white-space:nowrap;\n}\n.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}\n.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}\n.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}\n.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}\n.dshpc-picker__degraded{\n padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);\n font-size:11px;\n}\n.dshpc-picker__row{display:flex;align-items:center;gap:8px}\n";
3
+ export const PICKER_CSS = "\n.dshpc-picker{position:relative;display:inline-block;max-width:100%;font-size:13px;line-height:20px}\n.dshpc-picker__trigger{\n display:inline-flex;align-items:center;justify-content:space-between;gap:6px;\n min-width:120px;max-width:100%;height:28px;padding:0 8px;\n color:var(--dshpc-fg);background:var(--dshpc-surface-1);\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;\n}\n.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}\n/* 聚焦(键盘或点击选中)时与全站一致的蓝色描边;菜单打开后焦点会进去,触发器自然失去焦点。 */\n.dshpc-picker__trigger:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* 文字默认靠左(吃掉剩余宽度),不给 space-between 把短文案推到中间的机会;\n 确实要居中就显式传 align=\"center\"。 */\n.dshpc-picker__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}\n.dshpc-picker__trigger--center .dshpc-picker__label{text-align:center}\n.dshpc-picker__caret{flex:none;color:var(--dshpc-fg-3)}\n.dshpc-picker__icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__option-icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__menu{\n z-index:60;max-height:280px;overflow:auto;padding:4px;\n /* 菜单经 FloatingPortal 挂到 body,脱离 .dshpc-picker,须显式字号,否则继承 body 的大字号 */\n font-size:13px;line-height:20px;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);\n border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);\n}\n/* 尺寸档(与 Field 的 sm/md/lg 对应)。 */\n.dshpc-picker__trigger--sm{height:24px;font-size:12px}\n.dshpc-picker__trigger--lg{height:32px}\n/* 键盘游标所在项(无 hover 也要看得见)。 */\n.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}\n.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}\n.dshpc-picker__search{\n width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;\n color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);\n border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;\n}\n.dshpc-picker__group-label{\n padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;\n}\n.dshpc-picker__option{\n display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;\n color:var(--dshpc-fg);white-space:nowrap;\n}\n.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}\n.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}\n/* 选项文字吃掉剩余宽度:超长省略号(配合 MarqueeText hover 跑马灯),不撑宽菜单。 */\n.dshpc-picker__option-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}\n.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}\n.dshpc-picker__degraded{\n padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);\n font-size:11px;\n}\n.dshpc-picker__row{display:flex;align-items:center;gap:8px}\n";
4
4
  //# sourceMappingURL=picker-css.generated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picker-css.generated.js","sourceRoot":"","sources":["../../src/ui/picker-css.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,qEAAqE;AACrE,MAAM,CAAC,MAAM,UAAU,GAAG,4/FAA4/F,CAAA"}
1
+ {"version":3,"file":"picker-css.generated.js","sourceRoot":"","sources":["../../src/ui/picker-css.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,qEAAqE;AACrE,MAAM,CAAC,MAAM,UAAU,GAAG,uqGAAuqG,CAAA"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export type Locale = 'zh' | 'en';
9
9
  /** utils 内置文案的 key(ui 的选择器也复用这套字典,保持单一 locale 状态)。 */
10
- export type UtilMessageKey = 'sessionLoading' | 'sessionFailed' | 'sessionEmpty' | 'explorerLoading' | 'explorerFailed' | 'explorerRoot' | 'explorerTruncated' | 'explorerEmptyDir' | 'explorerLevels' | 'explorerExpand' | 'explorerCollapse' | 'explorerEnter' | 'explorerRootName' | 'explorerCrumbsAria' | 'explorerPickFile' | 'explorerPickDir' | 'explorerPickDirAria' | 'previewClose' | 'previewCopyPath' | 'previewRefresh' | 'previewRender' | 'previewSource' | 'previewMdSwitchAria' | 'previewHtmlSwitchAria' | 'previewLoadMore' | 'previewTruncated' | 'previewOfficeUnavailable' | 'previewRenderFailed' | 'previewBadPayload' | 'previewOutside' | 'previewNotFound' | 'previewNotDirectory' | 'previewTooLarge' | 'previewNotText' | 'previewFailedCode' | 'mdCopy' | 'mdCopied' | 'mdCode' | 'mdWrap' | 'mdUnwrap' | 'mdFootnotes' | 'cardToggle' | 'modalClose' | 'dockClose' | 'dockResize' | 'errorRetry' | 'confirm' | 'cancel' | 'dialogOk' | 'pickerPlaceholder' | 'pickerClear' | 'pickerEmpty' | 'pickerNoMatch' | 'pickerSearch' | 'pickerSelected' | 'pickerMaxReached' | 'pickerDegraded' | 'modelProvider' | 'modelModel' | 'modelDefault' | 'workspaceAll' | 'relNow' | 'relInJustNow' | 'relInMinutes' | 'relInHours' | 'relInDays' | 'relInMonths' | 'relInYears' | 'relJustNow' | 'relMinutesAgo' | 'relHoursAgo' | 'relDaysAgo' | 'relWeeksAgo' | 'relMonthsAgo' | 'relYearsAgo' | 'codeCopy' | 'codeCopied' | 'sessionUnknownKind' | 'sessionLoadOlder' | 'sessionProcess' | 'triggerRequest' | 'triggerGoal' | 'triggerAgent' | 'triggerTeam' | 'triggerSubagent' | 'triggerGithub' | 'triggerWebhook' | 'triggerSchedule' | 'triggerJob' | 'triggerPlugin' | 'triggerExplanation' | 'turnProcessTook' | 'turnProcessDeepDiving' | 'turnProcessWorked' | 'turnProcessFailed' | 'turnStopped' | 'chatDeepDiving' | 'thinkLabel' | 'durationSeconds' | 'durationMinutes' | 'durationHours' | 'durationMilliseconds' | 'retryActive' | 'retryCancelled' | 'retryStarted' | 'retryScheduled' | 'retryStatus' | 'retryDelay' | 'retryFailure' | 'turnErrorTitle' | 'accountStopped' | 'maxTokensTitle' | 'maxTokensHint' | 'failureAuth' | 'failureQuota' | 'failureAccountSignedOut' | 'failureAccountSignInRequired' | 'clockDate' | 'clockDateYear' | 'copyLabel' | 'copiedLabel' | 'branchLabel' | 'branchUnavailableLabel' | 'turnUsageTitle' | 'turnUsageModel' | 'turnUsageCacheHit' | 'turnUsageInput' | 'turnUsageCacheRead' | 'turnUsageCacheWrite' | 'turnUsageOutput' | 'turnUsageReasoning' | 'turnUsageConsumed' | 'turnUsageCount' | 'numberThousand' | 'numberMillion' | 'numberGroupSeparator' | 'stepProcessDoneThinking' | 'stepProcessDoneRead' | 'stepProcessDoneReadImage' | 'stepProcessDoneWrite' | 'stepProcessDoneSearch' | 'stepProcessDoneEdit' | 'stepProcessDoneCommands' | 'stepProcessDoneCode' | 'stepProcessDoneWebSearch' | 'stepProcessDoneWebFetch' | 'stepProcessDoneSubagents' | 'stepProcessDonePlan' | 'stepProcessDoneQuestions' | 'stepProcessDoneTools' | 'stepProcessJoinTwo' | 'stepProcessComma' | 'stepProcessSharedPrefix' | 'stepProcessMore' | 'toolTitleRead' | 'toolTitleReadImage' | 'toolTitleGrep' | 'toolTitleGlob' | 'toolTitleBash' | 'toolTitleWrite' | 'toolTitleEdit' | 'toolTitleCode' | 'toolTitleWebSearch' | 'toolTitleWebFetch' | 'toolTitleGeneric' | 'toolTitleSearch' | 'toolInputLabel' | 'toolOutputLabel' | 'rowPreparing' | 'rowRunning' | 'rowFailed' | 'rowStopped' | 'commandRunning' | 'commandFailed' | 'commandDone' | 'commandTitle' | 'collapseLabel' | 'readWindow' | 'readCollapseAria' | 'readExpandAria' | 'readExpandRest' | 'terminalSignal' | 'terminalExitCode' | 'terminalNoExitCode' | 'terminalRunning' | 'terminalFailed' | 'terminalDone' | 'terminalNoOutput' | 'terminalCollapseAria' | 'terminalExpandAria' | 'terminalExpandRest' | 'terminalCommandLine' | 'terminalSendInput' | 'terminalSession' | 'codeBlockLabel' | 'diffWrapLabel' | 'diffUnwrapLabel' | 'diffCollapseAria' | 'diffExpandAria' | 'diffExpandRest' | 'sessionArchived' | 'sessionHeading' | 'changesSingle' | 'changesMulti' | 'changesBinary' | 'changesAll' | 'changesCollapse' | 'changesOversized' | 'diffLoading' | 'diffMissing' | 'diffError' | 'diffBinary' | 'diffOversized' | 'diffCreated' | 'diffDeleted' | 'diffUnchanged' | 'diffCoarse' | 'diffTruncated' | 'continueBranch' | 'forkConfirmTitle' | 'forkConfirmText' | 'forkConfirmAccept' | 'forkWorking' | 'forkFailed' | 'deliverRowTitle' | 'deliverRowPreparing' | 'deliverRowRunning' | 'deliverRowOk' | 'deliverRowError' | 'deliverRowStopped' | 'deliverFileLabel' | 'deliverPreviewHint' | 'deliverPreviewCard' | 'deliverAll' | 'deliverCollapse' | 'deliverExpandAria' | 'deliverCollapseAria' | 'composerPlaceholder' | 'composerHint' | 'dtPlaceholder' | 'dtStart' | 'dtEnd' | 'dtToday' | 'dtNow' | 'dtClear' | 'dtHour' | 'dtMinute' | 'dtSecond' | 'dtPrevYear' | 'dtPrevMonth' | 'dtNextMonth' | 'dtNextYear' | 'dtInvalidRange';
10
+ export type UtilMessageKey = 'sessionLoading' | 'sessionFailed' | 'sessionEmpty' | 'explorerLoading' | 'explorerFailed' | 'explorerRoot' | 'explorerTruncated' | 'explorerEmptyDir' | 'explorerLevels' | 'explorerExpand' | 'explorerCollapse' | 'explorerEnter' | 'explorerRootName' | 'explorerCrumbsAria' | 'explorerPickFile' | 'explorerPickDir' | 'explorerPickDirAria' | 'previewClose' | 'previewCopyPath' | 'previewRefresh' | 'previewRender' | 'previewSource' | 'previewMdSwitchAria' | 'previewHtmlSwitchAria' | 'previewLoadMore' | 'previewTruncated' | 'previewOfficeUnavailable' | 'previewRenderFailed' | 'previewBadPayload' | 'previewOutside' | 'previewNotFound' | 'previewNotDirectory' | 'previewTooLarge' | 'previewNotText' | 'previewFailedCode' | 'mdCopy' | 'mdCopied' | 'mdCode' | 'mdWrap' | 'mdUnwrap' | 'mdFootnotes' | 'cardToggle' | 'modalClose' | 'dockClose' | 'dockResize' | 'dockCollapse' | 'dockExpand' | 'errorRetry' | 'confirm' | 'cancel' | 'dialogOk' | 'pickerPlaceholder' | 'pickerClear' | 'pickerEmpty' | 'pickerNoMatch' | 'pickerSearch' | 'pickerSelected' | 'pickerMaxReached' | 'pickerDegraded' | 'modelProvider' | 'modelModel' | 'modelDefault' | 'workspaceAll' | 'relNow' | 'relInJustNow' | 'relInMinutes' | 'relInHours' | 'relInDays' | 'relInMonths' | 'relInYears' | 'relJustNow' | 'relMinutesAgo' | 'relHoursAgo' | 'relDaysAgo' | 'relWeeksAgo' | 'relMonthsAgo' | 'relYearsAgo' | 'codeCopy' | 'codeCopied' | 'sessionUnknownKind' | 'sessionLoadOlder' | 'sessionProcess' | 'triggerRequest' | 'triggerGoal' | 'triggerAgent' | 'triggerTeam' | 'triggerSubagent' | 'triggerGithub' | 'triggerWebhook' | 'triggerSchedule' | 'triggerJob' | 'triggerPlugin' | 'triggerExplanation' | 'turnProcessTook' | 'turnProcessDeepDiving' | 'turnProcessWorked' | 'turnProcessFailed' | 'turnStopped' | 'chatDeepDiving' | 'thinkLabel' | 'durationSeconds' | 'durationMinutes' | 'durationHours' | 'durationMilliseconds' | 'retryActive' | 'retryCancelled' | 'retryStarted' | 'retryScheduled' | 'retryStatus' | 'retryDelay' | 'retryFailure' | 'turnErrorTitle' | 'accountStopped' | 'maxTokensTitle' | 'maxTokensHint' | 'failureAuth' | 'failureQuota' | 'failureAccountSignedOut' | 'failureAccountSignInRequired' | 'clockDate' | 'clockDateYear' | 'copyLabel' | 'copiedLabel' | 'branchLabel' | 'branchUnavailableLabel' | 'turnUsageTitle' | 'turnUsageModel' | 'turnUsageCacheHit' | 'turnUsageInput' | 'turnUsageCacheRead' | 'turnUsageCacheWrite' | 'turnUsageOutput' | 'turnUsageReasoning' | 'turnUsageConsumed' | 'turnUsageCount' | 'numberThousand' | 'numberMillion' | 'numberGroupSeparator' | 'stepProcessDoneThinking' | 'stepProcessDoneRead' | 'stepProcessDoneReadImage' | 'stepProcessDoneWrite' | 'stepProcessDoneSearch' | 'stepProcessDoneEdit' | 'stepProcessDoneCommands' | 'stepProcessDoneCode' | 'stepProcessDoneWebSearch' | 'stepProcessDoneWebFetch' | 'stepProcessDoneSubagents' | 'stepProcessDonePlan' | 'stepProcessDoneQuestions' | 'stepProcessDoneTools' | 'stepProcessJoinTwo' | 'stepProcessComma' | 'stepProcessSharedPrefix' | 'stepProcessMore' | 'toolTitleRead' | 'toolTitleReadImage' | 'toolTitleGrep' | 'toolTitleGlob' | 'toolTitleBash' | 'toolTitleWrite' | 'toolTitleEdit' | 'toolTitleCode' | 'toolTitleWebSearch' | 'toolTitleWebFetch' | 'toolTitleGeneric' | 'toolTitleSearch' | 'toolInputLabel' | 'toolOutputLabel' | 'rowPreparing' | 'rowRunning' | 'rowFailed' | 'rowStopped' | 'commandRunning' | 'commandFailed' | 'commandDone' | 'commandTitle' | 'collapseLabel' | 'readWindow' | 'readCollapseAria' | 'readExpandAria' | 'readExpandRest' | 'terminalSignal' | 'terminalExitCode' | 'terminalNoExitCode' | 'terminalRunning' | 'terminalFailed' | 'terminalDone' | 'terminalNoOutput' | 'terminalCollapseAria' | 'terminalExpandAria' | 'terminalExpandRest' | 'terminalCommandLine' | 'terminalSendInput' | 'terminalSession' | 'codeBlockLabel' | 'diffWrapLabel' | 'diffUnwrapLabel' | 'diffCollapseAria' | 'diffExpandAria' | 'diffExpandRest' | 'sessionArchived' | 'sessionHeading' | 'changesSingle' | 'changesMulti' | 'changesBinary' | 'changesAll' | 'changesCollapse' | 'changesOversized' | 'diffLoading' | 'diffMissing' | 'diffError' | 'diffBinary' | 'diffOversized' | 'diffCreated' | 'diffDeleted' | 'diffUnchanged' | 'diffCoarse' | 'diffTruncated' | 'continueBranch' | 'forkConfirmTitle' | 'forkConfirmText' | 'forkConfirmAccept' | 'forkWorking' | 'forkFailed' | 'deliverRowTitle' | 'deliverRowPreparing' | 'deliverRowRunning' | 'deliverRowOk' | 'deliverRowError' | 'deliverRowStopped' | 'deliverFileLabel' | 'deliverPreviewHint' | 'deliverPreviewCard' | 'deliverAll' | 'deliverCollapse' | 'deliverExpandAria' | 'deliverCollapseAria' | 'composerPlaceholder' | 'composerHint' | 'dtPlaceholder' | 'dtStart' | 'dtEnd' | 'dtToday' | 'dtNow' | 'dtClear' | 'dtHour' | 'dtMinute' | 'dtSecond' | 'dtPrevYear' | 'dtPrevMonth' | 'dtNextMonth' | 'dtNextYear' | 'dtInvalidRange';
11
11
  /** 文案函数:`vars` 用于填 `{n}` 这类占位。 */
12
12
  export type Translate = (key: UtilMessageKey, vars?: Record<string, number | string>) => string;
13
13
  export declare function setLocale(locale: Locale): void;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,8 @@ const DICT = {
52
52
  modalClose: '关闭',
53
53
  dockClose: '关闭面板',
54
54
  dockResize: '拖动调整宽度',
55
+ dockCollapse: '收起面板',
56
+ dockExpand: '展开面板',
55
57
  errorRetry: '重试',
56
58
  confirm: '确定',
57
59
  cancel: '取消',
@@ -308,6 +310,8 @@ const DICT = {
308
310
  modalClose: 'Close',
309
311
  dockClose: 'Close panel',
310
312
  dockResize: 'Drag to resize',
313
+ dockCollapse: 'Collapse panel',
314
+ dockExpand: 'Expand panel',
311
315
  errorRetry: 'Retry',
312
316
  confirm: 'Confirm',
313
317
  cancel: 'Cancel',
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
@@ -80,23 +80,27 @@ dist/** 产物形态不变,仍由 createStyleKit 拼成一份
80
80
 
81
81
  工作区列表、模型列表、会话消息都要跨 host↔client 边界。分两条口径(2026-10-20 拍板):
82
82
 
83
- - **通用控件是纯零件**:数据由调用方经 props 给,宿主能力经接口注入(`FileBrowser` /
84
- `openFilePreview` / `pickWorkspaceFile`、`SessionPreview`、通用 `Picker` 都算这类)。
85
- - **领域选择器自带数据面**:`ModelPicker` / `WorkspacePicker` 经接线后**自己取数自己显示**,
86
- 消费方不再传数组。两条通路(2026-10-20 真机核实):
83
+ - **通用控件是纯零件**:数据由调用方经 props 给,宿主能力经接口注入(`FileBrowser`、
84
+ `SessionPreview`、通用 `Picker` 都算这类)。
85
+ - **领域能力自带数据面**(2026-10-28 扩到 explorer):`ModelPicker` / `WorkspacePicker` /
86
+ `openFilePreview` / `pickWorkspaceFile` 经 `connectHost(ctx)` **接线一次**后自己取数,消费方
87
+ 不再传数组、服务、会话 id。三条通路(2026-10-20 / 2026-10-28 真机核实):
87
88
  - 工作区:client 侧 `ctx.inject(['workspaces'])` 的快照(getSnapshot + subscribe,follow 流实时更新),
88
89
  封装在 `src/ui/host-data.ts` 的 `workspaceList`。
89
90
  - 模型目录:client 侧 remote **拿不到**每个 provider 的模型 ⇒ 插件宿主侧
90
91
  `llm.listModels()` 现查、`serveModelCatalog()`(`src/host/index.ts`,`./host` 子路径)挂成只读路由,
91
92
  client 侧 `connectHost(ctx, { modelsPath })` fetch。两侧共用同一个 path 常量。
92
- 任一通路缺席只影响那一块,选择器渲染空态 / 降级提示。
93
+ - 读文件:client 侧 `ctx.inject(['remote', 'remote.workspaceFiles'])`,封装在
94
+ `src/ui/host-data.ts` 的 `getWorkspaceFiles()`;会话 id 由「路径 → 工作区 → 该区会话」自己解。
95
+ 任一通路缺席只影响那一块:选择器渲染空态 / 降级提示,`openFilePreview` 直接不打开并留痕。
93
96
 
94
97
  | 组件 | 数据从哪来 |
95
98
  |---|---|
96
99
  | `Picker` | 选项数据(props) |
97
100
  | `ModelPicker` / `WorkspacePicker` | 自取(connectHost 接线;`groups` 参数仅作覆盖) |
98
- | `FileBrowser` / `openFilePreview` / `pickWorkspaceFile` | `WorkspaceFilesFace`(从 ctx 取出后注入) |
99
- | `SessionPreview` | `SessionSource`(同上) |
101
+ | `openFilePreview` / `pickWorkspaceFile` | 自取(connectHost 接线;`workspaceFiles` / `sessionId` 仅作覆盖) |
102
+ | `FileBrowser` | `WorkspaceFilesFace`(props,纯零件) |
103
+ | `SessionPreview` | `SessionSource`(props) |
100
104
 
101
105
  不传整个 `ctx`:ctx 是宿主给的整个大对象,传进来就把本包和宿主版本焊死;只传需要的那一小块,
102
106
  宿主 breaking 时改的是插件「取出」的一行。
@@ -3,16 +3,18 @@ import type { DocTopic } from '../design/doc-format.js'
3
3
 
4
4
  const explorerUsage = `import { openFilePreview, pickWorkspaceFile } from 'dsh-plugin-core/explorer'
5
5
 
6
- // 右侧分栏预览(占宽度、挤窄主区)
7
- openFilePreview({ mount, workspaceFiles, officeToPdf, sessionId, path, rootName })
6
+ // 只在 client apply 里接线一次(接工作区快照 + 读文件服务),之后不用再碰服务
7
+ connectHost(ctx)
8
8
 
9
- // path 传绝对路径时:按最长前缀匹配所属工作区,面包屑 / 目录树与 ▾「切工作区」自动可用
10
- openFilePreview({ mount, workspaceFiles, sessionId, path: '/abs/path.md' })
11
- // 要覆盖宿主快照才显式传 workspaceAnchors(带 path + sessionIds)
12
- openFilePreview({ mount, workspaceFiles, sessionId, path: '/abs/path.md', workspaceAnchors })
9
+ // 右侧分栏预览(占宽度、挤窄主区):一个容器 + 一个路径就够
10
+ openFilePreview({ mount, path: '/abs/ledger' }) // 文件夹 ⇒ 目录树;文件 ⇒ 直接预览
11
+ openFilePreview({ mount, path: 'docs/README.md' }) // 工作区相对路径也行
12
+
13
+ // 覆盖项:指定工作区快照 / 指定会话 / Office 转 PDF / 与别处共用的根缓存
14
+ openFilePreview({ mount, path, workspaceAnchors, sessionId, officeToPdf, rootCache })
13
15
 
14
16
  // 锚定弹窗选文件(Promise 返回路径,不自己挂 dock)
15
- const r = await pickWorkspaceFile({ workspaceFiles, sessionId, anchor, rootName })`
17
+ const r = await pickWorkspaceFile({ anchor, filter: { exts: ['md'] } })`
16
18
 
17
19
  const doc: DocTopic = {
18
20
  title: { zh: 'explorer —— 工作区浏览', en: 'explorer — Workspace browsing' },
@@ -27,8 +29,16 @@ const doc: DocTopic = {
27
29
  en: 'Workspace file browsing and picking, driven by the host-provided workspace file snapshot.',
28
30
  },
29
31
  {
30
- zh: '浏览态停靠是布局成员(占宽度、挤窄主区),不要挂 `document.body` 再自己套 fixed。',
31
- en: 'The browse dock is a layout member (takes width, narrows the main area); never mount it on `document.body` with your own fixed positioning.',
32
+ zh: '**接线归核心**:client `apply` 里调一次 `connectHost(ctx)`,读文件服务、会话 id、工作区快照都由核心自己解,调用时只给容器和路径。',
33
+ en: '**Wiring belongs to core**: call `connectHost(ctx)` once in the client apply; the file service, session id and workspace snapshot are resolved by core — you only pass a container and a path.',
34
+ },
35
+ {
36
+ zh: '落点只给一个元素:页面里**包住主区**的那个(核心会补成 flex 行、让主区伸展,关闭时还原),不要传 `document.body` 再自己套 fixed——那是浮层,不是分栏。',
37
+ en: 'Pass one element: the one wrapping the main area. Core makes it a flex row and lets the main area stretch, restoring it on close. Never pass `document.body` with your own fixed positioning — that is an overlay, not a split.',
38
+ },
39
+ {
40
+ zh: '绝对路径按最长前缀匹配所属工作区;落在任何工作区外时,文件照样能预览(官方 read 允许工作区外文件),只有目录树退化成只读路径栏。',
41
+ en: 'Absolute paths are matched to their workspace by longest prefix. Outside every workspace the file still previews (official read allows it); only the directory tree degrades to a read-only path bar.',
32
42
  },
33
43
  ],
34
44
  },
@@ -42,8 +52,8 @@ const doc: DocTopic = {
42
52
  heading: { zh: '1. 接入示例', en: '1. Usage' },
43
53
  prose: [
44
54
  {
45
- zh: '从 ctx 取出工作区快照再传给能力接口,不要传整个 ctx。',
46
- en: 'Pull the workspace snapshot out of ctx and hand it to the capability APIs; do not pass the whole ctx.',
55
+ zh: '`connectHost(ctx)` 只收这一小块,不把整个 ctx 传进核心。',
56
+ en: '`connectHost(ctx)` takes just that one slice; the whole ctx never enters core.',
47
57
  },
48
58
  ],
49
59
  code: [{ id: 'explorer-usage-code', lang: 'tsx', src: explorerUsage }],
@@ -69,19 +79,28 @@ const doc: DocTopic = {
69
79
  type: 'HTMLElement',
70
80
  def: '—',
71
81
  required: '是',
72
- desc: { zh: '页面里的 flex 行;预览靠它占宽而不是浮在页面上方', en: 'The page’s flex row; the preview takes width there instead of floating' },
82
+ desc: {
83
+ zh: '页面里**包住主区**的那个元素;不必自己写 flex(核心补成 flex 行并让主区伸展,关闭时还原)。不要传 `document.body`',
84
+ en: 'The element wrapping the main area; no flex needed (core turns it into a flex row, stretches the main area, and restores it on close). Never `document.body`',
85
+ },
73
86
  },
74
87
  {
75
88
  name: 'opts.workspaceFiles',
76
89
  type: 'WorkspaceFilesFace',
77
90
  def: '—',
78
- desc: { zh: '从 ctx 取出的工作区文件服务;传 `content` 时可省', en: 'Workspace file service taken from ctx; optional when passing `content`' },
91
+ desc: {
92
+ zh: '读文件服务。**一般不用传**:`connectHost(ctx)` 接线后核心自己持有;传了以传入为准。传 `content` 时可省',
93
+ en: 'File service. **Usually unnecessary**: core holds it after `connectHost(ctx)`; when passed it wins. Optional when passing `content`',
94
+ },
79
95
  },
80
96
  {
81
97
  name: 'opts.sessionId',
82
98
  type: 'string',
83
99
  def: '—',
84
- desc: { zh: '该工作区的真实会话 id(服务是会话作用域的);传 `content` 时可省', en: 'A real session id of that workspace (the service is session-scoped); optional when passing `content`' },
100
+ desc: {
101
+ zh: '该工作区的真实会话 id。**一般不用传**:按路径匹配所属工作区,匹配不出就取最近有会话的工作区;传 `content` 时可省',
102
+ en: 'A real session id. **Usually unnecessary**: resolved from the path’s workspace, else the most recently updated workspace with a session; optional when passing `content`',
103
+ },
85
104
  },
86
105
  {
87
106
  name: 'opts.path',
@@ -14,9 +14,17 @@
14
14
 
15
15
  > EN: Workspace file browsing and picking, driven by the host-provided workspace file snapshot.
16
16
 
17
- 浏览态停靠是布局成员(占宽度、挤窄主区),不要挂 `document.body` 再自己套 fixed。
17
+ **接线归核心**:client `apply` 里调一次 `connectHost(ctx)`,读文件服务、会话 id、工作区快照都由核心自己解,调用时只给容器和路径。
18
18
 
19
- > EN: The browse dock is a layout member (takes width, narrows the main area); never mount it on `document.body` with your own fixed positioning.
19
+ > EN: **Wiring belongs to core**: call `connectHost(ctx)` once in the client apply; the file service, session id and workspace snapshot are resolved by core — you only pass a container and a path.
20
+
21
+ 落点只给一个元素:页面里**包住主区**的那个(核心会补成 flex 行、让主区伸展,关闭时还原),不要传 `document.body` 再自己套 fixed——那是浮层,不是分栏。
22
+
23
+ > EN: Pass one element: the one wrapping the main area. Core makes it a flex row and lets the main area stretch, restoring it on close. Never pass `document.body` with your own fixed positioning — that is an overlay, not a split.
24
+
25
+ 绝对路径按最长前缀匹配所属工作区;落在任何工作区外时,文件照样能预览(官方 read 允许工作区外文件),只有目录树退化成只读路径栏。
26
+
27
+ > EN: Absolute paths are matched to their workspace by longest prefix. Outside every workspace the file still previews (official read allows it); only the directory tree degrades to a read-only path bar.
20
28
 
21
29
  ## 0. 装包
22
30
 
@@ -30,23 +38,25 @@ pnpm add dsh-plugin-core
30
38
 
31
39
  > EN: 1. Usage
32
40
 
33
- 从 ctx 取出工作区快照再传给能力接口,不要传整个 ctx。
41
+ `connectHost(ctx)` 只收这一小块,不把整个 ctx 传进核心。
34
42
 
35
- > EN: Pull the workspace snapshot out of ctx and hand it to the capability APIs; do not pass the whole ctx.
43
+ > EN: `connectHost(ctx)` takes just that one slice; the whole ctx never enters core.
36
44
 
37
45
  ```tsx id="explorer-usage-code"
38
46
  import { openFilePreview, pickWorkspaceFile } from 'dsh-plugin-core/explorer'
39
47
 
40
- // 右侧分栏预览(占宽度、挤窄主区)
41
- openFilePreview({ mount, workspaceFiles, officeToPdf, sessionId, path, rootName })
48
+ // 只在 client apply 里接线一次(接工作区快照 + 读文件服务),之后不用再碰服务
49
+ connectHost(ctx)
50
+
51
+ // 右侧分栏预览(占宽度、挤窄主区):一个容器 + 一个路径就够
52
+ openFilePreview({ mount, path: '/abs/ledger' }) // 文件夹 ⇒ 目录树;文件 ⇒ 直接预览
53
+ openFilePreview({ mount, path: 'docs/README.md' }) // 工作区相对路径也行
42
54
 
43
- // path 传绝对路径时:按最长前缀匹配所属工作区,面包屑 / 目录树与 ▾「切工作区」自动可用
44
- openFilePreview({ mount, workspaceFiles, sessionId, path: '/abs/path.md' })
45
- // 要覆盖宿主快照才显式传 workspaceAnchors(带 path + sessionIds)
46
- openFilePreview({ mount, workspaceFiles, sessionId, path: '/abs/path.md', workspaceAnchors })
55
+ // 覆盖项:指定工作区快照 / 指定会话 / Office 转 PDF / 与别处共用的根缓存
56
+ openFilePreview({ mount, path, workspaceAnchors, sessionId, officeToPdf, rootCache })
47
57
 
48
58
  // 锚定弹窗选文件(Promise 返回路径,不自己挂 dock)
49
- const r = await pickWorkspaceFile({ workspaceFiles, sessionId, anchor, rootName })
59
+ const r = await pickWorkspaceFile({ anchor, filter: { exts: ['md'] } })
50
60
  ```
51
61
 
52
62
  ## API
@@ -56,9 +66,9 @@ const r = await pickWorkspaceFile({ workspaceFiles, sessionId, anchor, rootName
56
66
  | 参数 | 类型 | 必填 | 默认 | 说明(zh) | 说明(en) |
57
67
  |---|---|---|---|---|---|
58
68
  | `openFilePreview(opts)` | `OpenFilePreviewOptions => FilePreviewHandle` | — | — | 在右侧分栏打开文件 / 文件夹预览,返回可关闭它的句柄。预览内容二选一:`path`(核心解析并渲染)或 `content`(由调用方给内容) | Opens a file/folder preview in the right-side dock and returns a handle to close it. Body is one of two: `path` (resolved and rendered by core) or `content` (rendered from your own node) |
59
- | `opts.mount` | `HTMLElement` | 是 | — | 页面里的 flex 行;预览靠它占宽而不是浮在页面上方 | The page’s flex row; the preview takes width there instead of floating |
60
- | `opts.workspaceFiles` | `WorkspaceFilesFace` | — | — | 从 ctx 取出的工作区文件服务;传 `content` 时可省 | Workspace file service taken from ctx; optional when passing `content` |
61
- | `opts.sessionId` | `string` | — | — | 该工作区的真实会话 id(服务是会话作用域的);传 `content` 时可省 | A real session id of that workspace (the service is session-scoped); optional when passing `content` |
69
+ | `opts.mount` | `HTMLElement` | 是 | — | 页面里**包住主区**的那个元素;不必自己写 flex(核心补成 flex 行并让主区伸展,关闭时还原)。不要传 `document.body` | The element wrapping the main area; no flex needed (core turns it into a flex row, stretches the main area, and restores it on close). Never `document.body` |
70
+ | `opts.workspaceFiles` | `WorkspaceFilesFace` | — | — | 读文件服务。**一般不用传**:`connectHost(ctx)` 接线后核心自己持有;传了以传入为准。传 `content` 时可省 | File service. **Usually unnecessary**: core holds it after `connectHost(ctx)`; when passed it wins. Optional when passing `content` |
71
+ | `opts.sessionId` | `string` | — | — | 该工作区的真实会话 id。**一般不用传**:按路径匹配所属工作区,匹配不出就取最近有会话的工作区;传 `content` 时可省 | A real session id. **Usually unnecessary**: resolved from the path’s workspace, else the most recently updated workspace with a session; optional when passing `content` |
62
72
  | `opts.path` | `string` | — | — | 工作区相对路径;绝对路径会自动按最长前缀匹配所属工作区。与 `content` 二选一 | Workspace-relative path; absolute paths are matched to their workspace by longest prefix. Mutually exclusive with `content` |
63
73
  | `opts.content` | `() => ReactNode` | — | — | 自定义预览内容,塞进同一个右侧 dock;传它时不需要 `path` | Custom preview body rendered in the same dock; no `path` needed when set |
64
74
  | `opts.officeToPdf` | `OfficeToPdfFace` | — | — | Office 转 PDF 能力;缺失则该格式走「不支持」而不是报错 | Office→PDF capability; without it that format shows "unsupported" instead of erroring |
@@ -140,7 +140,7 @@ const doc: DocTopic = {
140
140
  heading: { zh: 'Picker / WorkspacePicker / ModelPicker', en: 'Picker / WorkspacePicker / ModelPicker' },
141
141
  prose: [
142
142
  {
143
- zh: 'Picker:单 / 多选、上限、搜索、分组、空态,自绘。键盘:Esc 关、↑↓ 移游标、Enter 选。纯逻辑可单用:`toGroups` / `filterGroups` / `toggleValue`。触发器支持 width / minWidth / maxWidth 约束宽度:定宽忽略另两者;内容超长则省略号 + hover 跑马灯。',
143
+ zh: 'Picker:单 / 多选、上限、搜索、分组、空态,自绘。键盘:Esc 关、↑↓ 移游标、Enter 选。纯逻辑可单用:`toGroups` / `filterGroups` / `toggleValue`。触发器支持 width / minWidth / maxWidth 约束宽度:定宽忽略另两者;内容超长则省略号 + hover 跑马灯。菜单里的选项超长同样省略 + hover 跑马灯,不会把菜单撑出横向滚动条。',
144
144
  en: 'Picker: single/multiple selection, cap, search, grouping, empty state — self-drawn. Keyboard: Esc closes, ↑↓ move the cursor, Enter selects. Logic reusable standalone: `toGroups` / `filterGroups` / `toggleValue`.',
145
145
  },
146
146
  {
@@ -359,12 +359,16 @@ const doc: DocTopic = {
359
359
  en: 'A generic shell for right-side columns — a **layout member**, not an overlay: it takes width and narrows the main area, so the caller puts it in their own flex root. Split of work: structure at the call site (children), visibility in state (`open`/`close` take only an id).',
360
360
  },
361
361
  {
362
- zh: '面板高度默认视口高;嵌在定高容器里时由调用方给 `--dshpc-dock-h`。不支持:同名多实例、tab 切换条、自动淘汰、浮层——标签切换请消费方在自己的面板内容里实现。',
363
- en: 'Panel height defaults to viewport height; in a fixed-height container the caller sets `--dshpc-dock-h`. Not supported: same-name duplicates, tab bars, auto-eviction, floating layers — tab switching belongs in the consumer’s own panel content.',
362
+ zh: '面板高度默认视口高;嵌在定高容器里时由调用方给 `--dshpc-dock-h`。不支持:同名多实例、tab 切换条、自动淘汰——标签切换请消费方在自己的面板内容里实现。(收起后的耳朵是独立 `fixed` 浮层,不是把面板变成浮层。)',
363
+ en: 'Panel height defaults to viewport height; in a fixed-height container the caller sets `--dshpc-dock-h`. Not supported: same-name duplicates, tab bars, auto-eviction — tab switching belongs in the consumer’s own panel content. (The collapsed ear is a standalone `fixed` overlay; the panel itself never floats.)',
364
364
  },
365
365
  {
366
- zh: '占宽契约:已开栏宽之和实时写进根元素 `--dshpc-page-inset-right`(拖拽逐帧更新,全关即移除),全屏遮罩据此让位;同页多个 dock 求和。',
367
- en: 'Width contract: the sum of open widths goes to `--dshpc-page-inset-right` on the root element (every frame while dragging, removed when all close), and full-screen masks yield to it; multiple docks on one page are summed.',
366
+ zh: '占宽契约:已开栏宽之和(外加开着时给主区滚动条留的 1px 缝,可用 `--dshpc-dock-gap` 调)实时写进根元素 `--dshpc-page-inset-right`(拖拽逐帧更新,全关即移除),全屏遮罩据此让位;同页多个 dock 求和。',
367
+ en: 'Width contract: the sum of open widths plus a 1px scrollbar gutter while open (tunable via `--dshpc-dock-gap`) goes to `--dshpc-page-inset-right` on the root element (every frame while dragging, removed when all close), and full-screen masks yield to it; multiple docks on one page are summed.',
368
+ },
369
+ {
370
+ zh: '收起 / 展开:`dock.collapse(id)` 让面板退出布局(立刻不占宽)、在右侧出一只固定耳朵;`dock.expand(id)` 把耳朵收回、按记忆宽度还原;`dock.isCollapsed(id)`。耳朵是垂直居中的小图标页签(不放文字),开合带滑入 / 收拢动效;耳朵是独立浮层,与分栏不是一体;`close` 不留耳朵。',
371
+ en: 'Collapse / expand: `dock.collapse(id)` takes the panel out of the layout (it stops taking width) and shows a fixed ear at the right edge; `dock.expand(id)` pulls the ear back and restores the remembered width; `dock.isCollapsed(id)`. The ear is a small icon-only tab at the vertical center, with slide/collapse animations; it is a standalone overlay, not part of the dock; `close` leaves no ear.',
368
372
  },
369
373
  ],
370
374
  api: [
package/docs/help/ui.md CHANGED
@@ -75,7 +75,7 @@ Segmented:`items`(必填)支持单选 / 多选,`size`(默认 lg;三
75
75
 
76
76
  > EN: Picker / WorkspacePicker / ModelPicker
77
77
 
78
- Picker:单 / 多选、上限、搜索、分组、空态,自绘。键盘:Esc 关、↑↓ 移游标、Enter 选。纯逻辑可单用:`toGroups` / `filterGroups` / `toggleValue`。触发器支持 width / minWidth / maxWidth 约束宽度:定宽忽略另两者;内容超长则省略号 + hover 跑马灯。
78
+ Picker:单 / 多选、上限、搜索、分组、空态,自绘。键盘:Esc 关、↑↓ 移游标、Enter 选。纯逻辑可单用:`toGroups` / `filterGroups` / `toggleValue`。触发器支持 width / minWidth / maxWidth 约束宽度:定宽忽略另两者;内容超长则省略号 + hover 跑马灯。菜单里的选项超长同样省略 + hover 跑马灯,不会把菜单撑出横向滚动条。
79
79
 
80
80
  > EN: Picker: single/multiple selection, cap, search, grouping, empty state — self-drawn. Keyboard: Esc closes, ↑↓ move the cursor, Enter selects. Logic reusable standalone: `toGroups` / `filterGroups` / `toggleValue`.
81
81
 
@@ -297,13 +297,17 @@ Modal 是自绘 overlay,不走 react-dom portal。
297
297
 
298
298
  > EN: A generic shell for right-side columns — a **layout member**, not an overlay: it takes width and narrows the main area, so the caller puts it in their own flex root. Split of work: structure at the call site (children), visibility in state (`open`/`close` take only an id).
299
299
 
300
- 面板高度默认视口高;嵌在定高容器里时由调用方给 `--dshpc-dock-h`。不支持:同名多实例、tab 切换条、自动淘汰、浮层——标签切换请消费方在自己的面板内容里实现。
300
+ 面板高度默认视口高;嵌在定高容器里时由调用方给 `--dshpc-dock-h`。不支持:同名多实例、tab 切换条、自动淘汰——标签切换请消费方在自己的面板内容里实现。(收起后的耳朵是独立 `fixed` 浮层,不是把面板变成浮层。)
301
301
 
302
- > EN: Panel height defaults to viewport height; in a fixed-height container the caller sets `--dshpc-dock-h`. Not supported: same-name duplicates, tab bars, auto-eviction, floating layers — tab switching belongs in the consumer’s own panel content.
302
+ > EN: Panel height defaults to viewport height; in a fixed-height container the caller sets `--dshpc-dock-h`. Not supported: same-name duplicates, tab bars, auto-eviction — tab switching belongs in the consumer’s own panel content. (The collapsed ear is a standalone `fixed` overlay; the panel itself never floats.)
303
303
 
304
- 占宽契约:已开栏宽之和实时写进根元素 `--dshpc-page-inset-right`(拖拽逐帧更新,全关即移除),全屏遮罩据此让位;同页多个 dock 求和。
304
+ 占宽契约:已开栏宽之和(外加开着时给主区滚动条留的 1px 缝,可用 `--dshpc-dock-gap` 调)实时写进根元素 `--dshpc-page-inset-right`(拖拽逐帧更新,全关即移除),全屏遮罩据此让位;同页多个 dock 求和。
305
305
 
306
- > EN: Width contract: the sum of open widths goes to `--dshpc-page-inset-right` on the root element (every frame while dragging, removed when all close), and full-screen masks yield to it; multiple docks on one page are summed.
306
+ > EN: Width contract: the sum of open widths plus a 1px scrollbar gutter while open (tunable via `--dshpc-dock-gap`) goes to `--dshpc-page-inset-right` on the root element (every frame while dragging, removed when all close), and full-screen masks yield to it; multiple docks on one page are summed.
307
+
308
+ 收起 / 展开:`dock.collapse(id)` 让面板退出布局(立刻不占宽)、在右侧出一只固定耳朵;`dock.expand(id)` 把耳朵收回、按记忆宽度还原;`dock.isCollapsed(id)`。耳朵是垂直居中的小图标页签(不放文字),开合带滑入 / 收拢动效;耳朵是独立浮层,与分栏不是一体;`close` 不留耳朵。
309
+
310
+ > EN: Collapse / expand: `dock.collapse(id)` takes the panel out of the layout (it stops taking width) and shows a fixed ear at the right edge; `dock.expand(id)` pulls the ear back and restores the remembered width; `dock.isCollapsed(id)`. The ear is a small icon-only tab at the vertical center, with slide/collapse animations; it is a standalone overlay, not part of the dock; `close` leaves no ear.
307
311
 
308
312
  | 参数 | 类型 | 默认 | 说明(zh) | 说明(en) |
309
313
  |---|---|---|---|---|
@@ -53,7 +53,7 @@ dsh-plugin-core/
53
53
  数据恒完整本地 ISO 到毫秒、**显示只到精度**;起始端 floor、结束端 ceil)
54
54
  - 「统一某类元素」的控件:`SectionHead` 等
55
55
  - 反馈件:`Modal` / `Loading` / `toast` / 空态
56
- - 布局基础:`PanelDock` / `DockPanel` / `createPanelDock`(**可停靠分栏容器**:多面板并存、按组名寻址、拖拽拉栏、宽度记忆;2026-10-20 拍板用此名,替代早先的 `SidebarLayout` / `SplitPane`)。只做右侧;组名与窗口一对一;默认上限 3,超限拒绝新开;不做 tab 切换 / 自动淘汰 / 浮动层 / 多份同名。**结构照成熟库口径写 children,`open/close` 只传 id,不把页面树塞进调用参数**
56
+ - 布局基础:`PanelDock` / `DockPanel` / `createPanelDock`(**可停靠分栏容器**:多面板并存、按组名寻址、拖拽拉栏、宽度记忆;2026-10-20 拍板用此名,替代早先的 `SidebarLayout` / `SplitPane`)。只做右侧;组名与窗口一对一;默认上限 3,超限拒绝新开;不做 tab 切换 / 自动淘汰 / 多份同名;**面板本身始终是布局成员,不做面板浮层**(2026-10-28 补:**收起** = 面板退出布局、另出右侧一只独立的 `position: fixed` 耳朵,点耳朵展开并还原宽度;关闭不留耳朵——耳朵是独立浮层,不是把面板变浮层)。**结构照成熟库口径写 children,`open/close` 只传 id,不把页面树塞进调用参数**
57
57
  - **通用控件是纯零件,数据由调用方传入**;**领域选择器例外**(2026-10-20 用户拍板反转):
58
58
  `ModelPicker` / `WorkspacePicker` 是「现成的包」,接线后**自己取数自己显示**,消费方不再拿数组传 props。
59
59
  接线两处、共用同一 path 常量:宿主 `serveModelCatalog(ctx,{path})`(`llm.listModels` 挂只读路由,
@@ -68,6 +68,14 @@ dsh-plugin-core/
68
68
  ### 2.4 adv.explorer
69
69
 
70
70
  - `FileBrowser` 面板 + 两命令式能力:`openFilePreview`(侧边栏预览,外壳 = 核心 `PanelDock`,2026-10-21 拍板不许自绘外壳 / 拖拽条)/ `pickWorkspaceFile`(锚定弹窗选文件,Promise 返回工作区相对路径),2026-10-20 移植自重做
71
+ - **接线归核心,调用方只给容器 + 路径**(2026-10-28 用户拍板):
72
+ - 读文件服务改由 `connectHost(ctx)` 一次接进来(`remote.workspaceFiles`,核心持有),
73
+ `openFilePreview` / `pickWorkspaceFile` 不再要求调用方传 `workspaceFiles`(传了以传入为准);
74
+ - `sessionId` 缺省由「路径 → 所属工作区 → 该区最近会话」解,匹配不出退「最近有会话的工作区」;
75
+ - `mount` 仍是一个元素(往哪行塞只有调用方知道),但**不必自己写成 flex**:核心加 `dshpc-dock-host`
76
+ 类并补 `display:flex`,关闭时还原;子项规则只让第一个非预览子项伸展,不要传 `document.body`;
77
+ - 依据:插件沙箱里没有 `fs`,读字节唯一通道是 ctx 注入的服务对象 ⇒ 服务只能「接线一次」交进来,
78
+ 不能每次调用各传一遍(这是权限边界,不是能力缺口)。
71
79
  - 控件纪律(2026-10-21):核心有的控件一律核心(`Button` ghost 面包屑 / `IconButton` / `Segmented` / `MarqueeText` / `PanelDock`);核心没有的那一项(▾ 选层浮层)严格按兄弟项目度量照抄
72
80
  - 选工作区(`WorkspacePicker`)在 `ui`,不在这里;`FilePicker` 已删(2026-10-20)
73
81
 
@@ -152,7 +160,7 @@ dsh-plugin-core/
152
160
  | ui / ModelPicker | `variant: 'grouped' \| 'cascade'`(分组:一个下拉、完全独立 / 联动:供应商与模型两个下拉联动;2026-10-20 用户拍板两形态都要);**两种形态 onChange 都发最终模型 value**;「默认模型」选项默认提供(`allowDefault:false` 关),选中发 `''`。默认读 connectHost 喂入的真实目录,`groups` 仅作覆盖。**禁止用数字或无意义名** |
153
161
  | ui / Picker | `mode: 'single' \| 'multiple'`、`max`(到上限已选项仍可反选)、`searchable`(搜索框开关)、`icon`(触发器前置 icon)、选项级 `icon`、`hint`(问号提示内置)、分组、空态、降级 |
154
162
  | ui / DateTimePicker | `mode: 'single' \| 'range'`、`precision: 'day' \| 'hour' \| 'minute' \| 'second'`(同时管弹层步进、显示截断与默认宽度);single 传 `string \| null`、range 传 `[start, end] \| null`(本地 ISO 到毫秒);草稿态「确定」才 onChange,没选日期不传数据;起端补零 / 止端补满(day ⇒ 止 `23:59:59.999`) |
155
- | explorer | `WorkspaceFilesFace` 由插件注入(`list` / `stat` / `read` 最小面),组件不抓宿主全局;对外 = 两命令式能力 `openFilePreview`(侧边栏预览)+ `pickWorkspaceFile`(Promise 选文件,回传工作区相对路径),共用同一 `FileBrowser` 面板(2026-10-20 拍板) |
163
+ | explorer | `WorkspaceFilesFace`(`list` / `stat` / `read` 最小面)由 `connectHost(ctx)` 接线后核心自己持有,组件不抓宿主全局、调用方也不逐次传(2026-10-28 改);对外 = 两命令式能力 `openFilePreview({ mount, path })`(侧边栏预览)+ `pickWorkspaceFile({ anchor })`(Promise 选文件,回传工作区相对路径),共用同一 `FileBrowser` 面板(2026-10-20 拍板) |
156
164
  | explorer / WorkspacePicker | `WorkspacePicker({ mode, max, onChange, allowDefault, defaultLabel, … })` —— **无数据参数**:connectHost 接线后自动订官方 `workspaces` 服务快照,选中值为 `workspaceId`;「所有工作区」默认项默认提供、选中发 `''`(2026-10-20) |
157
165
  | session | `SessionPreview({ sessionId, source, variant })` —— `source` = 取数能力接口(会话预览内部有交互:传输文件等,光有静态消息流不够) |
158
166
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-core",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "packageManager": "pnpm@12.3.4",
5
5
  "description": "Shared base for DSH plugins: design tokens, UI controls, utils, workspace explorer, session preview",
6
6
  "keywords": [