@lemoncat7/dsh-partner 1.16.0 → 1.16.2
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 +17 -1
- package/docs/channel-message-format.md +11 -0
- package/docs/channel-reply-progress.md +18 -0
- package/docs/releases/1.16.1.md +11 -0
- package/docs/releases/1.16.2.md +11 -0
- package/lib/agent-runtime.d.ts +2 -1
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +23 -8
- package/lib/agent-runtime.js.map +1 -1
- package/lib/channels/direct/message-format.d.ts +8 -0
- package/lib/channels/direct/message-format.d.ts.map +1 -0
- package/lib/channels/direct/message-format.js +10842 -0
- package/lib/channels/direct/message-format.js.map +7 -0
- package/lib/channels/direct/progress-transport.d.ts +15 -0
- package/lib/channels/direct/progress-transport.d.ts.map +1 -0
- package/lib/channels/direct/progress-transport.js +51 -0
- package/lib/channels/direct/progress-transport.js.map +1 -0
- package/lib/channels/direct/transport.d.ts +2 -0
- package/lib/channels/direct/transport.d.ts.map +1 -1
- package/lib/channels/direct/transport.js +10 -4
- package/lib/channels/direct/transport.js.map +1 -1
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +23 -6
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/reply-progress-controller.d.ts +32 -0
- package/lib/channels/reply-progress-controller.d.ts.map +1 -0
- package/lib/channels/reply-progress-controller.js +116 -0
- package/lib/channels/reply-progress-controller.js.map +1 -0
- package/lib/client.js +8463 -1591
- package/lib/client.js.map +4 -4
- package/lib/execution/reply-progress.d.ts +7 -0
- package/lib/execution/reply-progress.d.ts.map +1 -0
- package/lib/execution/reply-progress.js +15 -0
- package/lib/execution/reply-progress.js.map +1 -0
- package/lib/pendant/markdown.d.ts +6 -0
- package/lib/pendant/markdown.d.ts.map +1 -0
- package/lib/pendant/markdown.js +92 -0
- package/lib/pendant/markdown.js.map +1 -0
- package/lib/pendant/reader.d.ts.map +1 -1
- package/lib/pendant/reader.js +2 -1
- package/lib/pendant/reader.js.map +1 -1
- package/package.json +9 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
2
|
+
export type ReplyStage = 'queued' | 'working' | 'tools' | 'composing';
|
|
3
|
+
export type ReplyProgress = (stage: ReplyStage) => void;
|
|
4
|
+
/** Deliberately expose only fixed labels, never tool names, arguments or reasoning. */
|
|
5
|
+
export declare function replyStage(event: SessionEvent): ReplyStage | undefined;
|
|
6
|
+
export declare function reportProgress(notify: ReplyProgress | undefined, stage: ReplyStage): void;
|
|
7
|
+
//# sourceMappingURL=reply-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply-progress.d.ts","sourceRoot":"","sources":["../../src/execution/reply-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAA;AAE1D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAC,UAAU,KAAG,IAAI,CAAA;AAEpD,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,KAAK,EAAC,YAAY,GAAE,UAAU,GAAC,SAAS,CAIlE;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAC,aAAa,GAAC,SAAS,EAAC,KAAK,EAAC,UAAU,GAAE,IAAI,CAEnF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Deliberately expose only fixed labels, never tool names, arguments or reasoning. */
|
|
2
|
+
export function replyStage(event) {
|
|
3
|
+
if (event.type === 'tool/call')
|
|
4
|
+
return 'tools';
|
|
5
|
+
if (event.type === 'request/header')
|
|
6
|
+
return 'composing';
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
export function reportProgress(notify, stage) {
|
|
10
|
+
try {
|
|
11
|
+
notify?.(stage);
|
|
12
|
+
}
|
|
13
|
+
catch { /* A UI observer cannot interrupt agent execution. */ }
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=reply-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply-progress.js","sourceRoot":"","sources":["../../src/execution/reply-progress.ts"],"names":[],"mappings":"AAKA,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,IAAG,KAAK,CAAC,IAAI,KAAG,WAAW;QAAC,OAAO,OAAO,CAAA;IAC1C,IAAG,KAAK,CAAC,IAAI,KAAG,gBAAgB;QAAC,OAAO,WAAW,CAAA;IACnD,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,MAA8B,EAAC,KAAgB;IAC5E,IAAG,CAAC;QAAA,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;IAAA,CAAC;IAAA,MAAK,CAAC,CAAC,qDAAqD,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/pendant/markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAQ5C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAuCpE;AAED,eAAO,MAAM,cAAc;YAAsD,MAAM;EAGrF,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { memo, useMemo } from 'react';
|
|
3
|
+
import { fromMarkdown } from 'mdast-util-from-markdown';
|
|
4
|
+
import { gfm } from 'micromark-extension-gfm';
|
|
5
|
+
import { gfmFromMarkdown } from 'mdast-util-gfm';
|
|
6
|
+
// Render an allowlisted AST with React escaping, never source HTML. Images are
|
|
7
|
+
// links: opening a notice must not automatically contact third-party servers.
|
|
8
|
+
export function renderNoticeMarkdown(source) {
|
|
9
|
+
const tree = fromMarkdown(source, { extensions: [gfm()], mdastExtensions: [gfmFromMarkdown()] });
|
|
10
|
+
const definitions = new Map();
|
|
11
|
+
const collect = (node) => {
|
|
12
|
+
if (node.type === 'definition')
|
|
13
|
+
definitions.set(node.identifier.toUpperCase(), node);
|
|
14
|
+
if ('children' in node)
|
|
15
|
+
node.children.forEach(collect);
|
|
16
|
+
};
|
|
17
|
+
tree.children.forEach(collect);
|
|
18
|
+
const link = (url, children) => url && !/[\s\u0000-\u001f\u007f]/.test(url) && /^(https?:\/\/|mailto:|matrix:)/i.test(url)
|
|
19
|
+
? _jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", children: children }) : children;
|
|
20
|
+
const render = (node, key) => {
|
|
21
|
+
const children = 'children' in node ? node.children.map(render) : null;
|
|
22
|
+
let content;
|
|
23
|
+
switch (node.type) {
|
|
24
|
+
case 'text':
|
|
25
|
+
case 'html':
|
|
26
|
+
content = node.value;
|
|
27
|
+
break;
|
|
28
|
+
case 'paragraph':
|
|
29
|
+
content = _jsx("p", { children: children });
|
|
30
|
+
break;
|
|
31
|
+
case 'heading':
|
|
32
|
+
content = React.createElement(`h${Math.min(6, node.depth + 2)}`, null, children);
|
|
33
|
+
break;
|
|
34
|
+
case 'strong':
|
|
35
|
+
content = _jsx("strong", { children: children });
|
|
36
|
+
break;
|
|
37
|
+
case 'emphasis':
|
|
38
|
+
content = _jsx("em", { children: children });
|
|
39
|
+
break;
|
|
40
|
+
case 'delete':
|
|
41
|
+
content = _jsx("del", { children: children });
|
|
42
|
+
break;
|
|
43
|
+
case 'inlineCode':
|
|
44
|
+
content = _jsx("code", { children: node.value });
|
|
45
|
+
break;
|
|
46
|
+
case 'code':
|
|
47
|
+
content = _jsx("pre", { tabIndex: 0, "aria-label": "\u4EE3\u7801\u5757", children: _jsx("code", { children: node.value }) });
|
|
48
|
+
break;
|
|
49
|
+
case 'blockquote':
|
|
50
|
+
content = _jsx("blockquote", { children: children });
|
|
51
|
+
break;
|
|
52
|
+
case 'break':
|
|
53
|
+
content = _jsx("br", {});
|
|
54
|
+
break;
|
|
55
|
+
case 'thematicBreak':
|
|
56
|
+
content = _jsx("hr", {});
|
|
57
|
+
break;
|
|
58
|
+
case 'list':
|
|
59
|
+
content = node.ordered ? _jsx("ol", { start: node.start ?? 1, children: children }) : _jsx("ul", { children: children });
|
|
60
|
+
break;
|
|
61
|
+
case 'listItem':
|
|
62
|
+
content = _jsxs("li", { children: [typeof node.checked === 'boolean' && _jsx("input", { type: "checkbox", checked: node.checked, disabled: true, "aria-label": node.checked ? '已完成' : '未完成' }), children] });
|
|
63
|
+
break;
|
|
64
|
+
case 'link':
|
|
65
|
+
content = link(node.url, children);
|
|
66
|
+
break;
|
|
67
|
+
case 'image':
|
|
68
|
+
content = link(node.url, node.alt || '图片');
|
|
69
|
+
break;
|
|
70
|
+
case 'linkReference':
|
|
71
|
+
content = link(definitions.get(node.identifier.toUpperCase())?.url, children);
|
|
72
|
+
break;
|
|
73
|
+
case 'imageReference':
|
|
74
|
+
content = link(definitions.get(node.identifier.toUpperCase())?.url, node.alt || '图片');
|
|
75
|
+
break;
|
|
76
|
+
case 'table':
|
|
77
|
+
content = _jsx("div", { className: "dsh-partner-pendant-table", tabIndex: 0, role: "region", "aria-label": "\u8868\u683C", children: _jsxs("table", { children: [_jsx("thead", { children: _jsx("tr", { children: node.children[0]?.children.map((cell, i) => _jsx("th", { scope: "col", style: { textAlign: node.align?.[i] ?? undefined }, children: cell.children.map(render) }, i)) }) }), _jsx("tbody", { children: node.children.slice(1).map((row, i) => _jsx("tr", { children: row.children.map((cell, j) => _jsx("td", { style: { textAlign: node.align?.[j] ?? undefined }, children: cell.children.map(render) }, j)) }, i)) })] }) });
|
|
78
|
+
break;
|
|
79
|
+
case 'definition':
|
|
80
|
+
content = null;
|
|
81
|
+
break;
|
|
82
|
+
default: content = children;
|
|
83
|
+
}
|
|
84
|
+
return _jsx(React.Fragment, { children: content }, key);
|
|
85
|
+
};
|
|
86
|
+
return tree.children.map(render);
|
|
87
|
+
}
|
|
88
|
+
export const NoticeMarkdown = memo(function NoticeMarkdown({ source }) {
|
|
89
|
+
const content = useMemo(() => renderNoticeMarkdown(source), [source]);
|
|
90
|
+
return _jsx("div", { className: "dsh-partner-pendant-markdown", children: content });
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/pendant/markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA;IAChG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAA;IACjD,MAAM,OAAO,GAAG,CAAC,IAAiB,EAAQ,EAAE;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAA;QACpF,IAAI,UAAU,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC,CAAA;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,GAAuB,EAAE,QAAyB,EAAmB,EAAE,CACnF,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,iCAAiC,CAAC,IAAI,CAAC,GAAG,CAAC;QACxF,CAAC,CAAC,YAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,YAAE,QAAQ,GAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvF,MAAM,MAAM,GAAG,CAAC,IAAiB,EAAE,GAAW,EAAmB,EAAE;QACjE,MAAM,QAAQ,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACtE,IAAI,OAAwB,CAAA;QAC5B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC;YAAC,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;gBAAC,MAAK;YACrD,KAAK,WAAW;gBAAE,OAAO,GAAG,sBAAI,QAAQ,GAAK,CAAC;gBAAC,MAAK;YACpD,KAAK,SAAS;gBAAE,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAK;YACvG,KAAK,QAAQ;gBAAE,OAAO,GAAG,2BAAS,QAAQ,GAAU,CAAC;gBAAC,MAAK;YAC3D,KAAK,UAAU;gBAAE,OAAO,GAAG,uBAAK,QAAQ,GAAM,CAAC;gBAAC,MAAK;YACrD,KAAK,QAAQ;gBAAE,OAAO,GAAG,wBAAM,QAAQ,GAAO,CAAC;gBAAC,MAAK;YACrD,KAAK,YAAY;gBAAE,OAAO,GAAG,yBAAO,IAAI,CAAC,KAAK,GAAQ,CAAC;gBAAC,MAAK;YAC7D,KAAK,MAAM;gBAAE,OAAO,GAAG,cAAK,QAAQ,EAAE,CAAC,gBAAa,oBAAK,YAAC,yBAAO,IAAI,CAAC,KAAK,GAAQ,GAAM,CAAC;gBAAC,MAAK;YAChG,KAAK,YAAY;gBAAE,OAAO,GAAG,+BAAa,QAAQ,GAAc,CAAC;gBAAC,MAAK;YACvE,KAAK,OAAO;gBAAE,OAAO,GAAG,cAAM,CAAC;gBAAC,MAAK;YACrC,KAAK,eAAe;gBAAE,OAAO,GAAG,cAAM,CAAC;gBAAC,MAAK;YAC7C,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAI,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,YAAG,QAAQ,GAAM,CAAC,CAAC,CAAC,uBAAK,QAAQ,GAAM,CAAC;gBAAC,MAAK;YAC9G,KAAK,UAAU;gBAAE,OAAO,GAAG,yBAAK,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,sBAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,IAAM,CAAC;gBAAC,MAAK;YAC/L,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAK;YACtD,KAAK,OAAO;gBAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;gBAAC,MAAK;YAC/D,KAAK,eAAe;gBAAE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAK;YAC1G,KAAK,gBAAgB;gBAAE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;gBAAC,MAAK;YACnH,KAAK,OAAO;gBAAE,OAAO,GAAG,cAAK,SAAS,EAAC,2BAA2B,EAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAC,QAAQ,gBAAY,cAAI,YAAC,4BAAO,0BAAO,uBAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,aAAY,KAAK,EAAC,KAAK,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,YAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAA7F,CAAC,CAAkG,CAAC,GAAM,GAAQ,EAAA,0BAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAa,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,aAAY,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,YAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAjF,CAAC,CAAsF,CAAC,IAAnI,CAAC,CAAwI,CAAC,GAAS,IAAQ,GAAM,CAAC;gBAAC,MAAK;YACxgB,KAAK,YAAY;gBAAE,OAAO,GAAG,IAAI,CAAC;gBAAC,MAAK;YACxC,OAAO,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAA;QAC7B,CAAC;QACD,OAAO,KAAC,KAAK,CAAC,QAAQ,cAAY,OAAO,IAAb,GAAG,CAA4B,CAAA;IAC7D,CAAC,CAAA;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,cAAc,CAAC,EAAE,MAAM,EAAsB;IACvF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,OAAO,cAAK,SAAS,EAAC,8BAA8B,YAAE,OAAO,GAAO,CAAA;AACtE,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/pendant/reader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/pendant/reader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI7E,UAAU,KAAK;IACb,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACtG,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,SAAS,IAAI,IAAI,CAAA;CAC/H;AACD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAmC3H"}
|
package/lib/pendant/reader.js
CHANGED
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
3
3
|
import { IconCheckOutline14, IconChevronDownOutline14, IconCloseOutline16, IconLinkOutline16, IconNewChatOutline16 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
4
|
import { readerPlacement } from './use-placement.js';
|
|
5
|
+
import { NoticeMarkdown } from './markdown.js';
|
|
5
6
|
export function PendantReader({ inbox, selected, error, anchor, onSelect, onClose, onVisit, onReadAll }) {
|
|
6
7
|
const panel = useRef(null), [visible, setVisible] = useState(8);
|
|
7
8
|
const measure = () => readerPlacement(anchor.current?.getBoundingClientRect() ?? { x: innerWidth / 2, y: 16, width: 0, height: 0 }, { width: innerWidth, height: innerHeight });
|
|
@@ -31,7 +32,7 @@ export function PendantReader({ inbox, selected, error, anchor, onSelect, onClos
|
|
|
31
32
|
document.addEventListener('keydown', escape);
|
|
32
33
|
return () => { document.removeEventListener('pointerdown', outside); document.removeEventListener('keydown', escape); };
|
|
33
34
|
}, [onClose, anchor]);
|
|
34
|
-
return _jsxs("section", { ref: panel, id: "dsh-partner-pendant-inbox", className: "dsh-partner-pendant-inbox", "aria-label": "\u4F19\u4F34\u6D88\u606F", tabIndex: -1, style: placement, children: [_jsxs("header", { children: [detail && _jsx("button", { type: "button", "aria-label": "\u8FD4\u56DE\u6D88\u606F\u5217\u8868", onClick: () => onSelect(), children: _jsx(IconChevronDownOutline14, { size: 16, className: "dsh-partner-pendant-back" }) }), !detail && _jsx("span", { className: "dsh-partner-pendant-reader-icon", "aria-hidden": "true", children: _jsx(IconNewChatOutline16, { size: 18 }) }), _jsxs("div", { className: "dsh-partner-pendant-reader-heading", children: [_jsx("strong", { children: detail ? detail.companionName : '伙伴消息' }), _jsx("small", { children: detail ? '来自伙伴的消息' : '回复与任务动态' })] }), !!inbox.unread && _jsx("span", { className: "dsh-partner-pendant-reader-count", "aria-label": `${inbox.unread} 条未读`, children: inbox.unread }), _jsx("button", { type: "button", "aria-label": "\u5173\u95ED\u4F19\u4F34\u6D88\u606F", onClick: event => onClose(event.detail === 0), children: _jsx(IconCloseOutline16, { size: 16 }) })] }), error && _jsx("p", { role: "alert", className: "dsh-partner-pendant-error", children: error }), detail ? _jsxs(_Fragment, { children: [_jsxs("article", { className: "dsh-partner-pendant-detail", children: [_jsxs("div", { className: "dsh-partner-pendant-reader-meta", children: [_jsx("span", { children: detail.kind === 'task' ? '任务动态' : detail.kind === 'schedule' ? '定时任务' : '会话回复' }), _jsx("time", { dateTime: new Date(detail.createdAt).toISOString(), children: new Date(detail.createdAt).toLocaleString([], { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })] }), _jsx("h3", { children: detail.title }), _jsx(
|
|
35
|
+
return _jsxs("section", { ref: panel, id: "dsh-partner-pendant-inbox", className: "dsh-partner-pendant-inbox", "aria-label": "\u4F19\u4F34\u6D88\u606F", tabIndex: -1, style: placement, children: [_jsxs("header", { children: [detail && _jsx("button", { type: "button", "aria-label": "\u8FD4\u56DE\u6D88\u606F\u5217\u8868", onClick: () => onSelect(), children: _jsx(IconChevronDownOutline14, { size: 16, className: "dsh-partner-pendant-back" }) }), !detail && _jsx("span", { className: "dsh-partner-pendant-reader-icon", "aria-hidden": "true", children: _jsx(IconNewChatOutline16, { size: 18 }) }), _jsxs("div", { className: "dsh-partner-pendant-reader-heading", children: [_jsx("strong", { children: detail ? detail.companionName : '伙伴消息' }), _jsx("small", { children: detail ? '来自伙伴的消息' : '回复与任务动态' })] }), !!inbox.unread && _jsx("span", { className: "dsh-partner-pendant-reader-count", "aria-label": `${inbox.unread} 条未读`, children: inbox.unread }), _jsx("button", { type: "button", "aria-label": "\u5173\u95ED\u4F19\u4F34\u6D88\u606F", onClick: event => onClose(event.detail === 0), children: _jsx(IconCloseOutline16, { size: 16 }) })] }), error && _jsx("p", { role: "alert", className: "dsh-partner-pendant-error", children: error }), detail ? _jsxs(_Fragment, { children: [_jsxs("article", { className: "dsh-partner-pendant-detail", children: [_jsxs("div", { className: "dsh-partner-pendant-reader-meta", children: [_jsx("span", { children: detail.kind === 'task' ? '任务动态' : detail.kind === 'schedule' ? '定时任务' : '会话回复' }), _jsx("time", { dateTime: new Date(detail.createdAt).toISOString(), children: new Date(detail.createdAt).toLocaleString([], { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) })] }), _jsx("h3", { children: detail.title }), _jsx(NoticeMarkdown, { source: detail.summary })] }), _jsxs("footer", { children: [_jsxs("button", { type: "button", className: "dsh-partner-pendant-all-messages", onClick: () => onSelect(), children: ["\u5168\u90E8\u6D88\u606F", _jsx("span", { children: inbox.items.length })] }), _jsxs("button", { type: "button", className: "dsh-partner-pendant-source", onClick: () => onVisit(detail), children: [_jsx(IconLinkOutline16, { size: 15 }), detail.kind === 'task' ? '查看任务' : detail.kind === 'schedule' ? '查看定时任务' : '进入会话'] })] })] })
|
|
35
36
|
: _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-partner-pendant-list", children: [inbox.items.length ? inbox.items.slice(0, visible).map(item => _jsxs("button", { type: "button", "data-unread": item.readAt === undefined, onClick: () => onSelect(item), children: [_jsxs("span", { children: [_jsx("strong", { children: item.companionName }), _jsx("time", { children: new Date(item.createdAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) })] }), _jsx("b", { children: item.title }), _jsx("small", { children: item.summary.replace(/\s+/g, ' ').slice(0, 100) })] }, item.id)) : _jsx("p", { className: "dsh-partner-pendant-empty", children: "\u6682\u65F6\u6CA1\u6709\u65B0\u6D88\u606F" }), inbox.items.length > visible && _jsx("button", { type: "button", onClick: () => setVisible(count => count + 8), children: "\u663E\u793A\u66F4\u591A\u6D88\u606F" })] }), _jsxs("footer", { children: [_jsxs("small", { children: ["\u6700\u8FD1 ", inbox.items.length, " \u6761"] }), _jsxs("button", { type: "button", disabled: !inbox.unread, onClick: onReadAll, children: [_jsx(IconCheckOutline14, { size: 14 }), "\u5168\u90E8\u5DF2\u8BFB"] })] })] })] });
|
|
36
37
|
}
|
|
37
38
|
//# sourceMappingURL=reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/pendant/reader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAEjK,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/pendant/reader.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemoncat7/dsh-partner",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.2",
|
|
4
4
|
"description": "Long-lived AI companions with WeChat, Matrix and Mattermost channels for DeepSeek Harness",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
@@ -38,6 +38,10 @@
|
|
|
38
38
|
"docs/releases/1.14.2.md",
|
|
39
39
|
"docs/releases/1.15.0.md",
|
|
40
40
|
"docs/releases/1.16.0.md",
|
|
41
|
+
"docs/releases/1.16.1.md",
|
|
42
|
+
"docs/releases/1.16.2.md",
|
|
43
|
+
"docs/channel-reply-progress.md",
|
|
44
|
+
"docs/channel-message-format.md",
|
|
41
45
|
"docs/notification-delivery.md",
|
|
42
46
|
"docs/direct-channels.md",
|
|
43
47
|
"docs/THIRD_PARTY_LICENSES.md",
|
|
@@ -71,6 +75,10 @@
|
|
|
71
75
|
"pack:check": "npm pack --dry-run"
|
|
72
76
|
},
|
|
73
77
|
"dependencies": {
|
|
78
|
+
"mdast-util-from-markdown": "2.0.3",
|
|
79
|
+
"mdast-util-gfm": "3.1.0",
|
|
80
|
+
"mdast-util-to-markdown": "2.1.2",
|
|
81
|
+
"micromark-extension-gfm": "3.0.0",
|
|
74
82
|
"@deepseek-ai/schemastery": "^3.18.1"
|
|
75
83
|
},
|
|
76
84
|
"peerDependencies": {
|