dsh-plugin-core 0.27.0 → 0.29.0
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.
- package/dist/explorer/FileBrowser.d.ts +4 -1
- package/dist/explorer/FileBrowser.d.ts.map +1 -1
- package/dist/explorer/FileBrowser.js.map +1 -1
- package/dist/explorer/crumb-nav.d.ts.map +1 -1
- package/dist/explorer/crumb-nav.js +3 -0
- package/dist/explorer/crumb-nav.js.map +1 -1
- package/dist/explorer/open.d.ts +5 -4
- package/dist/explorer/open.d.ts.map +1 -1
- package/dist/explorer/open.js +22 -7
- package/dist/explorer/open.js.map +1 -1
- package/dist/session/SessionViewModal.d.ts.map +1 -1
- package/dist/session/SessionViewModal.js +63 -9
- package/dist/session/SessionViewModal.js.map +1 -1
- package/dist/session/index.d.ts +1 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +1 -0
- package/dist/session/index.js.map +1 -1
- package/dist/session/mirror/BashRow.d.ts +14 -0
- package/dist/session/mirror/BashRow.d.ts.map +1 -0
- package/dist/session/mirror/BashRow.js +143 -0
- package/dist/session/mirror/BashRow.js.map +1 -0
- package/dist/session/mirror/ChangedFileDiff.d.ts +4 -1
- package/dist/session/mirror/ChangedFileDiff.d.ts.map +1 -1
- package/dist/session/mirror/ChangedFileDiff.js +6 -1
- package/dist/session/mirror/ChangedFileDiff.js.map +1 -1
- package/dist/session/mirror/GenericCommandCard.d.ts +58 -1
- package/dist/session/mirror/GenericCommandCard.d.ts.map +1 -1
- package/dist/session/mirror/GenericCommandCard.js +82 -14
- package/dist/session/mirror/GenericCommandCard.js.map +1 -1
- package/dist/session/mirror/MessageItem.d.ts +3 -0
- package/dist/session/mirror/MessageItem.d.ts.map +1 -1
- package/dist/session/mirror/MessageItem.js +9 -2
- package/dist/session/mirror/MessageItem.js.map +1 -1
- package/dist/session/open-review.d.ts +13 -0
- package/dist/session/open-review.d.ts.map +1 -0
- package/dist/session/open-review.js +27 -0
- package/dist/session/open-review.js.map +1 -0
- package/dist/session/session-css.generated.d.ts +1 -1
- package/dist/session/session-css.generated.d.ts.map +1 -1
- package/dist/session/session-css.generated.js +1 -1
- package/dist/session/session-css.generated.js.map +1 -1
- package/dist/utils/i18n.d.ts +1 -1
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +6 -0
- package/dist/utils/i18n.js.map +1 -1
- package/docs/design/style.md +1 -0
- package/docs/help/explorer.doc.ts +16 -12
- package/docs/help/explorer.md +13 -9
- package/docs/help/integration.doc.ts +5 -3
- package/docs/help/integration.md +5 -3
- package/docs/help/session.doc.ts +13 -6
- package/docs/help/session.md +13 -6
- package/docs/help/ui.doc.ts +1 -1
- package/docs/help/ui.md +1 -1
- package/docs/requirements.md +5 -1
- package/package.json +1 -1
package/dist/utils/i18n.js
CHANGED
|
@@ -126,6 +126,8 @@ const DICT = {
|
|
|
126
126
|
chatDeepDivingFor: '深度求索中,用时 {duration} ···',
|
|
127
127
|
reasoningRunning: '运行中',
|
|
128
128
|
jsonTruncated: '… 已截断,共 {total} 字符',
|
|
129
|
+
referenceSummary: '引用会话 · {labels}',
|
|
130
|
+
referenceSeparator: '、',
|
|
129
131
|
thinkLabel: '思考',
|
|
130
132
|
durationSecondUnit: '秒',
|
|
131
133
|
durationMinuteUnit: '分',
|
|
@@ -197,6 +199,7 @@ const DICT = {
|
|
|
197
199
|
toolTitleGeneric: '工具调用',
|
|
198
200
|
toolTitleSearch: '搜索',
|
|
199
201
|
toolInputLabel: '输入',
|
|
202
|
+
toolPreparingContent: '{kilobytes} KB',
|
|
200
203
|
toolOutputLabel: '输出',
|
|
201
204
|
rowPreparing: '正在准备调用',
|
|
202
205
|
rowRunning: '运行中',
|
|
@@ -414,6 +417,8 @@ const DICT = {
|
|
|
414
417
|
chatDeepDivingFor: 'Deep diving for {duration} ···',
|
|
415
418
|
reasoningRunning: 'Running',
|
|
416
419
|
jsonTruncated: '… truncated, {total} characters total',
|
|
420
|
+
referenceSummary: 'Referenced session · {labels}',
|
|
421
|
+
referenceSeparator: ', ',
|
|
417
422
|
thinkLabel: 'Think',
|
|
418
423
|
durationSecondUnit: 's',
|
|
419
424
|
durationMinuteUnit: 'm ',
|
|
@@ -485,6 +490,7 @@ const DICT = {
|
|
|
485
490
|
toolTitleGeneric: 'Tool call',
|
|
486
491
|
toolTitleSearch: 'Search',
|
|
487
492
|
toolInputLabel: 'IN',
|
|
493
|
+
toolPreparingContent: '{kilobytes} KB',
|
|
488
494
|
toolOutputLabel: 'OUT',
|
|
489
495
|
rowPreparing: 'Preparing tool call',
|
|
490
496
|
rowRunning: 'Running',
|
package/dist/utils/i18n.js.map
CHANGED
|
@@ -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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"}
|
package/docs/design/style.md
CHANGED
|
@@ -202,6 +202,7 @@ one-liner; `--dshpc-dock-gap` was removed on 2026-11-02. A test enforces the bor
|
|
|
202
202
|
- 组件里**不许**再写这四个值;要改外观只改 `panel.css`。
|
|
203
203
|
- **定位不归档位管**:Modal 居中、选文件弹窗贴锚点并上下翻转、菜单挂触发器下方,各自实现。
|
|
204
204
|
- 关闭钮只有一枚 `.dshpc-panel__close`;旧类名 `.dshpc-overlay-head__close` 保留作别名(消费方覆盖不失效)。
|
|
205
|
+
- **面板关闭归壳**(2026-11-04 定):`PanelDock` / `SideSheet` 的 ✕ 由壳出;内容组件不画关,只在右上留 28px 让位(6 偏移 + 20 钮 + 2 呼吸)。`FileBrowser` 的 `onClose` 只服务无壳容器(picker 弹窗),dock 场景不传。
|
|
205
206
|
- 层序只许用 `--dshpc-z-panel`(面板本体)/ `--dshpc-z-popmenu`(叠在面板上的菜单与其透明遮罩),不许写字面量。
|
|
206
207
|
- **不并入三档**:`PanelDock` 与 `SideSheet` 属贴边家族(`side-panel.css` 的 `.dshpc-side-surface`,
|
|
207
208
|
2026-11-02 拍板两者皮肤一模一样),一个是布局成员、一个是贴边抽屉,都不是浮层。
|
|
@@ -12,10 +12,10 @@ serveFsRoute(ctx, { path: FS_PATH })
|
|
|
12
12
|
connectHost(ctx)
|
|
13
13
|
connectFs({ path: FS_PATH })
|
|
14
14
|
|
|
15
|
-
//
|
|
16
|
-
openFilePreview({ mount, path: '/abs/ledger' })
|
|
17
|
-
openFilePreview({ mount, path: 'docs/README.md' })
|
|
18
|
-
openFilePreview({ mount })
|
|
15
|
+
// 右侧分栏预览(占宽度、挤窄主区):一个落点 + 一个路径就够
|
|
16
|
+
openFilePreview({ mount: pageRowEl, path: '/abs/ledger' }) // 文件夹 ⇒ 目录树;文件 ⇒ 直接预览
|
|
17
|
+
openFilePreview({ mount: '#page-row', path: 'docs/README.md' }) // 落点也可以给选择器;相对路径也收(相对谁见下)
|
|
18
|
+
openFilePreview({ mount: '#page-row' }) // 不给路径 ⇒ 根节点(工作区清单 + 盘符)
|
|
19
19
|
|
|
20
20
|
// 锚定弹窗选文件(Promise 返回**绝对路径**,不自己挂 dock)
|
|
21
21
|
const r = await pickWorkspaceFile({ anchor, filter: { exts: ['md'] } })
|
|
@@ -42,8 +42,12 @@ const doc: DocTopic = {
|
|
|
42
42
|
en: '**Core does the wiring, but with two calls**: `serveFsRoute({ path })` on the host side and `connectFs({ path })` with the same constant on the client side (`connectHost(ctx)` still covers the workspace snapshot). Browsing needs **no session**.',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
zh: '
|
|
46
|
-
en: '
|
|
45
|
+
zh: '落点只给一个:页面里**包住主区**的那个(核心会补成 flex 行、让主区伸展,关闭时还原)。给元素或选择器(`\'#page-row\'`)都行,消费方不必存 ref;selector 解析不到就放弃本次打开(不会回落 body)。不要传 `document.body` 再自己套 fixed——那是浮层,不是分栏。',
|
|
46
|
+
en: 'Give exactly one mount: the element wrapping the main area (core makes it a flex row and lets the main area stretch, restoring it on close). Either an element or a selector (`\'#page-row\'`) works, so no ref bookkeeping is needed; an unresolvable selector abandons the open (never falls back to `body`). Never pass `document.body` with your own fixed positioning — that is an overlay, not a split.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
zh: '**关闭归面板壳**(2026-11-04):文件与 `content` 两种模式都由 dock 右上角的浮动 ✕ 关闭(Esc 同效),内容组件不画关闭钮;`FileBrowser` 的 `onClose` 只服务没有壳的选文件弹窗。`content` 与 `path` 二选一,同传时忽略 `path` 并 warn。',
|
|
50
|
+
en: '**Closing belongs to the dock shell** (2026-11-04): both file and `content` modes close via the floating ✕ at the panel’s top-right (Esc works too); content components draw no close button. `FileBrowser.onClose` only serves the headerless picker popover. `content` and `path` are mutually exclusive — passing both ignores `path` with a warning.',
|
|
47
51
|
},
|
|
48
52
|
{
|
|
49
53
|
zh: '面包屑口径不变:路径所属工作区名作根名,其下按相对层级展开。▾ 下拉**根层置顶**(其余仍列各工作区):POSIX 是一条「根目录」,**Windows 没有根目录这东西,列的是盘符**(`C:/`、`D:/`…,由宿主 `op:roots` 探出来)。点其他工作区 = 直接列该区根目录(不需要会话)。',
|
|
@@ -79,18 +83,18 @@ const doc: DocTopic = {
|
|
|
79
83
|
type: 'OpenFilePreviewOptions => FilePreviewHandle',
|
|
80
84
|
def: '—',
|
|
81
85
|
desc: {
|
|
82
|
-
zh: '在右侧分栏打开文件 / 文件夹预览,返回可关闭它的句柄。预览内容二选一:`path`(核心解析并渲染)或 `content
|
|
83
|
-
en: '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)',
|
|
86
|
+
zh: '在右侧分栏打开文件 / 文件夹预览,返回可关闭它的句柄。预览内容二选一:`path`(核心解析并渲染)或 `content`(由调用方给内容);两种模式的 ✕ 都在面板右上角,由 dock 提供',
|
|
87
|
+
en: '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); in both modes the ✕ sits at the panel’s top-right, provided by the dock',
|
|
84
88
|
},
|
|
85
89
|
},
|
|
86
90
|
{
|
|
87
91
|
name: 'opts.mount',
|
|
88
|
-
type: 'HTMLElement',
|
|
92
|
+
type: 'HTMLElement | string',
|
|
89
93
|
def: '—',
|
|
90
94
|
required: '是',
|
|
91
95
|
desc: {
|
|
92
|
-
zh: '
|
|
93
|
-
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`',
|
|
96
|
+
zh: '页面里**包住主区**的那个元素,或指向它的选择器(`\'#page-row\'`);不必自己写 flex(核心补成 flex 行并让主区伸展,关闭时还原)。选择器解析不到 ⇒ 返回 `null` 并 warn,不回落 body。不要传 `document.body`',
|
|
97
|
+
en: 'The element wrapping the main area, or a selector pointing at it (`\'#page-row\'`); no flex needed (core turns it into a flex row, stretches the main area, and restores it on close). An unresolvable selector ⇒ `null` + a warning, never a `body` fallback. Never `document.body`',
|
|
94
98
|
},
|
|
95
99
|
},
|
|
96
100
|
{
|
|
@@ -115,7 +119,7 @@ const doc: DocTopic = {
|
|
|
115
119
|
name: 'opts.content',
|
|
116
120
|
type: '() => ReactNode',
|
|
117
121
|
def: '—',
|
|
118
|
-
desc: { zh: '自定义预览内容,塞进同一个右侧 dock
|
|
122
|
+
desc: { zh: '自定义预览内容,塞进同一个右侧 dock;平时优先用领域入口(如 `openSessionReview`)。关闭钮由 dock 提供,内容不画 ✕;与 `path` 二选一', en: 'Custom preview body rendered in the same dock; prefer a domain entry such as `openSessionReview` when one exists. The dock provides the close button — content draws no ✕; mutually exclusive with `path`' },
|
|
119
123
|
},
|
|
120
124
|
{
|
|
121
125
|
name: 'opts.officeToPdf',
|
package/docs/help/explorer.md
CHANGED
|
@@ -18,9 +18,13 @@
|
|
|
18
18
|
|
|
19
19
|
> EN: **Core does the wiring, but with two calls**: `serveFsRoute({ path })` on the host side and `connectFs({ path })` with the same constant on the client side (`connectHost(ctx)` still covers the workspace snapshot). Browsing needs **no session**.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
落点只给一个:页面里**包住主区**的那个(核心会补成 flex 行、让主区伸展,关闭时还原)。给元素或选择器(`'#page-row'`)都行,消费方不必存 ref;selector 解析不到就放弃本次打开(不会回落 body)。不要传 `document.body` 再自己套 fixed——那是浮层,不是分栏。
|
|
22
22
|
|
|
23
|
-
> EN:
|
|
23
|
+
> EN: Give exactly one mount: the element wrapping the main area (core makes it a flex row and lets the main area stretch, restoring it on close). Either an element or a selector (`'#page-row'`) works, so no ref bookkeeping is needed; an unresolvable selector abandons the open (never falls back to `body`). Never pass `document.body` with your own fixed positioning — that is an overlay, not a split.
|
|
24
|
+
|
|
25
|
+
**关闭归面板壳**(2026-11-04):文件与 `content` 两种模式都由 dock 右上角的浮动 ✕ 关闭(Esc 同效),内容组件不画关闭钮;`FileBrowser` 的 `onClose` 只服务没有壳的选文件弹窗。`content` 与 `path` 二选一,同传时忽略 `path` 并 warn。
|
|
26
|
+
|
|
27
|
+
> EN: **Closing belongs to the dock shell** (2026-11-04): both file and `content` modes close via the floating ✕ at the panel’s top-right (Esc works too); content components draw no close button. `FileBrowser.onClose` only serves the headerless picker popover. `content` and `path` are mutually exclusive — passing both ignores `path` with a warning.
|
|
24
28
|
|
|
25
29
|
面包屑口径不变:路径所属工作区名作根名,其下按相对层级展开。▾ 下拉**根层置顶**(其余仍列各工作区):POSIX 是一条「根目录」,**Windows 没有根目录这东西,列的是盘符**(`C:/`、`D:/`…,由宿主 `op:roots` 探出来)。点其他工作区 = 直接列该区根目录(不需要会话)。
|
|
26
30
|
|
|
@@ -54,10 +58,10 @@ serveFsRoute(ctx, { path: FS_PATH })
|
|
|
54
58
|
connectHost(ctx)
|
|
55
59
|
connectFs({ path: FS_PATH })
|
|
56
60
|
|
|
57
|
-
//
|
|
58
|
-
openFilePreview({ mount, path: '/abs/ledger' })
|
|
59
|
-
openFilePreview({ mount, path: 'docs/README.md' })
|
|
60
|
-
openFilePreview({ mount })
|
|
61
|
+
// 右侧分栏预览(占宽度、挤窄主区):一个落点 + 一个路径就够
|
|
62
|
+
openFilePreview({ mount: pageRowEl, path: '/abs/ledger' }) // 文件夹 ⇒ 目录树;文件 ⇒ 直接预览
|
|
63
|
+
openFilePreview({ mount: '#page-row', path: 'docs/README.md' }) // 落点也可以给选择器;相对路径也收(相对谁见下)
|
|
64
|
+
openFilePreview({ mount: '#page-row' }) // 不给路径 ⇒ 根节点(工作区清单 + 盘符)
|
|
61
65
|
|
|
62
66
|
// 锚定弹窗选文件(Promise 返回**绝对路径**,不自己挂 dock)
|
|
63
67
|
const r = await pickWorkspaceFile({ anchor, filter: { exts: ['md'] } })
|
|
@@ -74,11 +78,11 @@ await pickWorkspaceFile({ anchor, placement: 'left-start' }) // 左侧、顶
|
|
|
74
78
|
|
|
75
79
|
| 参数 | 类型 | 必填 | 默认 | 说明(zh) | 说明(en) |
|
|
76
80
|
|---|---|---|---|---|---|
|
|
77
|
-
| `openFilePreview(opts)` | `OpenFilePreviewOptions => FilePreviewHandle` | — | — | 在右侧分栏打开文件 / 文件夹预览,返回可关闭它的句柄。预览内容二选一:`path`(核心解析并渲染)或 `content
|
|
78
|
-
| `opts.mount` | `HTMLElement` | 是 | — |
|
|
81
|
+
| `openFilePreview(opts)` | `OpenFilePreviewOptions => FilePreviewHandle` | — | — | 在右侧分栏打开文件 / 文件夹预览,返回可关闭它的句柄。预览内容二选一:`path`(核心解析并渲染)或 `content`(由调用方给内容);两种模式的 ✕ 都在面板右上角,由 dock 提供 | 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); in both modes the ✕ sits at the panel’s top-right, provided by the dock |
|
|
82
|
+
| `opts.mount` | `HTMLElement \| string` | 是 | — | 页面里**包住主区**的那个元素,或指向它的选择器(`'#page-row'`);不必自己写 flex(核心补成 flex 行并让主区伸展,关闭时还原)。选择器解析不到 ⇒ 返回 `null` 并 warn,不回落 body。不要传 `document.body` | The element wrapping the main area, or a selector pointing at it (`'#page-row'`); no flex needed (core turns it into a flex row, stretches the main area, and restores it on close). An unresolvable selector ⇒ `null` + a warning, never a `body` fallback. Never `document.body` |
|
|
79
83
|
| `opts.sessionId` | `string` | — | — | **只在两种情况下需要**:① 相对路径的基准工作区;② Office 预览(转 PDF 要一条有效会话,缺省由核心取最近有会话的工作区) | Needed in exactly two cases: (1) the base workspace for a relative path; (2) Office preview (conversion needs one valid session; core falls back to the most recent workspace with one) |
|
|
80
84
|
| `opts.path` | `string` | — | — | 绝对路径或工作区相对路径(相对路径要有可解析的基准,否则返回 `null` 并 warn);不传 ⇒ 根节点。与 `content` 二选一 | Absolute or workspace-relative (a relative one needs a resolvable base, else `null` + a warning); omitted ⇒ the root node. Mutually exclusive with `content` |
|
|
81
|
-
| `opts.content` | `() => ReactNode` | — | — | 自定义预览内容,塞进同一个右侧 dock
|
|
85
|
+
| `opts.content` | `() => ReactNode` | — | — | 自定义预览内容,塞进同一个右侧 dock;平时优先用领域入口(如 `openSessionReview`)。关闭钮由 dock 提供,内容不画 ✕;与 `path` 二选一 | Custom preview body rendered in the same dock; prefer a domain entry such as `openSessionReview` when one exists. The dock provides the close button — content draws no ✕; mutually exclusive with `path` |
|
|
82
86
|
| `opts.officeToPdf` | `OfficeToPdfFace` | — | — | Office 转 PDF 能力;缺失则该格式走「不支持」而不是报错 | Office→PDF capability; without it that format shows "unsupported" instead of erroring |
|
|
83
87
|
| `opts.rootName` | `string` | — | — | 兜底显示名(路径匹配不出工作区时用) | Fallback display name, used when no workspace matches the path |
|
|
84
88
|
| `pickWorkspaceFile(opts)` | `PickWorkspaceFileOptions => Promise<PickedPath \| null>` | — | — | 锚定按钮弹出模态选文件,解析出 `{ path, isDir, workspaceRel?, workspace? }`;`path` 是**绝对路径** | Anchored modal picker resolving `{ path, isDir, workspaceRel?, workspace? }`; `path` is **absolute** |
|
|
@@ -36,6 +36,7 @@ serveFsRoute(ctx, { path: FS_PATH })
|
|
|
36
36
|
connectFs({ path: FS_PATH })
|
|
37
37
|
|
|
38
38
|
// 预览某文件:右侧分栏(挤窄 row 左边的主区,不是浮在上面);绝对 / 相对都收
|
|
39
|
+
// 落点给元素或选择器都行(openFilePreview({ mount: '#page-row' })),不必存 ref
|
|
39
40
|
openFilePreview({ mount: pageRowEl, path: '/abs/ws/docs/requirements.md' })
|
|
40
41
|
|
|
41
42
|
// 让用户选:锚定按钮旁弹模态,Promise 返回 { path: 绝对路径, isDir, workspaceRel?, workspace? }
|
|
@@ -50,7 +51,8 @@ if (view !== null) {
|
|
|
50
51
|
sessionId, view,
|
|
51
52
|
// 关闭必须释放 retain 引用
|
|
52
53
|
onClose: () => { view.dispose(); setOpen(false) },
|
|
53
|
-
|
|
54
|
+
// 文件出口:已经点开的那条会话 id 会作为第二参传进来(相对路径 / Office 都按它定位)
|
|
55
|
+
onOpenFile: (path, sid) => openFilePreview({ mount: pageRowEl, path, sessionId: sid }),
|
|
54
56
|
})
|
|
55
57
|
}`
|
|
56
58
|
const cleanup = `kit.dispose() // 撤掉 <style> 标签并清空登记域(插件卸载 / HMR)`
|
|
@@ -74,8 +76,8 @@ const doc: DocTopic = {
|
|
|
74
76
|
{ zh: '§2 用一个控件', en: '§2 Use a control' },
|
|
75
77
|
{ zh: '§3 用通用方法', en: '§3 Use helpers' },
|
|
76
78
|
{
|
|
77
|
-
zh: '§4 接文件浏览:`mount` 必填(预览面板是布局成员,占宽挤窄主区),传页面那层 flex
|
|
78
|
-
en: '§4 Wire file browsing: `mount` is required (the preview panel is a layout member that takes width); pass the page’s flex row
|
|
79
|
+
zh: '§4 接文件浏览:`mount` 必填(预览面板是布局成员,占宽挤窄主区),传页面那层 flex 行——元素或选择器都行,解析不到就放弃、不回落 body;数据面要在宿主 `serveFsRoute` + client `connectFs` 用同一个 path 常量接上,浏览本身不需要会话。',
|
|
80
|
+
en: '§4 Wire file browsing: `mount` is required (the preview panel is a layout member that takes width); pass the page’s flex row — an element or a selector, and an unresolvable selector abandons the open instead of falling back to `body`. Wire the data face with the same path constant on both sides (`serveFsRoute` / `connectFs`) — browsing itself needs no session.',
|
|
79
81
|
},
|
|
80
82
|
{
|
|
81
83
|
zh: '§5 接会话预览:`openSessionView` 返回 `null` 表示该会话不可解析;拿到 view 后交给 `SessionViewModal`,关闭时记得 `dispose()`。',
|
package/docs/help/integration.md
CHANGED
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
|
|
29
29
|
> EN: §3 Use helpers
|
|
30
30
|
|
|
31
|
-
§4 接文件浏览:`mount` 必填(预览面板是布局成员,占宽挤窄主区),传页面那层 flex
|
|
31
|
+
§4 接文件浏览:`mount` 必填(预览面板是布局成员,占宽挤窄主区),传页面那层 flex 行——元素或选择器都行,解析不到就放弃、不回落 body;数据面要在宿主 `serveFsRoute` + client `connectFs` 用同一个 path 常量接上,浏览本身不需要会话。
|
|
32
32
|
|
|
33
|
-
> EN: §4 Wire file browsing: `mount` is required (the preview panel is a layout member that takes width); pass the page’s flex row
|
|
33
|
+
> EN: §4 Wire file browsing: `mount` is required (the preview panel is a layout member that takes width); pass the page’s flex row — an element or a selector, and an unresolvable selector abandons the open instead of falling back to `body`. Wire the data face with the same path constant on both sides (`serveFsRoute` / `connectFs`) — browsing itself needs no session.
|
|
34
34
|
|
|
35
35
|
§5 接会话预览:`openSessionView` 返回 `null` 表示该会话不可解析;拿到 view 后交给 `SessionViewModal`,关闭时记得 `dispose()`。
|
|
36
36
|
|
|
@@ -88,6 +88,7 @@ serveFsRoute(ctx, { path: FS_PATH })
|
|
|
88
88
|
connectFs({ path: FS_PATH })
|
|
89
89
|
|
|
90
90
|
// 预览某文件:右侧分栏(挤窄 row 左边的主区,不是浮在上面);绝对 / 相对都收
|
|
91
|
+
// 落点给元素或选择器都行(openFilePreview({ mount: '#page-row' })),不必存 ref
|
|
91
92
|
openFilePreview({ mount: pageRowEl, path: '/abs/ws/docs/requirements.md' })
|
|
92
93
|
|
|
93
94
|
// 让用户选:锚定按钮旁弹模态,Promise 返回 { path: 绝对路径, isDir, workspaceRel?, workspace? }
|
|
@@ -105,7 +106,8 @@ if (view !== null) {
|
|
|
105
106
|
sessionId, view,
|
|
106
107
|
// 关闭必须释放 retain 引用
|
|
107
108
|
onClose: () => { view.dispose(); setOpen(false) },
|
|
108
|
-
|
|
109
|
+
// 文件出口:已经点开的那条会话 id 会作为第二参传进来(相对路径 / Office 都按它定位)
|
|
110
|
+
onOpenFile: (path, sid) => openFilePreview({ mount: pageRowEl, path, sessionId: sid }),
|
|
109
111
|
})
|
|
110
112
|
}
|
|
111
113
|
```
|
package/docs/help/session.doc.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// session 子包的使用帮助 —— 真源(TS 数据模块)。内容全在此一处,demo 与 md 都从这份派生。
|
|
2
2
|
import type { DocTopic } from '../design/doc-format.js'
|
|
3
3
|
|
|
4
|
-
const usage = `import { openSessionView, SessionViewModal } from 'dsh-plugin-core/session'
|
|
4
|
+
const usage = `import { openSessionView, openSessionReview, SessionViewModal } from 'dsh-plugin-core/session'
|
|
5
5
|
|
|
6
6
|
// 宿主服务由调用方注入:sessions ← dsh-api-session-controller、
|
|
7
7
|
// uiConversation ← dsh-client-ui-conversation
|
|
@@ -21,7 +21,10 @@ if (view !== null) {
|
|
|
21
21
|
await hostContinue(child, message)
|
|
22
22
|
openHostSession(child)
|
|
23
23
|
},
|
|
24
|
-
|
|
24
|
+
// 文件打开出口:给一个落点即可(元素或选择器),核心自带右侧分栏
|
|
25
|
+
onOpenFile: (path, sid) => openFilePreview({ mount: '#page-row', path, sessionId: sid }),
|
|
26
|
+
// 变更文件审阅:一行打开那次改动的 diff(面板 / 关闭钮全归核心)
|
|
27
|
+
onOpenReview: (locator) => openSessionReview({ mount: '#page-row', locator }),
|
|
25
28
|
archived, // 是否已归档
|
|
26
29
|
t, // 可选,覆盖文案
|
|
27
30
|
})
|
|
@@ -37,7 +40,7 @@ const dataChain = `// 数据链(越往上越早):
|
|
|
37
40
|
|
|
38
41
|
const doc: DocTopic = {
|
|
39
42
|
title: { zh: 'session —— 会话预览', en: 'session — session preview' },
|
|
40
|
-
exports: ['SessionViewModal', 'openSessionView'],
|
|
43
|
+
exports: ['SessionViewModal', 'openSessionView', 'openSessionReview', 'ChangedFileDiff'],
|
|
41
44
|
sections: [
|
|
42
45
|
{
|
|
43
46
|
id: 'session',
|
|
@@ -56,8 +59,12 @@ const doc: DocTopic = {
|
|
|
56
59
|
en: 'The snapshot is read-only, so you cannot type inside the dialog. Continuing means `forkSession` + `openHostSession`; the staging input’s confirm goes through `onContinue` (fork + first turn + navigate).',
|
|
57
60
|
},
|
|
58
61
|
{
|
|
59
|
-
zh: '文件出口只有一个:工具卡路径、行内引用、交付卡都走 `onOpenFile
|
|
60
|
-
en: 'There is exactly one file exit: tool-card paths, inline mentions and delivered cards all go through `onOpenFile`; without it links degrade to plain text.
|
|
62
|
+
zh: '文件出口只有一个:工具卡路径、行内引用、交付卡都走 `onOpenFile`;不传则链接降级为纯文本(可以点但没有出口,不是坏了)。自己已有预览面的,在回调里调你自己的(核心一个 DOM 都不碰);没有的,一行接上核心自带的右侧分栏:`onOpenFile: (path, sid) => openFilePreview({ mount: \'#page-row\', path, sessionId: sid })`——落点给元素或选择器都行,弹窗不需要任何遮罩参数。',
|
|
63
|
+
en: 'There is exactly one file exit: tool-card paths, inline mentions and delivered cards all go through `onOpenFile`; without it links degrade to plain text (clickable-looking but no exit — not a break). If you already own a preview surface, call yours inside the callback (core touches no DOM); otherwise wire core’s dock in one line: `onOpenFile: (path, sid) => openFilePreview({ mount: \'#page-row\', path, sessionId: sid })` — the mount takes an element or a selector, and the dialog needs no mask props.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
zh: '变更文件的审阅出口是 `onOpenReview`,落点用 `openSessionReview({ mount, locator })` 一行接上:`locator`(sessionId / seq / index / display)到 diff 的拼装归会话域,调用方不挑组件、不塞节点、不补 ✕。面板关闭钮由 dock 出;`ChangedFileDiff.onClose` 只给自带壳的容器,不是关面板的手段。',
|
|
67
|
+
en: 'The review exit for changed files is `onOpenReview`; wire it with one line, `openSessionReview({ mount, locator })`. Turning the locator (sessionId / seq / index / display) into a diff belongs to the session domain — pick no components, pass no nodes, add no ✕. The panel close belongs to the dock; `ChangedFileDiff.onClose` is for containers that own their own chrome, not a way to close the panel.',
|
|
61
68
|
},
|
|
62
69
|
{
|
|
63
70
|
zh: '限制:官方样式未注入时回退自绘观感(功能不受影响);长会话一次全渲染,用「加载更早记录」向前翻页;👍👎 反馈走官方 slots,弹窗没有该插槽。',
|
|
@@ -137,7 +144,7 @@ const doc: DocTopic = {
|
|
|
137
144
|
name: 'onOpenReview',
|
|
138
145
|
type: '(locator: ChangedFileReviewLocator) => void',
|
|
139
146
|
def: '—',
|
|
140
|
-
desc: { zh: '变更文件的审阅出口(等价官方 openReview
|
|
147
|
+
desc: { zh: '变更文件的审阅出口(等价官方 openReview);落点用 `openSessionReview({ mount, locator })` 一行接上;缺省 = 变更卡整张不可点', en: 'Review exit for changed files (equals official openReview); wire it with `openSessionReview({ mount, locator })`; absent = the change card is not clickable' },
|
|
141
148
|
},
|
|
142
149
|
{ name: 't', type: 'Translate', def: '内置', desc: { zh: '覆盖文案(内置字典已含全部会话文案,中英)', en: 'Override copy (the built-in dictionary has all session copy, zh+en)' } },
|
|
143
150
|
],
|
package/docs/help/session.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> EN: session — session preview
|
|
6
6
|
|
|
7
|
-
导出:SessionViewModal、openSessionView
|
|
7
|
+
导出:SessionViewModal、openSessionView、openSessionReview、ChangedFileDiff
|
|
8
8
|
|
|
9
9
|
## 会话预览
|
|
10
10
|
|
|
@@ -22,9 +22,13 @@
|
|
|
22
22
|
|
|
23
23
|
> EN: The snapshot is read-only, so you cannot type inside the dialog. Continuing means `forkSession` + `openHostSession`; the staging input’s confirm goes through `onContinue` (fork + first turn + navigate).
|
|
24
24
|
|
|
25
|
-
文件出口只有一个:工具卡路径、行内引用、交付卡都走 `onOpenFile
|
|
25
|
+
文件出口只有一个:工具卡路径、行内引用、交付卡都走 `onOpenFile`;不传则链接降级为纯文本(可以点但没有出口,不是坏了)。自己已有预览面的,在回调里调你自己的(核心一个 DOM 都不碰);没有的,一行接上核心自带的右侧分栏:`onOpenFile: (path, sid) => openFilePreview({ mount: '#page-row', path, sessionId: sid })`——落点给元素或选择器都行,弹窗不需要任何遮罩参数。
|
|
26
26
|
|
|
27
|
-
> EN: There is exactly one file exit: tool-card paths, inline mentions and delivered cards all go through `onOpenFile`; without it links degrade to plain text.
|
|
27
|
+
> EN: There is exactly one file exit: tool-card paths, inline mentions and delivered cards all go through `onOpenFile`; without it links degrade to plain text (clickable-looking but no exit — not a break). If you already own a preview surface, call yours inside the callback (core touches no DOM); otherwise wire core’s dock in one line: `onOpenFile: (path, sid) => openFilePreview({ mount: '#page-row', path, sessionId: sid })` — the mount takes an element or a selector, and the dialog needs no mask props.
|
|
28
|
+
|
|
29
|
+
变更文件的审阅出口是 `onOpenReview`,落点用 `openSessionReview({ mount, locator })` 一行接上:`locator`(sessionId / seq / index / display)到 diff 的拼装归会话域,调用方不挑组件、不塞节点、不补 ✕。面板关闭钮由 dock 出;`ChangedFileDiff.onClose` 只给自带壳的容器,不是关面板的手段。
|
|
30
|
+
|
|
31
|
+
> EN: The review exit for changed files is `onOpenReview`; wire it with one line, `openSessionReview({ mount, locator })`. Turning the locator (sessionId / seq / index / display) into a diff belongs to the session domain — pick no components, pass no nodes, add no ✕. The panel close belongs to the dock; `ChangedFileDiff.onClose` is for containers that own their own chrome, not a way to close the panel.
|
|
28
32
|
|
|
29
33
|
限制:官方样式未注入时回退自绘观感(功能不受影响);长会话一次全渲染,用「加载更早记录」向前翻页;👍👎 反馈走官方 slots,弹窗没有该插槽。
|
|
30
34
|
|
|
@@ -49,11 +53,11 @@
|
|
|
49
53
|
| `openHostSession` | `(sessionId: string) => void` | — | — | 跳官方会话区(uiWorkspace.openSession) | Jump into the official session area (uiWorkspace.openSession) |
|
|
50
54
|
| `onContinue` | `(message: string) => Promise<void>` | — | — | 暂存输入框的确定:调用方完成 fork + 发首轮 + 跳转;缺省 = 不渲染输入框 | Staging input confirm: caller forks, sends the first turn, navigates; absent = no input rendered |
|
|
51
55
|
| `onOpenFile` | `(path: string, sessionId: string) => void` | — | — | 文件打开出口(工具卡 fileLink / 行内引用 / 交付卡共用);第二参是文件所属会话 id,别拿别的会话去定位;缺省 = 链接纯文本 | File-open exit shared by fileLinks, mentions and delivered cards; the second arg is the owning session id — locate the file there, not elsewhere; absent = plain text |
|
|
52
|
-
| `onOpenReview` | `(locator: ChangedFileReviewLocator) => void` | — | — | 变更文件的审阅出口(等价官方 openReview
|
|
56
|
+
| `onOpenReview` | `(locator: ChangedFileReviewLocator) => void` | — | — | 变更文件的审阅出口(等价官方 openReview);落点用 `openSessionReview({ mount, locator })` 一行接上;缺省 = 变更卡整张不可点 | Review exit for changed files (equals official openReview); wire it with `openSessionReview({ mount, locator })`; absent = the change card is not clickable |
|
|
53
57
|
| `t` | `Translate` | — | 内置 | 覆盖文案(内置字典已含全部会话文案,中英) | Override copy (the built-in dictionary has all session copy, zh+en) |
|
|
54
58
|
|
|
55
59
|
```tsx id="session-usage"
|
|
56
|
-
import { openSessionView, SessionViewModal } from 'dsh-plugin-core/session'
|
|
60
|
+
import { openSessionView, openSessionReview, SessionViewModal } from 'dsh-plugin-core/session'
|
|
57
61
|
|
|
58
62
|
// 宿主服务由调用方注入:sessions ← dsh-api-session-controller、
|
|
59
63
|
// uiConversation ← dsh-client-ui-conversation
|
|
@@ -73,7 +77,10 @@ if (view !== null) {
|
|
|
73
77
|
await hostContinue(child, message)
|
|
74
78
|
openHostSession(child)
|
|
75
79
|
},
|
|
76
|
-
|
|
80
|
+
// 文件打开出口:给一个落点即可(元素或选择器),核心自带右侧分栏
|
|
81
|
+
onOpenFile: (path, sid) => openFilePreview({ mount: '#page-row', path, sessionId: sid }),
|
|
82
|
+
// 变更文件审阅:一行打开那次改动的 diff(面板 / 关闭钮全归核心)
|
|
83
|
+
onOpenReview: (locator) => openSessionReview({ mount: '#page-row', locator }),
|
|
77
84
|
archived, // 是否已归档
|
|
78
85
|
t, // 可选,覆盖文案
|
|
79
86
|
})
|
package/docs/help/ui.doc.ts
CHANGED
|
@@ -979,7 +979,7 @@ const doc: DocTopic = {
|
|
|
979
979
|
{ name: 'title / icon', type: 'ReactNode', def: '—', desc: { zh: '内置头的标题与标题前图标', en: 'Built-in header title and icon before it' } },
|
|
980
980
|
{ name: 'extra', type: 'ReactNode', def: '—', desc: { zh: '标题右侧的任意内容(不只是按钮)', en: 'Any content to the right of the title (not just buttons)' } },
|
|
981
981
|
{ name: 'header', type: 'ReactNode | null', def: '—', desc: { zh: '整块替换头部:不传 = 内置头;null = 不要头部;其他 = 你的头', en: 'Whole-header replacement: omitted = built-in; null = no header; else = your header' } },
|
|
982
|
-
{ name: 'closable / closeButton / closeIcon', type: '—', def: '—', desc: { zh: '关钮开关;位置 auto/header/floating/none', en: 'Close-button toggle; position auto/header/floating/none' } },
|
|
982
|
+
{ name: 'closable / closeButton / closeIcon', type: '—', def: '—', desc: { zh: '关钮开关;位置 auto/header/floating/none。`floating` 钉在面板右上(6px 偏移、20×20),无头内容要给右上留 28px', en: 'Close-button toggle; position auto/header/floating/none. `floating` sits at the panel’s top-right (6px offset, 20×20) — headerless content must leave 28px there' } },
|
|
983
983
|
{ name: 'width / minWidth / maxWidth', type: 'number', def: '—', desc: { zh: '宽度与可拖动区间', en: 'Width and draggable range' } },
|
|
984
984
|
{ name: 'ariaLabel', type: 'string', def: '—', desc: { zh: '无头部时的无障碍名', en: 'A11y name when no header' } },
|
|
985
985
|
],
|
package/docs/help/ui.md
CHANGED
|
@@ -840,7 +840,7 @@ h(SideSheet, {
|
|
|
840
840
|
| `title / icon` | `ReactNode` | — | 内置头的标题与标题前图标 | Built-in header title and icon before it |
|
|
841
841
|
| `extra` | `ReactNode` | — | 标题右侧的任意内容(不只是按钮) | Any content to the right of the title (not just buttons) |
|
|
842
842
|
| `header` | `ReactNode \| null` | — | 整块替换头部:不传 = 内置头;null = 不要头部;其他 = 你的头 | Whole-header replacement: omitted = built-in; null = no header; else = your header |
|
|
843
|
-
| `closable / closeButton / closeIcon` | `—` | — | 关钮开关;位置 auto/header/floating/none | Close-button toggle; position auto/header/floating/none |
|
|
843
|
+
| `closable / closeButton / closeIcon` | `—` | — | 关钮开关;位置 auto/header/floating/none。`floating` 钉在面板右上(6px 偏移、20×20),无头内容要给右上留 28px | Close-button toggle; position auto/header/floating/none. `floating` sits at the panel’s top-right (6px offset, 20×20) — headerless content must leave 28px there |
|
|
844
844
|
| `width / minWidth / maxWidth` | `number` | — | 宽度与可拖动区间 | Width and draggable range |
|
|
845
845
|
| `ariaLabel` | `string` | — | 无头部时的无障碍名 | A11y name when no header |
|
|
846
846
|
|
package/docs/requirements.md
CHANGED
|
@@ -156,10 +156,11 @@ dsh-plugin-core/
|
|
|
156
156
|
- 读文件服务改由 `connectHost(ctx)` 一次接进来(`remote.workspaceFiles`,核心持有),
|
|
157
157
|
`openFilePreview` / `pickWorkspaceFile` 不再要求调用方传 `workspaceFiles`(传了以传入为准);
|
|
158
158
|
- `sessionId` 缺省由「路径 → 所属工作区 → 该区最近会话」解,匹配不出退「最近有会话的工作区」;
|
|
159
|
-
- `mount`
|
|
159
|
+
- `mount` 仍必须给(往哪行塞只有调用方知道),但**元素或选择器都收**(2026-11-04 补:`'#page-row'` 这样传即可,消费方不用存 ref;选择器解析不到 ⇒ 返回 `null` 并 warn,**不回落 body**),且**不必自己写成 flex**:核心加 `dshpc-dock-host`
|
|
160
160
|
类并补 `display:flex`,关闭时还原;子项规则只让第一个非预览子项伸展,不要传 `document.body`;
|
|
161
161
|
- 依据:插件沙箱里没有 `fs`,读字节唯一通道是 ctx 注入的服务对象 ⇒ 服务只能「接线一次」交进来,
|
|
162
162
|
不能每次调用各传一遍(这是权限边界,不是能力缺口)。
|
|
163
|
+
- **关闭钮归面板壳**(2026-11-04 用户拍板):`openFilePreview` 的 dock 一律用壳的浮动 ✕(`closeButton: 'floating'`,文件 / content 两种模式位置一致),`FileBrowser` 不再接 `onClose`(它的 `onClose` 只留给无壳的 picker 弹窗);内容组件(`ChangedFileDiff` 等)不画关,只在右上让 28px。根因:关在内容上曾是可选 prop,漏传即整块面板无关闭钮(dsh-task-ledger 报的缺陷)。`content` 与 `path` 同传 ⇒ warn 并忽略 `path`(`handle.path` 不再回报未生效的路径)。
|
|
163
164
|
- 控件纪律(2026-10-21):核心有的控件一律核心(`Button` ghost 面包屑 / `IconButton` / `Segmented` / `MarqueeText` / `PanelDock`);核心没有的那一项(▾ 选层浮层)严格按兄弟项目度量照抄
|
|
164
165
|
- 选工作区(`WorkspacePicker`)在 `ui`,不在这里;`FilePicker` 已删(2026-10-20)
|
|
165
166
|
|
|
@@ -168,6 +169,9 @@ dsh-plugin-core/
|
|
|
168
169
|
- 会话预览:整体封装(连会话渲染一起),调用方注入取数能力
|
|
169
170
|
- `variant` 决定承载方式:弹窗 / 侧栏 / 整页(**承载可换**是硬要求)
|
|
170
171
|
- 必须预留定制扩展点
|
|
172
|
+
- 文件出口只有一个 `onOpenFile(path, sessionId)`(工具卡 / 行内引用 / 交付卡共用):不传 ⇒ 链接纯文本。已有预览面的调用方在回调里开自己的;没有的一行接 `openFilePreview({ mount, path, sessionId })`。**不做「给个 id 让核心塞进第三方面板」**(2026-11-04 定:核心只认识自己的 `PanelDock`,按 id 塞 = 两套布局互相拽)
|
|
173
|
+
- 变更文件的审阅出口是 `onOpenReview`,落点用 `openSessionReview({ mount, locator })`(2026-11-04 定):`locator`(sessionId / seq / index / display)属会话领域知识,locator → diff 的拼装留在 `session`(依赖方向 session → explorer 本就存在,反向不许),调用方不挑组件、不塞节点、不补 ✕。`openFilePreview({ content })` 保留为逃生口,不再是推荐路径。
|
|
174
|
+
- 会话区自动贴底只在两种情况下发生:**首次打开**、**有新内容且当时就在底部**;本地展开 / 折叠历史分组(如「已完成」)改变高度不算新内容,不许把视图拽走(2026-11-04 用户二次拍板)
|
|
171
175
|
|
|
172
176
|
## 3. 不进(业务,各插件自己写)
|
|
173
177
|
|
package/package.json
CHANGED