@hpyperry/dsh-ref-lib 0.7.0 → 0.9.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/README.md +13 -14
- package/lib/client/RefLibCommandCard.d.ts +29 -0
- package/lib/client/RefLibCommandCard.d.ts.map +1 -0
- package/lib/client/RefLibCommandCard.js +48 -0
- package/lib/client/RefLibCommandCard.js.map +1 -0
- package/lib/client/RefLibDock.d.ts +4 -2
- package/lib/client/RefLibDock.d.ts.map +1 -1
- package/lib/client/RefLibDock.js +121 -37
- package/lib/client/RefLibDock.js.map +1 -1
- package/lib/client/RefLibPanel.d.ts +6 -4
- package/lib/client/RefLibPanel.d.ts.map +1 -1
- package/lib/client/RefLibPanel.js +69 -20
- package/lib/client/RefLibPanel.js.map +1 -1
- package/lib/client/index.d.ts.map +1 -1
- package/lib/client/index.js +13 -2
- package/lib/client/index.js.map +1 -1
- package/lib/client/locales.d.ts +30 -2
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +42 -8
- package/lib/client/locales.js.map +1 -1
- package/lib/client/refresh-guard.d.ts +31 -0
- package/lib/client/refresh-guard.d.ts.map +1 -0
- package/lib/client/refresh-guard.js +38 -0
- package/lib/client/refresh-guard.js.map +1 -0
- package/lib/client/styles.d.ts.map +1 -1
- package/lib/client/styles.js +269 -23
- package/lib/client/styles.js.map +1 -1
- package/lib/client.js +1141 -500
- package/lib/client.js.map +1 -1
- package/lib/commands.d.ts +2 -1
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +15 -3
- package/lib/commands.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +9 -7
- package/lib/index.js.map +1 -1
- package/lib/logic.d.ts +16 -1
- package/lib/logic.d.ts.map +1 -1
- package/lib/logic.js +19 -0
- package/lib/logic.js.map +1 -1
- package/lib/render.d.ts +10 -4
- package/lib/render.d.ts.map +1 -1
- package/lib/render.js +113 -16
- package/lib/render.js.map +1 -1
- package/lib/routes.d.ts.map +1 -1
- package/lib/routes.js +46 -2
- package/lib/routes.js.map +1 -1
- package/lib/service.d.ts +52 -3
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +172 -14
- package/lib/service.js.map +1 -1
- package/lib/spec.d.ts +9 -0
- package/lib/spec.d.ts.map +1 -1
- package/lib/validate.d.ts +1 -1
- package/lib/validate.d.ts.map +1 -1
- package/lib/validate.js +11 -3
- package/lib/validate.js.map +1 -1
- package/package.json +17 -9
|
@@ -10,50 +10,99 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
* @module @hpyperry/dsh-ref-lib/src/client/RefLibPanel
|
|
11
11
|
*/
|
|
12
12
|
import { useEffect, useState } from 'react';
|
|
13
|
-
import { Button, IconFolderOpen16, IconLoadingOutline16, IconPlusOutline16, IconSearchOutline16, IconTrashOutline16, IconWarningOutline16, Input, Modal, Tooltip, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
13
|
+
import { Button, IconEllipsisOutline16, IconFolderOpen16, IconLoadingOutline16, IconPlusOutline16, IconSearchOutline16, IconTrashOutline16, IconWarningOutline16, Input, Modal, Tooltip, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
14
14
|
import { libBasename } from "./data.js";
|
|
15
|
+
/** 用途说明最大长度(与 node half service.NOTE_MAX_LENGTH 一致)。 */
|
|
16
|
+
const NOTE_MAX_LENGTH = 120;
|
|
15
17
|
/**
|
|
16
18
|
* 渲染参考库管理面板。
|
|
17
19
|
* @param props - 见 {@link RefLibPanelProps}。
|
|
18
20
|
* @returns 对话框元素(关闭时 Modal 返回 null)。
|
|
19
21
|
*/
|
|
20
22
|
export function RefLibPanel(props) {
|
|
21
|
-
const { open, onClose, libs, loading, busy, picking, removingId, error, t, onRemove, onAddPath, onBrowse } = props;
|
|
23
|
+
const { open, onClose, libs, loading, busy, picking, removingId, error, t, onRemove, onAddPath, onUpdateNote, onBrowse } = props;
|
|
22
24
|
const [draft, setDraft] = useState('');
|
|
25
|
+
const [noteDraft, setNoteDraft] = useState('');
|
|
26
|
+
// 详情展开:正在查看/编辑的条目 id + 编辑中的用途草稿。
|
|
27
|
+
const [detailId, setDetailId] = useState(null);
|
|
28
|
+
const [editNote, setEditNote] = useState('');
|
|
23
29
|
// 面板关闭时清空输入草稿:每次打开都是干净的添加表单(失败保留输入的行为只限于面板打开期间)。
|
|
24
30
|
useEffect(() => {
|
|
25
|
-
if (!open)
|
|
31
|
+
if (!open) {
|
|
26
32
|
setDraft('');
|
|
33
|
+
setNoteDraft('');
|
|
34
|
+
setDetailId(null);
|
|
35
|
+
}
|
|
27
36
|
}, [open]);
|
|
28
37
|
const handleSubmit = async () => {
|
|
29
38
|
const trimmed = draft.trim();
|
|
30
39
|
if (trimmed === '')
|
|
31
40
|
return;
|
|
32
41
|
try {
|
|
33
|
-
|
|
42
|
+
const note = noteDraft.trim();
|
|
43
|
+
await onAddPath(trimmed, note === '' ? undefined : note);
|
|
34
44
|
setDraft('');
|
|
45
|
+
setNoteDraft('');
|
|
35
46
|
}
|
|
36
47
|
catch {
|
|
37
48
|
/* 错误由父组件在统一错误槽展示;输入保留以便修正 */
|
|
38
49
|
}
|
|
39
50
|
};
|
|
40
|
-
|
|
51
|
+
/** 浏览选中目录 → 填入路径字段(不直接添加,用户可补用途后提交)。 */
|
|
52
|
+
const handleBrowse = async () => {
|
|
53
|
+
const path = await onBrowse();
|
|
54
|
+
if (path !== null)
|
|
55
|
+
setDraft(path);
|
|
56
|
+
};
|
|
57
|
+
/** 展开/收起条目详情;展开时载入当前用途草稿。 */
|
|
58
|
+
const toggleDetail = (entry) => {
|
|
59
|
+
if (detailId === entry.id) {
|
|
60
|
+
setDetailId(null);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
setDetailId(entry.id);
|
|
64
|
+
setEditNote(entry.note ?? '');
|
|
65
|
+
};
|
|
66
|
+
/** 保存详情编辑的用途说明;成功后收起详情。 */
|
|
67
|
+
const handleSaveNote = async () => {
|
|
68
|
+
if (detailId === null)
|
|
69
|
+
return;
|
|
70
|
+
await onUpdateNote(detailId, editNote);
|
|
71
|
+
setDetailId(null);
|
|
72
|
+
};
|
|
73
|
+
return (_jsx(Modal, { open: open, onClose: onClose, title: t('panel.title'), closeLabel: t('panel.close'), description: t('panel.description', { count: String(libs.length) }), className: "reflib-modal", children: _jsxs("div", { className: "reflib-panel", children: [error !== null && (_jsxs("div", { className: "reflib-error", role: "alert", children: [_jsx(IconWarningOutline16, { size: 14, className: "reflib-errorIcon" }), _jsx("span", { children: error })] })), loading ? (_jsxs("div", { className: "reflib-status", role: "status", children: [_jsx(IconLoadingOutline16, { size: 20, className: "reflib-spin reflib-statusIcon" }), _jsx("span", { className: "reflib-statusText", children: t('list.loading') })] })) : libs.length === 0 ? (_jsxs("div", { className: "reflib-status", children: [_jsx(IconFolderOpen16, { size: 22, className: "reflib-statusIcon" }), _jsx("span", { className: "reflib-statusText", children: t('list.empty') }), _jsx("span", { className: "reflib-statusHint", children: t('list.empty.hint') })] })) : (_jsx("div", { className: "reflib-list", children: libs.map((entry) => {
|
|
41
74
|
const name = libBasename(entry.path);
|
|
42
75
|
const removing = removingId === entry.id;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
76
|
+
const detailOpen = detailId === entry.id;
|
|
77
|
+
const unavailable = entry.status !== undefined && entry.status !== 'available';
|
|
78
|
+
return (_jsxs("div", { className: "reflib-listItem", "data-removing": removing || undefined, "data-status": unavailable ? entry.status : undefined, children: [_jsxs("div", { className: "reflib-row", children: [unavailable
|
|
79
|
+
? _jsx(IconWarningOutline16, { size: 16, className: "reflib-rowIcon reflib-rowIconWarn" })
|
|
80
|
+
: _jsx(IconFolderOpen16, { size: 16, className: "reflib-rowIcon" }), _jsxs("div", { className: "reflib-rowBody", children: [_jsx("span", { className: "reflib-rowName", title: entry.path, children: name }), _jsx("span", { className: "reflib-rowPath", title: entry.path, children: entry.path }), unavailable && (_jsx("span", { className: "reflib-rowStatus", role: "status", children: t(entry.status === 'missing' ? 'status.missing' : 'status.notDirectory') })), entry.note !== undefined && entry.note !== '' && (_jsx("span", { className: "reflib-rowNote", title: entry.note, children: entry.note.replace(/\s+/g, ' ') }))] }), _jsx(Tooltip, { label: t('detail.open'), side: "top", delayMs: 400, children: _jsx("button", { type: "button", className: "reflib-rowAction", "aria-label": t('detail.open.aria', { name }), "aria-expanded": detailOpen || undefined,
|
|
81
|
+
// 失效条目只允许移除:详情/用途编辑禁用(node 端 note 接口同样拒绝)。
|
|
82
|
+
disabled: busy || removingId !== null || unavailable, onClick: () => {
|
|
83
|
+
toggleDetail(entry);
|
|
84
|
+
}, children: _jsx(IconEllipsisOutline16, { size: 14 }) }) }), _jsx(Tooltip, { label: t('list.remove'), side: "top", delayMs: 400, children: _jsx("button", { type: "button", className: "reflib-rowRemove", "aria-label": t('list.remove.aria', { name }), disabled: busy || removingId !== null, onClick: () => {
|
|
85
|
+
onRemove(entry.id);
|
|
86
|
+
}, children: removing ? (_jsx(IconLoadingOutline16, { size: 14, className: "reflib-spin" })) : (_jsx(IconTrashOutline16, { size: 14 })) }) })] }), detailOpen && !unavailable && (_jsxs("div", { className: "reflib-detail", children: [_jsxs("div", { className: "reflib-detailMeta", children: [_jsx("span", { className: "reflib-detailKey", children: "ID" }), _jsx("span", { className: "reflib-detailValue", children: entry.id })] }), _jsxs("div", { className: "reflib-detailMeta", children: [_jsx("span", { className: "reflib-detailKey", children: t('detail.path') }), _jsx("span", { className: "reflib-detailValue", title: entry.path, children: entry.path })] }), _jsx("span", { className: "reflib-detailKey", children: t('add.note.label') }), _jsxs("div", { className: "reflib-noteWrap", children: [_jsx("textarea", { className: "reflib-noteTextarea", value: editNote, placeholder: t('add.note.placeholder'), "aria-label": t('add.note.label'), disabled: busy, rows: 3, maxLength: NOTE_MAX_LENGTH, onChange: (event) => {
|
|
87
|
+
setEditNote(event.currentTarget.value);
|
|
88
|
+
} }), _jsxs("span", { className: "reflib-noteCount", children: [editNote.length, "/", NOTE_MAX_LENGTH] })] }), _jsxs("div", { className: "reflib-detailActions", children: [_jsx(Button, { variant: "ghost", size: "sm", disabled: busy, onClick: () => {
|
|
89
|
+
setDetailId(null);
|
|
90
|
+
}, children: t('detail.cancel') }), _jsx(Button, { variant: "primary", size: "sm", disabled: busy, onClick: () => {
|
|
91
|
+
void handleSaveNote();
|
|
92
|
+
}, children: t('detail.save') })] })] }))] }, entry.id));
|
|
93
|
+
}) })), _jsx("div", { className: "reflib-divider" }), _jsxs("div", { className: "reflib-add", children: [_jsx("span", { className: "reflib-addLabel", children: t('add.label') }), _jsxs("div", { className: "reflib-addRow", children: [_jsx(Input, { className: "reflib-addInputWrap", value: draft, placeholder: t('add.placeholder'), "aria-label": t('add.label'), disabled: busy || picking, onChange: (event) => {
|
|
94
|
+
setDraft(event.currentTarget.value);
|
|
95
|
+
}, onKeyDown: (event) => {
|
|
96
|
+
if (event.key === 'Enter' && !event.nativeEvent.isComposing) {
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
void handleSubmit();
|
|
99
|
+
}
|
|
100
|
+
} }), _jsx(Button, { variant: "outline", size: "sm", icon: _jsx(IconSearchOutline16, { size: 14 }), disabled: busy || picking, onClick: () => {
|
|
101
|
+
void handleBrowse();
|
|
102
|
+
}, children: t('add.browse') })] }), _jsxs("div", { className: "reflib-noteWrap", children: [_jsx("textarea", { className: "reflib-noteTextarea", value: noteDraft, placeholder: t('add.note.placeholder'), "aria-label": t('add.note.label'), disabled: busy || picking, rows: 2, maxLength: NOTE_MAX_LENGTH, onChange: (event) => {
|
|
103
|
+
setNoteDraft(event.currentTarget.value);
|
|
104
|
+
} }), _jsxs("span", { className: "reflib-noteCount", children: [noteDraft.length, "/", NOTE_MAX_LENGTH] })] }), _jsx(Button, { variant: "primary", className: "reflib-addSubmit", icon: _jsx(IconPlusOutline16, { size: 14 }), disabled: busy || picking || draft.trim() === '', onClick: () => {
|
|
105
|
+
void handleSubmit();
|
|
106
|
+
}, children: t('add.submit') }), _jsx("span", { className: "reflib-addHint", children: t('add.hint') })] })] }) }));
|
|
58
107
|
}
|
|
59
108
|
//# sourceMappingURL=RefLibPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefLibPanel.js","sourceRoot":"","sources":["../../src/client/RefLibPanel.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,EACL,KAAK,EACL,OAAO,GACR,MAAM,uCAAuC,CAAA;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"RefLibPanel.js","sourceRoot":"","sources":["../../src/client/RefLibPanel.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,EACL,KAAK,EACL,OAAO,GACR,MAAM,uCAAuC,CAAA;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,wDAAwD;AACxD,MAAM,eAAe,GAAG,GAAG,CAAA;AAgC3B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAChI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC9C,iCAAiC;IACjC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE5C,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,EAAE,CAAC,CAAA;YACZ,YAAY,CAAC,EAAE,CAAC,CAAA;YAChB,WAAW,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5B,IAAI,OAAO,KAAK,EAAE;YAAE,OAAM;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACxD,QAAQ,CAAC,EAAE,CAAC,CAAA;YACZ,YAAY,CAAC,EAAE,CAAC,CAAA;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC,CAAA;IAED,wCAAwC;IACxC,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC,CAAA;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAQ,EAAE;QAChD,IAAI,QAAQ,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrB,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,2BAA2B;IAC3B,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;QAC/C,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAM;QAC7B,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACtC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,CACL,KAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EACvB,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,EAC5B,WAAW,EAAE,CAAC,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EACnE,SAAS,EAAC,cAAc,YAExB,eAAK,SAAS,EAAC,cAAc,aAC1B,KAAK,KAAK,IAAI,IAAI,CACjB,eAAK,SAAS,EAAC,cAAc,EAAC,IAAI,EAAC,OAAO,aACxC,KAAC,oBAAoB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,kBAAkB,GAAG,EAC/D,yBAAO,KAAK,GAAQ,IAChB,CACP,EACA,OAAO,CAAC,CAAC,CAAC,CACT,eAAK,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,aAC1C,KAAC,oBAAoB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,+BAA+B,GAAG,EAC5E,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,cAAc,CAAC,GAAQ,IAC1D,CACP,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,eAAK,SAAS,EAAC,eAAe,aAC5B,KAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,mBAAmB,GAAG,EAC5D,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,YAAY,CAAC,GAAQ,EAC5D,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,iBAAiB,CAAC,GAAQ,IAC7D,CACP,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,aAAa,YACzB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBAClB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBACpC,MAAM,QAAQ,GAAG,UAAU,KAAK,KAAK,CAAC,EAAE,CAAA;wBACxC,MAAM,UAAU,GAAG,QAAQ,KAAK,KAAK,CAAC,EAAE,CAAA;wBACxC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAA;wBAC9E,OAAO,CACL,eAEE,SAAS,EAAC,iBAAiB,mBACZ,QAAQ,IAAI,SAAS,iBACvB,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAEnD,eAAK,SAAS,EAAC,YAAY,aACxB,WAAW;4CACV,CAAC,CAAC,KAAC,oBAAoB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,mCAAmC,GAAG;4CAClF,CAAC,CAAC,KAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,gBAAgB,GAAG,EAC7D,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YAC/C,IAAI,GACA,EACP,eAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YAC/C,KAAK,CAAC,IAAI,GACN,EACN,WAAW,IAAI,CACd,eAAM,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,YAC7C,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,GACpE,CACR,EACA,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,CAChD,eAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,CACR,IACG,EACN,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,KAAK,EAAC,OAAO,EAAE,GAAG,YACvD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kBAAkB,gBAChB,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,mBAC5B,UAAU,IAAI,SAAS;gDACtC,2CAA2C;gDAC3C,QAAQ,EAAE,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,WAAW,EACpD,OAAO,EAAE,GAAG,EAAE;oDACZ,YAAY,CAAC,KAAK,CAAC,CAAA;gDACrB,CAAC,YAED,KAAC,qBAAqB,IAAC,IAAI,EAAE,EAAE,GAAI,GAC5B,GACD,EACV,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,KAAK,EAAC,OAAO,EAAE,GAAG,YACvD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kBAAkB,gBAChB,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,EAC3C,QAAQ,EAAE,IAAI,IAAI,UAAU,KAAK,IAAI,EACrC,OAAO,EAAE,GAAG,EAAE;oDACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gDACpB,CAAC,YAEA,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,oBAAoB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,aAAa,GAAG,CAC3D,CAAC,CAAC,CAAC,CACF,KAAC,kBAAkB,IAAC,IAAI,EAAE,EAAE,GAAI,CACjC,GACM,GACD,IACN,EAEL,UAAU,IAAI,CAAC,WAAW,IAAI,CAC7B,eAAK,SAAS,EAAC,eAAe,aAC5B,eAAK,SAAS,EAAC,mBAAmB,aAChC,eAAM,SAAS,EAAC,kBAAkB,mBAAU,EAC5C,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,EAAE,GAAQ,IAClD,EACN,eAAK,SAAS,EAAC,mBAAmB,aAChC,eAAM,SAAS,EAAC,kBAAkB,YAAE,CAAC,CAAC,aAAa,CAAC,GAAQ,EAC5D,eAAM,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YACnD,KAAK,CAAC,IAAI,GACN,IACH,EACN,eAAM,SAAS,EAAC,kBAAkB,YAAE,CAAC,CAAC,gBAAgB,CAAC,GAAQ,EAC/D,eAAK,SAAS,EAAC,iBAAiB,aAC9B,mBACE,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,CAAC,CAAC,sBAAsB,CAAC,gBAC1B,CAAC,CAAC,gBAAgB,CAAC,EAC/B,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wDAClB,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;oDACxC,CAAC,GACD,EACF,gBAAM,SAAS,EAAC,kBAAkB,aAC/B,QAAQ,CAAC,MAAM,OAAG,eAAe,IAC7B,IACH,EACN,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,GAAG,EAAE;wDACZ,WAAW,CAAC,IAAI,CAAC,CAAA;oDACnB,CAAC,YAEA,CAAC,CAAC,eAAe,CAAC,GACZ,EACT,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,GAAG,EAAE;wDACZ,KAAK,cAAc,EAAE,CAAA;oDACvB,CAAC,YAEA,CAAC,CAAC,aAAa,CAAC,GACV,IACL,IACF,CACP,KAlHI,KAAK,CAAC,EAAE,CAmHT,CACP,CAAA;oBACH,CAAC,CAAC,GACE,CACP,EACD,cAAK,SAAS,EAAC,gBAAgB,GAAG,EAClC,eAAK,SAAS,EAAC,YAAY,aACzB,eAAM,SAAS,EAAC,iBAAiB,YAAE,CAAC,CAAC,WAAW,CAAC,GAAQ,EAEzD,eAAK,SAAS,EAAC,eAAe,aAC5B,KAAC,KAAK,IACJ,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,gBACrB,CAAC,CAAC,WAAW,CAAC,EAC1B,QAAQ,EAAE,IAAI,IAAI,OAAO,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;oCACrC,CAAC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;wCACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;4CAC5D,KAAK,CAAC,cAAc,EAAE,CAAA;4CACtB,KAAK,YAAY,EAAE,CAAA;wCACrB,CAAC;oCACH,CAAC,GACD,EACF,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,IAAI,EAAE,KAAC,mBAAmB,IAAC,IAAI,EAAE,EAAE,GAAI,EACvC,QAAQ,EAAE,IAAI,IAAI,OAAO,EACzB,OAAO,EAAE,GAAG,EAAE;wCACZ,KAAK,YAAY,EAAE,CAAA;oCACrB,CAAC,YAEA,CAAC,CAAC,YAAY,CAAC,GACT,IACL,EACN,eAAK,SAAS,EAAC,iBAAiB,aAC9B,mBACE,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,CAAC,CAAC,sBAAsB,CAAC,gBAC1B,CAAC,CAAC,gBAAgB,CAAC,EAC/B,QAAQ,EAAE,IAAI,IAAI,OAAO,EACzB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;oCACzC,CAAC,GACD,EACF,gBAAM,SAAS,EAAC,kBAAkB,aAC/B,SAAS,CAAC,MAAM,OAAG,eAAe,IAC9B,IACH,EACN,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAE,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,EACrC,QAAQ,EAAE,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAChD,OAAO,EAAE,GAAG,EAAE;gCACZ,KAAK,YAAY,EAAE,CAAA;4BACrB,CAAC,YAEA,CAAC,CAAC,YAAY,CAAC,GACT,EACT,eAAM,SAAS,EAAC,gBAAgB,YAAE,CAAC,CAAC,UAAU,CAAC,GAAQ,IACnD,IACF,GACA,CACT,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,wCAAwC,CAAA;AAUtF,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAErD,iCAAiC;AACjC,eAAO,MAAM,MAAM,UAAoC,CAAA;AAKvD,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,uBAAuB;QACvB,SAAS,EAAE,SAAS,CAAA;KACrB;CACF;AAgCD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAiD9C"}
|
package/lib/client/index.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* @module @hpyperry/dsh-ref-lib/src/client
|
|
16
16
|
*/
|
|
17
17
|
import { parseApiErrorPayload, parseLibsPayload, RefLibApiError } from "./data.js";
|
|
18
|
+
import { RefLibCommandCard } from "./RefLibCommandCard.js";
|
|
18
19
|
import { RefLibDock } from "./RefLibDock.js";
|
|
19
20
|
import { zh, en } from "./locales.js";
|
|
20
21
|
/** 所需服务(cordis fiber inject)。 */
|
|
@@ -58,12 +59,15 @@ export function apply(ctx) {
|
|
|
58
59
|
ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'ref-lib: dictionaries');
|
|
59
60
|
const injected = () => ({
|
|
60
61
|
load: async (sessionId) => parseLibsPayload(await api(`/list?session=${encodeURIComponent(sessionId)}`, undefined, 'GET')),
|
|
61
|
-
add: async (sessionId, path) => {
|
|
62
|
-
await api('/add', { session: sessionId, path });
|
|
62
|
+
add: async (sessionId, path, note) => {
|
|
63
|
+
await api('/add', { session: sessionId, path, ...(note === undefined ? {} : { note }) });
|
|
63
64
|
},
|
|
64
65
|
remove: async (sessionId, id) => {
|
|
65
66
|
await api('/remove', { session: sessionId, id });
|
|
66
67
|
},
|
|
68
|
+
setNote: async (sessionId, id, note) => {
|
|
69
|
+
await api('/note', { session: sessionId, id, note });
|
|
70
|
+
},
|
|
67
71
|
pickDirectory: () => ctx.workspaces.pickDirectory(),
|
|
68
72
|
listDirectory: (path, signal) => ctx.workspaces.listDirectory(path, signal),
|
|
69
73
|
});
|
|
@@ -76,5 +80,12 @@ export function apply(ctx) {
|
|
|
76
80
|
locale: NS,
|
|
77
81
|
inject: injected,
|
|
78
82
|
}, RefLibDock));
|
|
83
|
+
// /ref-lib 命令结果专属卡片:官方 GenericCommandCard 长结果显示不全(折叠单行
|
|
84
|
+
// ellipsis / 展开 260px 内滚动),本卡片默认全展开完整结果 + 复制按钮。
|
|
85
|
+
ctx.slots.inject('conversation.chat.commandview', () => ctx.slots.register({
|
|
86
|
+
name: 'conversation.chat.commandview',
|
|
87
|
+
key: 'ref-lib',
|
|
88
|
+
locale: NS,
|
|
89
|
+
}, RefLibCommandCard));
|
|
79
90
|
}
|
|
80
91
|
//# sourceMappingURL=index.js.map
|
package/lib/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,UAAU,EAA2B,MAAM,iBAAkB,CAAA;AACtE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAkB,MAAM,cAAc,CAAA;AAErD,iCAAiC;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;AAEvD,iBAAiB;AACjB,MAAM,EAAE,GAAG,SAAS,CAAA;AASpB;;;GAGG;AACH,KAAK,UAAU,GAAG,CAAI,IAAY,EAAE,OAAiB,EAAE,MAAM,GAAG,MAAM;IACpE,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,cAAc,GAAG,IAAI,EACrB,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,MAAM;YACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CACN,CAAA;IACD,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1F,MAAM,OAAO,GAAI,IAAmC,EAAE,KAAK,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAA;QACnF,MAAM,IAAI,KAAK,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,IAAS,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,GAAkB;IACtC,iCAAiC;IACjC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAA;IAE9E,MAAM,QAAQ,GAAG,GAAuB,EAAE,CAAC,CAAC;QAC1C,IAAI,EAAE,KAAK,EAAE,SAAoB,EAA0B,EAAE,CAC3D,gBAAgB,CACd,MAAM,GAAG,CAAqB,iBAAiB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAClG;QACH,GAAG,EAAE,KAAK,EAAE,SAAoB,EAAE,IAAY,EAAiB,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/lib/client/locales.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export declare const zh: {
|
|
|
12
12
|
'dock.label': string;
|
|
13
13
|
'dock.aria': string;
|
|
14
14
|
'dock.count.aria': string;
|
|
15
|
+
'dock.unavailable': string;
|
|
16
|
+
'status.missing': string;
|
|
17
|
+
'status.notDirectory': string;
|
|
15
18
|
'panel.title': string;
|
|
16
19
|
'panel.close': string;
|
|
17
20
|
'panel.description': string;
|
|
@@ -20,11 +23,17 @@ export declare const zh: {
|
|
|
20
23
|
'list.empty': string;
|
|
21
24
|
'list.empty.hint': string;
|
|
22
25
|
'list.loading': string;
|
|
26
|
+
'detail.open': string;
|
|
27
|
+
'detail.open.aria': string;
|
|
28
|
+
'detail.path': string;
|
|
29
|
+
'detail.cancel': string;
|
|
30
|
+
'detail.save': string;
|
|
23
31
|
'add.label': string;
|
|
24
32
|
'add.placeholder': string;
|
|
25
33
|
'add.submit': string;
|
|
26
|
-
'add.manual': string;
|
|
27
34
|
'add.browse': string;
|
|
35
|
+
'add.note.label': string;
|
|
36
|
+
'add.note.placeholder': string;
|
|
28
37
|
'add.hint': string;
|
|
29
38
|
'browser.title': string;
|
|
30
39
|
'browser.home': string;
|
|
@@ -40,6 +49,11 @@ export declare const zh: {
|
|
|
40
49
|
'error.notDirectory': string;
|
|
41
50
|
'error.unsafe': string;
|
|
42
51
|
'error.unknownId': string;
|
|
52
|
+
'error.unavailable': string;
|
|
53
|
+
'command.running': string;
|
|
54
|
+
'command.done': string;
|
|
55
|
+
'command.copy': string;
|
|
56
|
+
'command.copied': string;
|
|
43
57
|
};
|
|
44
58
|
/** ref-lib 命名空间的键集。 */
|
|
45
59
|
export type RefLibKey = keyof typeof zh;
|
|
@@ -48,6 +62,9 @@ export declare const en: {
|
|
|
48
62
|
'dock.label': string;
|
|
49
63
|
'dock.aria': string;
|
|
50
64
|
'dock.count.aria': string;
|
|
65
|
+
'dock.unavailable': string;
|
|
66
|
+
'status.missing': string;
|
|
67
|
+
'status.notDirectory': string;
|
|
51
68
|
'panel.title': string;
|
|
52
69
|
'panel.close': string;
|
|
53
70
|
'panel.description': string;
|
|
@@ -56,11 +73,17 @@ export declare const en: {
|
|
|
56
73
|
'list.empty': string;
|
|
57
74
|
'list.empty.hint': string;
|
|
58
75
|
'list.loading': string;
|
|
76
|
+
'detail.open': string;
|
|
77
|
+
'detail.open.aria': string;
|
|
78
|
+
'detail.path': string;
|
|
79
|
+
'detail.cancel': string;
|
|
80
|
+
'detail.save': string;
|
|
59
81
|
'add.label': string;
|
|
60
82
|
'add.placeholder': string;
|
|
61
83
|
'add.submit': string;
|
|
62
|
-
'add.manual': string;
|
|
63
84
|
'add.browse': string;
|
|
85
|
+
'add.note.label': string;
|
|
86
|
+
'add.note.placeholder': string;
|
|
64
87
|
'add.hint': string;
|
|
65
88
|
'browser.title': string;
|
|
66
89
|
'browser.home': string;
|
|
@@ -76,5 +99,10 @@ export declare const en: {
|
|
|
76
99
|
'error.notDirectory': string;
|
|
77
100
|
'error.unsafe': string;
|
|
78
101
|
'error.unknownId': string;
|
|
102
|
+
'error.unavailable': string;
|
|
103
|
+
'command.running': string;
|
|
104
|
+
'command.done': string;
|
|
105
|
+
'command.copy': string;
|
|
106
|
+
'command.copied': string;
|
|
79
107
|
};
|
|
80
108
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sBAAsB;AACtB,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sBAAsB;AACtB,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDmB,CAAA;AAElC,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAA;AAEvC,+BAA+B;AAC/B,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDsB,CAAA"}
|
package/lib/client/locales.js
CHANGED
|
@@ -13,6 +13,10 @@ export const zh = {
|
|
|
13
13
|
'dock.label': '参考库',
|
|
14
14
|
'dock.aria': '管理只读参考库',
|
|
15
15
|
'dock.count.aria': '参考库,共 {count} 个',
|
|
16
|
+
'dock.unavailable': '参考库,{count} 个失效',
|
|
17
|
+
// ── 条目可用性(失效检测,v9)──
|
|
18
|
+
'status.missing': '目录已删除或不可访问',
|
|
19
|
+
'status.notDirectory': '路径不再是目录',
|
|
16
20
|
// ── 管理面板 ──
|
|
17
21
|
'panel.title': '参考库',
|
|
18
22
|
'panel.close': '关闭',
|
|
@@ -20,15 +24,22 @@ export const zh = {
|
|
|
20
24
|
'list.remove': '移除',
|
|
21
25
|
'list.remove.aria': '移除参考库 {name}',
|
|
22
26
|
'list.empty': '还没有参考库',
|
|
23
|
-
'list.empty.hint': '
|
|
27
|
+
'list.empty.hint': '在下方输入目录路径,或点击「浏览」选择目录',
|
|
24
28
|
'list.loading': '正在加载…',
|
|
29
|
+
// ── 条目详情 ──
|
|
30
|
+
'detail.open': '查看详情',
|
|
31
|
+
'detail.open.aria': '查看 {name} 的详情',
|
|
32
|
+
'detail.path': '路径',
|
|
33
|
+
'detail.cancel': '取消',
|
|
34
|
+
'detail.save': '保存',
|
|
25
35
|
// ── 添加表单 ──
|
|
26
36
|
'add.label': '添加参考库',
|
|
27
37
|
'add.placeholder': '输入目录路径(支持 ~ 与相对)',
|
|
28
38
|
'add.submit': '添加',
|
|
29
|
-
'add.
|
|
30
|
-
'add.
|
|
31
|
-
'add.
|
|
39
|
+
'add.browse': '浏览',
|
|
40
|
+
'add.note.label': '用途说明',
|
|
41
|
+
'add.note.placeholder': '用途说明(可选,帮助 agent 判断相关性)',
|
|
42
|
+
'add.hint': '目录仅作只读参考;用途不填时自动提取 README 标题',
|
|
32
43
|
// ── 应用内目录浏览器(browse 后端)──
|
|
33
44
|
'browser.title': '选择目录',
|
|
34
45
|
'browser.home': '主目录',
|
|
@@ -45,26 +56,43 @@ export const zh = {
|
|
|
45
56
|
'error.notDirectory': '不是目录:{path}',
|
|
46
57
|
'error.unsafe': '路径包含控制字符,已拒绝:{path}',
|
|
47
58
|
'error.unknownId': '未找到参考库条目:{id}',
|
|
59
|
+
'error.unavailable': '参考库目录不可用(仅允许移除)',
|
|
60
|
+
// ── /ref-lib 命令结果卡片(conversation.chat.commandview)──
|
|
61
|
+
'command.running': '执行中…',
|
|
62
|
+
'command.done': '完成',
|
|
63
|
+
'command.copy': '复制',
|
|
64
|
+
'command.copied': '已复制',
|
|
48
65
|
};
|
|
49
66
|
/** 英文词典,与 zh 键集逐键对齐(编译期校验)。 */
|
|
50
67
|
export const en = {
|
|
51
68
|
'dock.label': 'Reference Library',
|
|
52
69
|
'dock.aria': 'Manage read-only reference libraries',
|
|
53
70
|
'dock.count.aria': 'Reference library, {count} total',
|
|
71
|
+
'dock.unavailable': 'Reference library, {count} unavailable',
|
|
72
|
+
// ── Entry availability (stale detection, v9) ──
|
|
73
|
+
'status.missing': 'Directory deleted or unavailable',
|
|
74
|
+
'status.notDirectory': 'Path is no longer a directory',
|
|
54
75
|
'panel.title': 'Reference Library',
|
|
55
76
|
'panel.close': 'Close',
|
|
56
77
|
'panel.description': '{count} read-only reference libraries: the agent may read them for reference, but must not modify any files',
|
|
57
78
|
'list.remove': 'Remove',
|
|
58
79
|
'list.remove.aria': 'Remove reference library {name}',
|
|
59
80
|
'list.empty': 'No reference libraries yet',
|
|
60
|
-
'list.empty.hint': 'Enter a directory path below, or click “
|
|
81
|
+
'list.empty.hint': 'Enter a directory path below, or click “Browse” to pick one',
|
|
61
82
|
'list.loading': 'Loading…',
|
|
83
|
+
// ── Entry details ──
|
|
84
|
+
'detail.open': 'View details',
|
|
85
|
+
'detail.open.aria': 'View details of {name}',
|
|
86
|
+
'detail.path': 'Path',
|
|
87
|
+
'detail.cancel': 'Cancel',
|
|
88
|
+
'detail.save': 'Save',
|
|
62
89
|
'add.label': 'Add a reference library',
|
|
63
90
|
'add.placeholder': 'Enter a directory path (~ or relative)',
|
|
64
91
|
'add.submit': 'Add',
|
|
65
|
-
'add.
|
|
66
|
-
'add.
|
|
67
|
-
'add.
|
|
92
|
+
'add.browse': 'Browse',
|
|
93
|
+
'add.note.label': 'Description',
|
|
94
|
+
'add.note.placeholder': 'Description (optional; helps the agent judge relevance)',
|
|
95
|
+
'add.hint': 'Directories are read-only references; if no description is given, the README title is used',
|
|
68
96
|
// ── In-app directory browser (browse backend) ──
|
|
69
97
|
'browser.title': 'Select Directory',
|
|
70
98
|
'browser.home': 'Home',
|
|
@@ -80,5 +108,11 @@ export const en = {
|
|
|
80
108
|
'error.notDirectory': 'Not a directory: {path}',
|
|
81
109
|
'error.unsafe': 'Path contains control characters and was rejected: {path}',
|
|
82
110
|
'error.unknownId': 'Reference library entry not found: {id}',
|
|
111
|
+
'error.unavailable': 'Reference library directory unavailable (remove only)',
|
|
112
|
+
// ── /ref-lib command result card (conversation.chat.commandview) ──
|
|
113
|
+
'command.running': 'Running…',
|
|
114
|
+
'command.done': 'Done',
|
|
115
|
+
'command.copy': 'Copy',
|
|
116
|
+
'command.copied': 'Copied',
|
|
83
117
|
};
|
|
84
118
|
//# sourceMappingURL=locales.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,0CAA0C;IAC1C,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE,iBAAiB;IACpC,aAAa;IACb,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,wCAAwC;IAC7D,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,cAAc;IAClC,YAAY,EAAE,QAAQ;IACtB,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"locales.js","sourceRoot":"","sources":["../../src/client/locales.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 并发读守卫(竞态控制核心):只接受"最后发起"的请求结果。
|
|
3
|
+
*
|
|
4
|
+
* RefLibDock 有多个并发"拉取列表"来源——挂载预载、打开面板、30s 轮询、操作后的
|
|
5
|
+
* 刷新——网络返回顺序不保证,旧快照可能覆盖新快照。守卫用递增编号标记每次发起:
|
|
6
|
+
* 返回时只有仍持有**最新编号**的请求结果才被应用,其余一律丢弃。
|
|
7
|
+
*
|
|
8
|
+
* 为什么"最后发起"就代表最新:`list` 返回的是请求发起时刻的服务端快照,发起越晚
|
|
9
|
+
* 快照越新,所以只信最后发起者 ≈ 只信最新快照。操作后的刷新总是最后发起(操作
|
|
10
|
+
* 完成后才发起),天然胜出;响应乱序时旧号被丢弃,最终一致。
|
|
11
|
+
*
|
|
12
|
+
* 纯 TS、零依赖、零 DOM——node 环境可直接单元测试(tests/refresh-guard.spec.ts)。
|
|
13
|
+
* @module @hpyperry/dsh-ref-lib/src/client/refresh-guard
|
|
14
|
+
*/
|
|
15
|
+
export declare class RefreshGuard {
|
|
16
|
+
private seq;
|
|
17
|
+
/** 发起一次请求,返回本次请求的编号。 */
|
|
18
|
+
begin(): number;
|
|
19
|
+
/**
|
|
20
|
+
* 该编号是否仍是最新发起者。
|
|
21
|
+
* @param mine - 发起时 {@link begin} 返回的编号。
|
|
22
|
+
* @returns true 表示应应用该请求的结果;false 表示期间又有新请求发起,结果已过期。
|
|
23
|
+
*/
|
|
24
|
+
isLatest(mine: number): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* 作废所有 in-flight 请求的结果(会话切换 / 组件卸载时调用):seq 递增后,
|
|
27
|
+
* 任何旧编号的 {@link isLatest} 都返回 false。
|
|
28
|
+
*/
|
|
29
|
+
invalidate(): void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=refresh-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-guard.d.ts","sourceRoot":"","sources":["../../src/client/refresh-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAI;IAEf,wBAAwB;IACxB,KAAK,IAAI,MAAM;IAKf;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;;OAGG;IACH,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 并发读守卫(竞态控制核心):只接受"最后发起"的请求结果。
|
|
3
|
+
*
|
|
4
|
+
* RefLibDock 有多个并发"拉取列表"来源——挂载预载、打开面板、30s 轮询、操作后的
|
|
5
|
+
* 刷新——网络返回顺序不保证,旧快照可能覆盖新快照。守卫用递增编号标记每次发起:
|
|
6
|
+
* 返回时只有仍持有**最新编号**的请求结果才被应用,其余一律丢弃。
|
|
7
|
+
*
|
|
8
|
+
* 为什么"最后发起"就代表最新:`list` 返回的是请求发起时刻的服务端快照,发起越晚
|
|
9
|
+
* 快照越新,所以只信最后发起者 ≈ 只信最新快照。操作后的刷新总是最后发起(操作
|
|
10
|
+
* 完成后才发起),天然胜出;响应乱序时旧号被丢弃,最终一致。
|
|
11
|
+
*
|
|
12
|
+
* 纯 TS、零依赖、零 DOM——node 环境可直接单元测试(tests/refresh-guard.spec.ts)。
|
|
13
|
+
* @module @hpyperry/dsh-ref-lib/src/client/refresh-guard
|
|
14
|
+
*/
|
|
15
|
+
export class RefreshGuard {
|
|
16
|
+
seq = 0;
|
|
17
|
+
/** 发起一次请求,返回本次请求的编号。 */
|
|
18
|
+
begin() {
|
|
19
|
+
this.seq += 1;
|
|
20
|
+
return this.seq;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 该编号是否仍是最新发起者。
|
|
24
|
+
* @param mine - 发起时 {@link begin} 返回的编号。
|
|
25
|
+
* @returns true 表示应应用该请求的结果;false 表示期间又有新请求发起,结果已过期。
|
|
26
|
+
*/
|
|
27
|
+
isLatest(mine) {
|
|
28
|
+
return mine === this.seq;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 作废所有 in-flight 请求的结果(会话切换 / 组件卸载时调用):seq 递增后,
|
|
32
|
+
* 任何旧编号的 {@link isLatest} 都返回 false。
|
|
33
|
+
*/
|
|
34
|
+
invalidate() {
|
|
35
|
+
this.seq += 1;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=refresh-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-guard.js","sourceRoot":"","sources":["../../src/client/refresh-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAY;IACf,GAAG,GAAG,CAAC,CAAA;IAEf,wBAAwB;IACxB,KAAK;QACH,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACb,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,KAAK,IAAI,CAAC,GAAG,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACf,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkuBH,mDAAmD;AACnD,wBAAgB,kBAAkB,IAAI,IAAI,CAQzC"}
|