@lemoncat7/dsh-partner 2.24.0-rc.9 → 2.25.8
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 +2 -2
- package/docs/releases/2.24.0-rc.10.md +8 -0
- package/docs/releases/2.24.0-rc.11.md +10 -0
- package/docs/releases/2.25.0-rc.1.md +12 -0
- package/docs/releases/2.25.0-rc.11.md +5 -0
- package/docs/releases/2.25.0-rc.2.md +10 -0
- package/docs/releases/2.25.0-rc.3.md +11 -0
- package/docs/releases/2.25.0-rc.4.md +3 -0
- package/docs/releases/2.25.0-rc.5.md +3 -0
- package/docs/releases/2.25.0.md +32 -0
- package/docs/releases/2.25.1.md +11 -0
- package/docs/releases/2.25.2.md +8 -0
- package/docs/releases/2.25.3.md +11 -0
- package/docs/releases/2.25.4.md +10 -0
- package/docs/releases/2.25.5.md +10 -0
- package/docs/releases/2.25.6.md +7 -0
- package/docs/releases/2.25.7.md +9 -0
- package/docs/releases/2.25.8.md +7 -0
- package/lib/agent-runtime.d.ts +2 -1
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +45 -18
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/tts-api.d.ts +4 -0
- package/lib/api/features/tts-api.d.ts.map +1 -0
- package/lib/api/features/tts-api.js +49 -0
- package/lib/api/features/tts-api.js.map +1 -0
- package/lib/api.d.ts +2 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +11 -5
- package/lib/api.js.map +1 -1
- package/lib/attachments/delivery-receipt.d.ts +15 -0
- package/lib/attachments/delivery-receipt.d.ts.map +1 -1
- package/lib/attachments/delivery-receipt.js +23 -0
- package/lib/attachments/delivery-receipt.js.map +1 -1
- package/lib/channels/activity-defaults.d.ts.map +1 -1
- package/lib/channels/activity-defaults.js +5 -0
- package/lib/channels/activity-defaults.js.map +1 -1
- package/lib/channels/direct/transport.d.ts +1 -1
- package/lib/channels/direct/transport.d.ts.map +1 -1
- package/lib/channels/manager.d.ts +3 -0
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +30 -2
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/outbound-media.d.ts +1 -1
- package/lib/channels/outbound-media.d.ts.map +1 -1
- package/lib/channels/outbound-media.js +3 -2
- package/lib/channels/outbound-media.js.map +1 -1
- package/lib/channels/qq/authority.js +1 -1
- package/lib/channels/qq/authority.js.map +1 -1
- package/lib/channels/qq/reply-tool.d.ts +1 -1
- package/lib/channels/qq/reply-tool.d.ts.map +1 -1
- package/lib/channels/qq/reply-tool.js +14 -7
- package/lib/channels/qq/reply-tool.js.map +1 -1
- package/lib/channels/weixin/api.d.ts +1 -1
- package/lib/channels/weixin/api.d.ts.map +1 -1
- package/lib/channels/weixin/api.js +7 -1
- package/lib/channels/weixin/api.js.map +1 -1
- package/lib/channels/weixin/connect.d.ts +2 -0
- package/lib/channels/weixin/connect.d.ts.map +1 -1
- package/lib/character/activity-journal.d.ts +3 -1
- package/lib/character/activity-journal.d.ts.map +1 -1
- package/lib/character/activity-journal.js +43 -7
- package/lib/character/activity-journal.js.map +1 -1
- package/lib/character/activity-summary.d.ts +23 -0
- package/lib/character/activity-summary.d.ts.map +1 -0
- package/lib/character/activity-summary.js +23 -0
- package/lib/character/activity-summary.js.map +1 -0
- package/lib/character/activity-tool.js +1 -1
- package/lib/character/activity-tool.js.map +1 -1
- package/lib/character/conversation-behavior.d.ts +2 -0
- package/lib/character/conversation-behavior.d.ts.map +1 -1
- package/lib/character/conversation-behavior.js +20 -7
- package/lib/character/conversation-behavior.js.map +1 -1
- package/lib/character/domain.d.ts +1 -0
- package/lib/character/domain.d.ts.map +1 -1
- package/lib/character/domain.js +3 -0
- package/lib/character/domain.js.map +1 -1
- package/lib/character/idle-contact.d.ts +8 -1
- package/lib/character/idle-contact.d.ts.map +1 -1
- package/lib/character/idle-contact.js +64 -10
- package/lib/character/idle-contact.js.map +1 -1
- package/lib/character/thought-budget.d.ts +8 -0
- package/lib/character/thought-budget.d.ts.map +1 -0
- package/lib/character/thought-budget.js +39 -0
- package/lib/character/thought-budget.js.map +1 -0
- package/lib/character/thought-tool.d.ts.map +1 -1
- package/lib/character/thought-tool.js +38 -16
- package/lib/character/thought-tool.js.map +1 -1
- package/lib/character/thoughts.d.ts +3 -1
- package/lib/character/thoughts.d.ts.map +1 -1
- package/lib/character/thoughts.js +20 -16
- package/lib/character/thoughts.js.map +1 -1
- package/lib/chat/conversation.js +1 -1
- package/lib/chat/conversation.js.map +1 -1
- package/lib/chat/live-speech.d.ts +4 -2
- package/lib/chat/live-speech.d.ts.map +1 -1
- package/lib/chat/live-speech.js +43 -33
- package/lib/chat/live-speech.js.map +1 -1
- package/lib/chat/persona-delivery.d.ts +2 -0
- package/lib/chat/persona-delivery.d.ts.map +1 -1
- package/lib/chat/persona-delivery.js +19 -18
- package/lib/chat/persona-delivery.js.map +1 -1
- package/lib/chat/preferred-voice.d.ts +21 -0
- package/lib/chat/preferred-voice.d.ts.map +1 -0
- package/lib/chat/preferred-voice.js +75 -0
- package/lib/chat/preferred-voice.js.map +1 -0
- package/lib/chat/protocol.d.ts +5 -2
- package/lib/chat/protocol.d.ts.map +1 -1
- package/lib/chat/protocol.js +1 -1
- package/lib/chat/protocol.js.map +1 -1
- package/lib/chat/reply-completion.d.ts +3 -1
- package/lib/chat/reply-completion.d.ts.map +1 -1
- package/lib/chat/reply-completion.js +13 -5
- package/lib/chat/reply-completion.js.map +1 -1
- package/lib/chat/task-followup.d.ts +59 -0
- package/lib/chat/task-followup.d.ts.map +1 -0
- package/lib/chat/task-followup.js +111 -0
- package/lib/chat/task-followup.js.map +1 -0
- package/lib/chat/tools.d.ts +2 -1
- package/lib/chat/tools.d.ts.map +1 -1
- package/lib/chat/tools.js +39 -17
- package/lib/chat/tools.js.map +1 -1
- package/lib/client-api.d.ts +7 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client.activities.js +57 -0
- package/lib/client.js +1169 -1134
- package/lib/client.js.map +4 -4
- package/lib/client.tts.js +7 -0
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +1 -3
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/tool-discovery.d.ts +1 -1
- package/lib/collaboration/tool-discovery.d.ts.map +1 -1
- package/lib/collaboration/tool-discovery.js +12 -7
- package/lib/collaboration/tool-discovery.js.map +1 -1
- package/lib/companions/identity-tool.d.ts +3 -0
- package/lib/companions/identity-tool.d.ts.map +1 -1
- package/lib/companions/identity-tool.js +1 -1
- package/lib/companions/identity-tool.js.map +1 -1
- package/lib/companions/management.d.ts +4 -4
- package/lib/concern-execution-receipt.d.ts +2 -1
- package/lib/concern-execution-receipt.d.ts.map +1 -1
- package/lib/concern-execution-receipt.js +15 -13
- package/lib/concern-execution-receipt.js.map +1 -1
- package/lib/concern-execution.d.ts +3 -1
- package/lib/concern-execution.d.ts.map +1 -1
- package/lib/concern-execution.js +20 -1
- package/lib/concern-execution.js.map +1 -1
- package/lib/concern-recording.d.ts +1 -1
- package/lib/concern-recording.d.ts.map +1 -1
- package/lib/concern-recording.js +14 -5
- package/lib/concern-recording.js.map +1 -1
- package/lib/concern-store.d.ts.map +1 -1
- package/lib/concern-store.js +3 -1
- package/lib/concern-store.js.map +1 -1
- package/lib/conversation-history-recall.d.ts +7 -0
- package/lib/conversation-history-recall.d.ts.map +1 -1
- package/lib/conversation-history-recall.js +15 -7
- package/lib/conversation-history-recall.js.map +1 -1
- package/lib/domain.d.ts +3 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/execution/task-preamble.d.ts +3 -0
- package/lib/execution/task-preamble.d.ts.map +1 -1
- package/lib/execution/task-preamble.js +32 -2
- package/lib/execution/task-preamble.js.map +1 -1
- package/lib/execution/work-tool.js +1 -1
- package/lib/execution/work-tool.js.map +1 -1
- package/lib/heartbeat.js +1 -1
- package/lib/heartbeat.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -3
- package/lib/index.js.map +1 -1
- package/lib/memory-store.d.ts +1 -1
- package/lib/observation-loop.d.ts.map +1 -1
- package/lib/observation-loop.js +7 -3
- package/lib/observation-loop.js.map +1 -1
- package/lib/rolling-context.d.ts +1 -1
- package/lib/rolling-context.d.ts.map +1 -1
- package/lib/rolling-context.js +1 -1
- package/lib/rolling-context.js.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +16 -3
- package/lib/store.js.map +1 -1
- package/lib/ui/channels-panel.d.ts.map +1 -1
- package/lib/ui/channels-panel.js +9 -3
- package/lib/ui/channels-panel.js.map +1 -1
- package/lib/ui/character-editor.js +1 -1
- package/lib/ui/character-editor.js.map +1 -1
- package/lib/ui/identity-editor.js +1 -1
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/idle-contact-editor.d.ts.map +1 -1
- package/lib/ui/idle-contact-editor.js +2 -3
- package/lib/ui/idle-contact-editor.js.map +1 -1
- package/lib/ui/memory/concern-board.js +1 -1
- package/lib/ui/memory/concern-board.js.map +1 -1
- package/lib/ui/memory/concern-execution-status.d.ts.map +1 -1
- package/lib/ui/memory/concern-execution-status.js +2 -2
- package/lib/ui/memory/concern-execution-status.js.map +1 -1
- package/lib/ui/push-draft.d.ts +2 -2
- package/lib/ui/qq-channel-settings.js +3 -3
- package/lib/ui/qq-channel-settings.js.map +1 -1
- package/lib/ui/thoughts-panel-loader.d.ts +4 -0
- package/lib/ui/thoughts-panel-loader.d.ts.map +1 -0
- package/lib/ui/thoughts-panel-loader.js +23 -0
- package/lib/ui/thoughts-panel-loader.js.map +1 -0
- package/lib/ui/thoughts-panel.d.ts.map +1 -1
- package/lib/ui/thoughts-panel.js +27 -10
- package/lib/ui/thoughts-panel.js.map +1 -1
- package/lib/ui/tts-settings-loader.d.ts +4 -0
- package/lib/ui/tts-settings-loader.d.ts.map +1 -0
- package/lib/ui/tts-settings-loader.js +23 -0
- package/lib/ui/tts-settings-loader.js.map +1 -0
- package/lib/ui/tts-settings.d.ts +11 -0
- package/lib/ui/tts-settings.d.ts.map +1 -0
- package/lib/ui/tts-settings.js +63 -0
- package/lib/ui/tts-settings.js.map +1 -0
- package/lib/voice/audio-tail.d.ts +6 -0
- package/lib/voice/audio-tail.d.ts.map +1 -0
- package/lib/voice/audio-tail.js +72 -0
- package/lib/voice/audio-tail.js.map +1 -0
- package/lib/voice/credentials.d.ts +9 -0
- package/lib/voice/credentials.d.ts.map +1 -0
- package/lib/voice/credentials.js +12 -0
- package/lib/voice/credentials.js.map +1 -0
- package/lib/voice/domain.d.ts +42 -0
- package/lib/voice/domain.d.ts.map +1 -0
- package/lib/voice/domain.js +53 -0
- package/lib/voice/domain.js.map +1 -0
- package/lib/voice/service.d.ts +63 -0
- package/lib/voice/service.d.ts.map +1 -0
- package/lib/voice/service.js +211 -0
- package/lib/voice/service.js.map +1 -0
- package/lib/voice/synthesize.d.ts +12 -0
- package/lib/voice/synthesize.d.ts.map +1 -0
- package/lib/voice/synthesize.js +99 -0
- package/lib/voice/synthesize.js.map +1 -0
- package/lib/voice/tool.d.ts +7 -0
- package/lib/voice/tool.d.ts.map +1 -0
- package/lib/voice/tool.js +75 -0
- package/lib/voice/tool.js.map +1 -0
- package/lib/voice/validation.d.ts +3 -0
- package/lib/voice/validation.d.ts.map +1 -0
- package/lib/voice/validation.js +31 -0
- package/lib/voice/validation.js.map +1 -0
- package/package.json +18 -1
|
@@ -10,7 +10,7 @@ import { api } from '../client-api.js';
|
|
|
10
10
|
import { qqSettings, qqGroupPeer } from '../channels/qq/settings.js';
|
|
11
11
|
import { ChannelStatus } from './partner-components.js';
|
|
12
12
|
import { errorMessage } from './workspace-components.js';
|
|
13
|
-
const titles = { chat: '聊天互动', voice: '
|
|
13
|
+
const titles = { chat: '聊天互动', voice: 'QQ 原生语音', capabilities: '私有能力', home: 'QQ 设置', connection: '连接与账号', private: '私聊回复', group: '群聊回复', groups: '选择群组', autonomy: '自主回复白名单', sessions: '会话与记忆', media: '表情与图片', access: '访问权限', send: '发送消息' };
|
|
14
14
|
export function QqChannelSettings({ channel, pairings, onChanged, onDeleted, editState }) {
|
|
15
15
|
const [page, setPage] = useState('home'), [policy, setPolicy] = useState(() => qqSettings(channel.qq)), [busy, setBusy] = useState(false), [feedback, setFeedback] = useState(''), [failed, setFailed] = useState(false);
|
|
16
16
|
const [url, setUrl] = useState(channel.direct?.baseUrl ?? ''), [token, setToken] = useState(''), [confirmDelete, setConfirmDelete] = useState(false);
|
|
@@ -20,7 +20,7 @@ export function QqChannelSettings({ channel, pairings, onChanged, onDeleted, edi
|
|
|
20
20
|
const [faces, setFaces] = useState([]), [userId, setUserId] = useState(''), [mode, setMode] = useState('text'), [text, setText] = useState(''), [face, setFace] = useState();
|
|
21
21
|
const filteredFaces = faces.filter(f => (!category || f.category === category) && (f.name + f.id + f.category).includes(search));
|
|
22
22
|
const dirty = JSON.stringify(policy) !== JSON.stringify(qqSettings(channel.qq));
|
|
23
|
-
useEffect(() => { editState.current = { dirty: dirty || url !== (channel.direct?.baseUrl ?? '') || !!token, busy }; return () => { editState.current = { dirty: false, busy: false }; }; }, [dirty, url, token, busy, channel.direct?.baseUrl, editState]);
|
|
23
|
+
useEffect(() => { editState.current = { dirty: dirty || url !== (channel.direct?.baseUrl ?? '') || !!token, busy: busy }; return () => { editState.current = { dirty: false, busy: false }; }; }, [dirty, url, token, busy, channel.direct?.baseUrl, editState]);
|
|
24
24
|
const owned = pairings.filter(p => p.channelId === channel.id), approved = owned.filter(p => p.status === 'approved');
|
|
25
25
|
const groupWhite = (userId) => { const peer = qqGroupPeer(userId); return !!peer && policy.groupReplies && policy.groupIds.includes(peer.groupId) && policy.autonomousGroupIds.includes(peer.groupId); };
|
|
26
26
|
const change = (patch) => setPolicy(current => ({ ...current, ...patch }));
|
|
@@ -44,7 +44,7 @@ export function QqChannelSettings({ channel, pairings, onChanged, onDeleted, edi
|
|
|
44
44
|
const loadPeers = () => run(async () => { const [g, f] = await Promise.all([api(`/channels/${channel.id}/qq/groups`), api(`/channels/${channel.id}/qq/friends`)]); setGroups(g.groups); setGroupsLoaded(true); setFriends(f.friends); });
|
|
45
45
|
const loadFaces = () => run(async () => { const data = await api(`/channels/${channel.id}/qq/faces`); setFaces(data.faces); });
|
|
46
46
|
const entry = (next, detail, note) => _jsxs("button", { type: "button", className: "dsh-partner-qq-entry", disabled: busy, onClick: () => go(next), children: [_jsx("span", { className: "dsh-partner-qq-glyph", "aria-hidden": "true", children: _jsx(Glyph, { name: next }) }), _jsxs("span", { children: [_jsx("strong", { children: titles[next] }), _jsx("small", { children: detail })] }), note && _jsx("em", { children: note }), _jsx("span", { "aria-hidden": "true", children: "\u203A" })] });
|
|
47
|
-
return _jsxs("div", { className: "dsh-partner-qq-settings", "aria-busy": busy, children: [page !== 'home' && _jsxs("nav", { className: "dsh-partner-qq-breadcrumb", "aria-label": "QQ \u8BBE\u7F6E\u5BFC\u822A", children: [_jsxs("button", { type: "button", disabled: busy, onClick: () => go((page === 'groups' || page === 'autonomy') ? 'group' : 'home'), children: ["\u2039 ", (page === 'groups' || page === 'autonomy') ? '群聊回复' : 'QQ 设置'] }), _jsx("span", { "aria-hidden": "true", children: "/" }), _jsx("strong", { children: titles[page] })] }), page === 'home' ? _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-partner-qq-account", children: [_jsxs("div", { children: [_jsx("small", { children: "QQ \u8D26\u53F7" }), _jsx("strong", { children: channel.accountId }), _jsx("span", { children: "SnowLuma \u00B7 \u6B63\u5411 WebSocket" })] }), _jsx(ChannelStatus, { channel: channel })] }), _jsx(QqConnectionGuide, {}), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u8FDE\u63A5" }), entry('connection', '管理服务器、凭据与连接状态'), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u804A\u5929\u56DE\u590D \u00B7 \u7FA4\u767D\u540D\u5355\u4E0E\u8D26\u53F7\u5BA1\u6279" }), entry('private', '好友私聊与配对授权', policy.privateReplies ? '开启' : '关闭'), entry('group', '选择群组,设置何时回复', policy.groupReplies ? `${policy.groupIds.length} 个群` : '关闭'), entry('sessions', '独立聊天,按需接入主会话', `${policy.mainSessionPeers.length} 个共用`), entry('media', 'QQ 原生表情、收藏与默认库'), entry('chat', '消息表情回应与当前群信息', `${policy.enabledActions.filter(id => QQ_PUBLIC_SCOPED_ACTIONS.has(id)).length} 项开启`), entry('voice', '仅向当前聊天对象发送语音', policy.replyVoiceEnabled ? '开启' : '关闭'), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u79C1\u6709\u80FD\u529B \u00B7 \u5F52\u5C5E\u8D26\u53F7\u4E0E\u7CFB\u7EDF\u81EA\u4E3B\u6267\u884C" }), entry('capabilities', 'QQ 空间、资料与群管理', policy.autonomousActions ? `${policy.enabledActions.filter(id => !QQ_PUBLIC_CHAT_ACTIONS.has(id)).length} 项开启` : '关闭'), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u7BA1\u7406\u4E0E\u64CD\u4F5C" }), entry('access', '归属账号、关系与能力范围', `${owned.filter(p => p.status === 'pending').length} 待批准`), entry('send', '选择已授权接收人,发送文字或表情')] }) : page === 'chat' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u5DF2\u83B7\u804A\u5929\u8BB8\u53EF\u7684\u8054\u7CFB\u4EBA\u548C\u7FA4\u6210\u5458\u90FD\u53EF\u4F7F\u7528\u5F00\u542F\u7684\u64CD\u4F5C\uFF0C\u4E0D\u4F9D\u8D56\u79C1\u6709\u80FD\u529B\u603B\u5F00\u5173\u3002\u8868\u60C5\u56DE\u5E94\u662F\u9644\u5728\u4E00\u6761\u6D88\u606F\u65C1\u7684\u5C0F\u8868\u60C5\uFF1B\u7FA4\u4FE1\u606F\u67E5\u8BE2\u4EC5\u9650\u5F53\u524D\u7FA4\uFF0C\u4E0D\u5141\u8BB8\u67E5\u770B\u5176\u4ED6\u7FA4\u6216\u79C1\u804A\u3002\u5F00\u542F\u540E\u7531\u4F19\u4F34\u6309\u573A\u666F\u51B3\u5B9A\u662F\u5426\u4F7F\u7528\u3002" }), _jsx("div", { className: "dsh-partner-qq-capabilities", children: QQ_ACTIONS.filter(a => QQ_PUBLIC_SCOPED_ACTIONS.has(a.id)).map(a => _jsxs("label", { className: "dsh-partner-qq-capability", children: [_jsx("input", { type: "checkbox", checked: policy.enabledActions.includes(a.id), disabled: busy, onChange: e => change({ enabledActions: e.target.checked ? [...policy.enabledActions, a.id] : policy.enabledActions.filter(id => id !== a.id) }) }), _jsxs("span", { children: [_jsx("strong", { children: a.title }), _jsx("small", { children: a.id === 'set_msg_emoji_like' ? '为当前会话的消息添加或取消表情回应' : a.category === 'groups' ? '读取当前群的资料,帮助识别群友' : '查看当前会话消息的表情回应' })] })] }, a.id)) })] }) : page === 'voice' ? _jsx(QqVoiceReplySettings, { channel: channel, policy: policy, change: change, busy: busy }) : page === 'capabilities' ? _jsx(QqCapabilitySettings, { channel: channel, policy: policy, change: change, busy: busy }) : page === 'connection' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(QqConnectionGuide, {}), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u4FEE\u6539\u8FDE\u63A5\u65F6\u4F1A\u6838\u5BF9 QQ \u8D26\u53F7\uFF0C\u4FDD\u7559\u5DF2\u6709\u6388\u6743\u3002" }), _jsx(Field, { label: "\u6B63\u5411 WebSocket \u5730\u5740", children: _jsx("input", { value: url, onChange: e => setUrl(e.target.value), disabled: busy, placeholder: "ws://snowluma:3001" }) }), _jsx(Field, { label: "WS Access Token", hint: "\u7559\u7A7A\u4FDD\u7559\u5DF2\u4FDD\u5B58\u4EE4\u724C\uFF1B\u4E0D\u4F1A\u663E\u793A\u539F\u4EE4\u724C\u3002", children: _jsx("input", { type: "password", autoComplete: "new-password", value: token, onChange: e => setToken(e.target.value), disabled: busy }) }), _jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsx("button", { disabled: busy || !url, onClick: () => void run(async () => { await post('connection', { baseUrl: url, botToken: token, testOnly: true, expectedUpdatedAt: channel.updatedAt }); }, '连接测试通过'), children: "\u6D4B\u8BD5\u8FDE\u63A5" }), _jsx("button", { className: "is-primary", disabled: busy || !url, onClick: () => void run(async () => { await post('connection', { baseUrl: url, botToken: token, testOnly: false, expectedUpdatedAt: channel.updatedAt }); setToken(''); await onChanged(); }, '连接已保存'), children: "\u4FDD\u5B58\u8FDE\u63A5" })] }), _jsx("div", { className: "dsh-partner-qq-divider" }), _jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsx("button", { disabled: busy, onClick: () => void run(async () => { await api(`/channels/${channel.id}/enabled`, { method: 'POST', body: JSON.stringify({ enabled: !channel.enabled }) }); await onChanged(); }), children: channel.enabled ? '停用渠道' : '启用渠道' }), channel.enabled && _jsx("button", { disabled: busy, onClick: () => void run(async () => { await api(`/channels/${channel.id}/enabled`, { method: 'POST', body: JSON.stringify({ enabled: true }) }); await onChanged(); }), children: "\u91CD\u65B0\u8FDE\u63A5" })] }), _jsxs("details", { className: "dsh-partner-qq-advanced", children: [_jsx("summary", { children: "\u79FB\u9664\u6E20\u9053" }), _jsx("p", { children: "\u79FB\u9664\u8FDE\u63A5\u3001\u51ED\u636E\u548C\u8054\u7CFB\u4EBA\u6388\u6743\u3002" }), _jsx("button", { disabled: busy, onClick: () => confirmDelete ? void run(async () => { await api(`/channels/${channel.id}`, { method: 'DELETE' }); await onChanged(); onDeleted(); }) : setConfirmDelete(true), children: confirmDelete ? '确认移除 QQ 渠道' : '移除渠道' })] })] }) : page === 'private' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(Toggle, { title: "\u79C1\u804A\u56DE\u590D", detail: "\u5141\u8BB8\u56DE\u590D\u5DF2\u6279\u51C6\u7684\u597D\u53CB\u79C1\u804A\uFF0C\u4E5F\u7528\u4E8E\u79C1\u804A\u901A\u77E5\u3002", value: policy.privateReplies, disabled: busy, onChange: v => change({ privateReplies: v }) }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u8BBF\u95EE\u8BB8\u53EF\u53EA\u5141\u8BB8\u804A\u5929\uFF0C\u4E0D\u4EE3\u8868\u6388\u4E88\u79C1\u6709\u80FD\u529B\u3002\u65B0\u597D\u53CB\u53D1\u6D88\u606F\u540E\u4F1A\u751F\u6210\u914D\u5BF9\u8BF7\u6C42\u3002\u8BF7\u5728\u300C\u8BBF\u95EE\u6743\u9650\u300D\u6838\u5BF9\u914D\u5BF9\u7801\u540E\u6279\u51C6\uFF1B\u7FA4\u4E34\u65F6\u4F1A\u8BDD\u4E0D\u4F5C\u4E3A\u597D\u53CB\u79C1\u804A\u5904\u7406\u3002" }), entry('access', '查看并管理已批准联系人')] }) : page === 'group' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(Toggle, { title: "\u7FA4\u804A\u56DE\u590D", detail: "\u4EC5\u63A5\u5165\u9009\u4E2D\u7684\u7FA4\u3002\u767D\u540D\u5355\u7FA4\u653E\u884C\u6240\u6709\u6210\u5458\uFF1B\u5176\u4ED6\u7FA4\u9700\u8981\u5BA1\u6279\u53D1\u8A00\u8D26\u53F7\u3002\u79C1\u804A\u59CB\u7EC8\u5355\u72EC\u5BA1\u6279\u3002", value: policy.groupReplies, disabled: busy, onChange: v => change({ groupReplies: v }) }), policy.groupReplies && _jsxs(_Fragment, { children: [entry('groups', '从机器人已加入的群中选择', `${policy.groupIds.length} 个群`), entry('autonomy', '不必 @,由伙伴判断是否接话', `${policy.autonomousGroupIds.length} 个群`), _jsx(Field, { label: "\u5176\u4ED6\u7FA4\u4F55\u65F6\u56DE\u590D", children: _jsxs("select", { disabled: busy, value: policy.groupTrigger, onChange: e => change({ groupTrigger: e.target.value }), children: [_jsx("option", { value: "mention", children: "\u4EC5\u88AB @ \u65F6\u56DE\u590D\uFF08\u63A8\u8350\uFF09" }), _jsx("option", { value: "all", children: "\u56DE\u590D\u7FA4\u5185\u6BCF\u6761\u6D88\u606F" })] }) }), _jsx(Toggle, { title: "\u56DE\u590D\u65F6 @ \u53D1\u8A00\u4EBA", detail: "\u591A\u4EBA\u540C\u65F6\u804A\u5929\u65F6\uFF0C\u6807\u660E\u8FD9\u6761\u56DE\u590D\u5BF9\u5E94\u7684\u6210\u5458\u3002", value: policy.mentionSender, disabled: busy, onChange: v => change({ mentionSender: v }) })] }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u9ED8\u8BA4\u6BCF\u4E2A\u7FA4\u3001\u6BCF\u4F4D\u79C1\u804A\u7528\u6237\u5404\u7528\u4E00\u4E2A\u4F1A\u8BDD\uFF1B\u5728\u300C\u4F1A\u8BDD\u4E0E\u8BB0\u5FC6\u300D\u9009\u62E9\u4F7F\u7528\u4E3B\u4F1A\u8BDD\u7684\u5BF9\u8C61\u3002\u957F\u671F\u8BB0\u5FC6\u6CBF\u7528\u8BE5\u4F19\u4F34\u3002\u767D\u540D\u5355\u7FA4\u65E0\u9700\u9010\u4EBA\u5BA1\u6279\uFF1B\u5176\u4ED6\u5DF2\u63A5\u5165\u7FA4\u6309\u53D1\u8A00\u8D26\u53F7\u5BA1\u6279\u3002\u7FA4\u5185\u8BB8\u53EF\u4E0D\u5F00\u653E\u79C1\u804A\uFF0C\u81EA\u4E3B\u63A5\u8BDD\u4E0D\u4F1A\u589E\u52A0\u5DE5\u5177\u6743\u9650\u3002" })] }) : page === 'sessions' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u9ED8\u8BA4\u6BCF\u4E2A\u7FA4\u3001\u6BCF\u4F4D\u79C1\u804A\u7528\u6237\u5404\u6709\u72EC\u7ACB\u4F1A\u8BDD\uFF0C\u540D\u79F0\u4F7F\u7528\u7FA4\u540D\u6216\u8054\u7CFB\u4EBA\u540D\u3002\u52FE\u9009\u7684\u5BF9\u8C61\u4F1A\u4E0E\u672C\u5730\u804A\u5929\u5171\u7528\u4E3B\u4F1A\u8BDD\uFF0C\u4E92\u76F8\u53EF\u89C1\u8BE5\u4F1A\u8BDD\u7684\u4E0A\u4E0B\u6587\u3002" }), _jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsxs("span", { children: ["\u4F7F\u7528\u4E3B\u4F1A\u8BDD\uFF1A", policy.mainSessionPeers.length, " \u4E2A\u5BF9\u8C61"] }), _jsx("button", { disabled: busy, onClick: () => void loadPeers(), children: "\u8BFB\u53D6\u597D\u53CB\u4E0E\u7FA4" })] }), _jsxs("div", { className: "dsh-partner-qq-segments", role: "group", "aria-label": "\u4E3B\u4F1A\u8BDD\u5BF9\u8C61\u7C7B\u578B", children: [_jsx("button", { "aria-pressed": sessionKind === 'private', onClick: () => { setSessionKind('private'); setSearch(''); }, children: "\u79C1\u804A\u7528\u6237" }), _jsx("button", { "aria-pressed": sessionKind === 'group', onClick: () => { setSessionKind('group'); setSearch(''); }, children: "\u7FA4\u804A" })] }), _jsx(Field, { label: "\u641C\u7D22\u540D\u79F0\u6216\u53F7\u7801", children: _jsx("input", { value: search, onChange: e => setSearch(e.target.value) }) }), _jsx("div", { className: "dsh-partner-qq-options", children: [...new Map([...(sessionKind === 'group' ? groups : friends), ...(sessionKind === 'group' ? policy.groupIds.map(id => ({ id, name: '群 ' + id })) : owned.filter(p => !p.userId.startsWith('group:')).map(p => ({ id: p.userId, name: p.displayName }))), ...policy.mainSessionPeers.filter(p => p.startsWith(sessionKind + ':')).map(p => ({ id: p.split(':')[1], name: p.split(':')[1] }))].reverse().map(p => [p.id, p])).values()].filter(p => (p.name + p.id).includes(search)).map(p => { const key = `${sessionKind}:${p.id}`; return _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: policy.mainSessionPeers.includes(key), disabled: busy, onChange: e => change({ mainSessionPeers: e.target.checked ? [...policy.mainSessionPeers, key] : policy.mainSessionPeers.filter(k => k !== key) }) }), _jsxs("span", { children: [_jsx("strong", { children: p.name }), _jsxs("small", { children: [p.id, " \u00B7 ", policy.mainSessionPeers.includes(key) ? '使用主会话' : '独立会话'] })] })] }, key); }) }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u6CA1\u6709\u627E\u5230\u5BF9\u8C61\u65F6\uFF0C\u70B9\u51FB\u300C\u8BFB\u53D6\u597D\u53CB\u4E0E\u7FA4\u300D\u3002\u4F1A\u8BDD\u9009\u62E9\u4E0D\u6388\u4E88\u56DE\u590D\u6743\u9650\uFF1B\u7FA4\u804A\u9700\u8981\u5DF2\u63A5\u5165\uFF0C\u5E76\u6EE1\u8DB3\u7FA4\u767D\u540D\u5355\u6216\u6210\u5458\u5BA1\u6279\uFF1B\u79C1\u804A\u9700\u8981\u5355\u72EC\u5F00\u542F\u5E76\u6279\u51C6\u8054\u7CFB\u4EBA\u3002" }), _jsx("div", { className: "dsh-partner-qq-divider" }), _jsx("strong", { children: "\u957F\u671F\u8BB0\u5FC6\u5171\u7528" }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u542F\u7528\u8BB0\u5FC6\u65F6\uFF0C\u72EC\u7ACB\u4F1A\u8BDD\u4E5F\u80FD\u56DE\u5FC6\u8FD9\u4E2A\u4F19\u4F34\u5DF2\u6574\u7406\u7684\u957F\u671F\u8BB0\u5FC6\uFF0C\u5F7C\u6B64\u4E0D\u4F1A\u62FC\u63A5\u804A\u5929\u539F\u6587\u3002\u9700\u8981\u5B8C\u5168\u9694\u79BB\u8D44\u6599\u65F6\uFF0C\u8BF7\u4F7F\u7528\u4E0D\u540C\u4F19\u4F34\u3002" }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u4FDD\u5B58\u540E\u4ECE\u540E\u7EED\u6D88\u606F\u5F00\u59CB\u5207\u6362\uFF0C\u5386\u53F2\u8BB0\u5F55\u4FDD\u7559\u3002\u53D6\u6D88\u52FE\u9009\u4F1A\u63A5\u56DE\u539F\u72EC\u7ACB\u4F1A\u8BDD\uFF1B\u9996\u6B21\u4F7F\u7528\u624D\u4F1A\u65B0\u5EFA\u3002" })] }) : page === 'autonomy' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u767D\u540D\u5355\u4E2D\u7684\u7FA4\u4F1A\u63A5\u6536\u666E\u901A\u7FA4\u6D88\u606F\uFF0C\u4E0D\u7528 @\u3002\u7ED3\u5408\u5BF9\u8BDD\u5BF9\u8C61\u548C\u8FD1\u671F\u4EA4\u6D41\u63A5\u8BDD\uFF1B\u4E0D\u660E\u786E\u7684\u65B0\u6D88\u606F\u7531\u672C\u5730\u8BED\u4E49\u8F85\u52A9\u5224\u65AD\uFF0C\u6B63\u5E38\u804A\u5929\u4E0D\u4F1A\u9010\u6761\u62BD\u7B7E\u3002" }), _jsx("div", { className: "dsh-partner-qq-options", children: policy.groupIds.map(id => _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: policy.autonomousGroupIds.includes(id), disabled: busy, onChange: e => change({ autonomousGroupIds: e.target.checked ? [...policy.autonomousGroupIds, id] : policy.autonomousGroupIds.filter(g => g !== id) }) }), _jsxs("span", { children: [_jsx("strong", { children: groups.find(g => g.id === id)?.name ?? '群 ' + id }), _jsx("small", { children: id })] })] }, id)) }), !policy.groupIds.length && entry('groups', '先选择允许接入的群'), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u767D\u540D\u5355\u7FA4\u5185\u6240\u6709\u6210\u5458\u7684\u6D88\u606F\u90FD\u4F1A\u8FDB\u5165\u63A5\u8BDD\u5224\u65AD\uFF0C\u65E0\u9700\u9010\u4EBA\u914D\u5BF9\u3002\u4F19\u4F34\u51B3\u5B9A\u662F\u5426\u63A5\u8BDD\uFF0C\u4E0D\u4FDD\u8BC1\u6BCF\u6761\u5FC5\u56DE\uFF1B\u660E\u786E\u5C4F\u853D\u7684\u6210\u5458\u9664\u5916\u3002\u7FA4\u5185\u8BB8\u53EF\u4E0D\u5F00\u653E\u79C1\u804A\uFF0C\u4E5F\u4E0D\u6388\u4E88\u79C1\u6709\u5DE5\u5177\u6743\u9650\u3002" })] }) : page === 'groups' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsxs("span", { children: ["\u5DF2\u9009\u62E9 ", policy.groupIds.length, " \u4E2A\u7FA4"] }), _jsx("button", { disabled: busy, onClick: () => void loadGroups(), children: groupsLoaded ? '刷新群列表' : '读取已加入的群' })] }), _jsx(Field, { label: "\u641C\u7D22\u7FA4\u540D\u79F0\u6216\u7FA4\u53F7", children: _jsx("input", { value: search, onChange: e => setSearch(e.target.value) }) }), _jsxs("div", { className: "dsh-partner-qq-options", children: [groups.filter(g => (g.name + g.id).includes(search)).map(g => _jsxs("label", { children: [_jsx("input", { type: "checkbox", disabled: busy, checked: policy.groupIds.includes(g.id), onChange: e => change({ groupIds: e.target.checked ? [...policy.groupIds, g.id] : policy.groupIds.filter(id => id !== g.id), autonomousGroupIds: e.target.checked ? policy.autonomousGroupIds : policy.autonomousGroupIds.filter(id => id !== g.id), replyVoiceGroupId: !e.target.checked && policy.replyVoiceGroupId === g.id ? '' : (policy.replyVoiceGroupId ?? '') }) }), _jsxs("span", { children: [_jsx("strong", { children: g.name }), _jsx("small", { children: g.id })] })] }, g.id)), policy.groupIds.filter(id => !groups.some(g => g.id === id)).map(id => _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: true, disabled: busy, onChange: () => change({ groupIds: policy.groupIds.filter(g => g !== id), autonomousGroupIds: policy.autonomousGroupIds.filter(g => g !== id), replyVoiceGroupId: policy.replyVoiceGroupId === id ? '' : (policy.replyVoiceGroupId ?? '') }) }), _jsxs("span", { children: [_jsx("strong", { children: "\u5DF2\u9009\u62E9\u7684\u7FA4" }), _jsx("small", { children: id })] })] }, id))] }), groupsLoaded && !groups.length && _jsx("p", { children: "\u5F53\u524D\u8D26\u53F7\u6CA1\u6709\u53EF\u9009\u62E9\u7684\u7FA4\u3002" })] }) : page === 'media' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u6536\u85CF\u548C\u8BED\u97F3\u56DE\u590D\u5C5E\u4E8E\u516C\u5F00\u804A\u5929\u80FD\u529B\uFF0C\u5DF2\u6279\u51C6\u7684\u79C1\u804A\u8054\u7CFB\u4EBA\u548C\u53EF\u56DE\u590D\u7FA4\u6210\u5458\u5747\u53EF\u4F7F\u7528\uFF1B\u4E0D\u4F9D\u8D56\u5F52\u5C5E\u8D26\u53F7\u6216\u79C1\u6709\u80FD\u529B\u603B\u5F00\u5173\u3002\u4E0B\u9762\u7684\u5F00\u5173\u4FDD\u5B58\u540E\u751F\u6548\u3002" }), [['fetch_custom_face_detail', '查看收藏表情'], ['add_custom_face', '收藏收到的表情'], ['modify_custom_face', '备注收藏表情'], ['move_custom_face_to_front', '置顶喜欢的表情'], ['delete_custom_face', '删除不再需要的表情']].map(([id, title]) => _jsx(Toggle, { title: title, detail: "\u5141\u8BB8\u4F19\u4F34\u5728\u5F53\u524D QQ \u6E20\u9053\u6309\u4EBA\u683C\u548C\u573A\u666F\u81EA\u884C\u4F7F\u7528\u3002", value: policy.enabledActions.includes(id), disabled: busy, onChange: v => change({ enabledActions: v ? [...new Set([...policy.enabledActions, id])] : policy.enabledActions.filter(a => a !== id) }) }, id)), _jsx(Field, { label: "\u804A\u5929\u8868\u60C5\u6765\u6E90", hint: "QQ \u8868\u60C5\u5E93\u5305\u542B\u8BE5\u8D26\u53F7\u7684\u6536\u85CF\u8868\u60C5\u548C\u7CFB\u7EDF\u8868\u60C5\uFF1B\u6CA1\u6709\u5339\u914D\u65F6\u4E0D\u6DF7\u5165\u5185\u7F6E\u5E93\u3002\u4E5F\u53EF\u660E\u786E\u5207\u6362\u5230\u4F19\u4F34\u9ED8\u8BA4\u5E93\u3002", children: _jsxs("select", { value: policy.stickerSource, disabled: busy, onChange: e => change({ stickerSource: e.target.value }), children: [_jsx("option", { value: "channel", children: "QQ \u6536\u85CF\u4E0E\u7CFB\u7EDF\u8868\u60C5\uFF08\u63A8\u8350\uFF09" }), _jsx("option", { value: "default", children: "\u4F7F\u7528\u4F19\u4F34\u9ED8\u8BA4\u8868\u60C5\u5E93" })] }) }), _jsx(Toggle, { title: "QQ \u7CFB\u7EDF\u8868\u60C5", detail: "\u5141\u8BB8\u4F19\u4F34\u8C03\u7528 QQ \u539F\u751F\u8868\u60C5\uFF0C\u4E5F\u53EF\u5728\u300C\u53D1\u9001\u6D88\u606F\u300D\u4E2D\u6D4F\u89C8\u548C\u9009\u62E9\u3002", value: policy.facesEnabled, disabled: busy, onChange: v => change({ facesEnabled: v }) }), _jsx(Toggle, { title: "\u56FE\u7247\u4E0E\u8868\u60C5\u5305", detail: "\u5141\u8BB8\u53D1\u9001\u4F19\u4F34\u751F\u6210\u7684\u56FE\u7247\u548C\u4EBA\u683C\u914D\u7F6E\u4E2D\u7684\u8868\u60C5\u5305\u3002", value: policy.imagesEnabled, disabled: busy, onChange: v => change({ imagesEnabled: v }) }), entry('send', '预览并选择系统表情,再发送给指定接收人'), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u8868\u60C5\u5C5E\u4E8E\u804A\u5929\u56DE\u590D\u80FD\u529B\uFF0C\u672A\u5F52\u5C5E\u8D26\u53F7\u4E5F\u53EF\u4F7F\u7528\u3002\u5206\u6BB5\u548C\u8868\u60C5\u4F7F\u7528\u4E60\u60EF\u5728\u300C\u8EAB\u4EFD \u2192 \u89D2\u8272\u804A\u5929 \u2192 \u804A\u5929\u65B9\u5F0F\u300D\u8BBE\u7F6E\u3002\u8FD9\u91CC\u63A7\u5236 QQ \u6E20\u9053\u80FD\u5426\u53D1\u9001\uFF0C\u4E0D\u5F3A\u5236\u6BCF\u6B21\u56DE\u590D\u9644\u5E26\u8868\u60C5\u3002" })] }) : page === 'access' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(QqIdentityBindingEditor, { value: policy.identityBinding, disabled: busy, pairings: owned, onChange: identityBinding => change({ identityBinding }) }), _jsx("div", { className: "dsh-partner-qq-divider" }), _jsx("strong", { children: "\u8054\u7CFB\u4EBA\u6388\u6743" }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u79C1\u804A\u59CB\u7EC8\u9700\u8981\u8D26\u53F7\u5BA1\u6279\uFF1B\u767D\u540D\u5355\u7FA4\u653E\u884C\u6240\u6709\u6210\u5458\uFF0C\u5176\u4ED6\u5DF2\u63A5\u5165\u7FA4\u9700\u8981\u5BA1\u6279\u53D1\u8A00\u8D26\u53F7\u3002\u79C1\u804A\u4E0E\u5404\u7FA4\u7684\u8D26\u53F7\u5BA1\u6279\u5206\u522B\u8BB0\u5F55\uFF0C\u4E0D\u4E92\u76F8\u7EE7\u627F\uFF1B\u660E\u786E\u5C4F\u853D\u7684\u8D26\u53F7\u4ECD\u4E0D\u56DE\u590D\u3002\u5F52\u5C5E\u8D26\u53F7\u51B3\u5B9A\u5173\u7CFB\u4E0E\u79C1\u6709\u80FD\u529B\uFF0C\u4E0D\u66FF\u4EE3\u804A\u5929\u8BB8\u53EF\u3002" }), !owned.length && _jsx("p", { children: "\u6682\u65E0\u5BA1\u6279\u8BF7\u6C42\u3002\u79C1\u804A\u6216\u975E\u767D\u540D\u5355\u7684\u5DF2\u63A5\u5165\u7FA4\u9996\u6B21\u89E6\u53D1\u65F6\u4F1A\u751F\u6210\u8BF7\u6C42\uFF1B\u767D\u540D\u5355\u7FA4\u65E0\u9700\u9010\u4EBA\u5BA1\u6279\u3002" }), _jsx("div", { className: "dsh-partner-qq-options", children: owned.map(p => _jsxs("div", { className: "dsh-partner-qq-person", children: [_jsxs("span", { children: [_jsx("strong", { children: p.displayName }), _jsx("small", { children: qqGroupPeer(p.userId) ? (p.status === 'blocked' ? '群内已屏蔽' : groupWhite(p.userId) ? '群白名单已放行' : p.status === 'approved' ? '群内账号已批准' : '群内账号待批准') : p.status === 'approved' ? '私聊已批准' : p.status === 'pending' ? '私聊待批准' : '私聊已阻止' }), !groupWhite(p.userId) && p.status === 'pending' && p.pairingCode && _jsx("code", { children: p.pairingCode })] }), _jsx("button", { disabled: busy, onClick: () => void run(async () => { await api(`/pairings/${p.id}/status`, { method: 'POST', body: JSON.stringify({ status: (groupWhite(p.userId) ? p.status !== 'blocked' : p.status === 'approved') ? 'blocked' : 'approved' }) }); await onChanged(); }), children: groupWhite(p.userId) ? (p.status === 'blocked' ? '解除屏蔽' : '屏蔽') : (p.status === 'approved' ? '撤销' : '批准') })] }, p.id)) })] }) : _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(Field, { label: "\u63A5\u6536\u4EBA", hint: "\u53EA\u5217\u51FA\u5DF2\u6388\u6743\u7684\u79C1\u804A\u597D\u53CB\u548C\u7FA4\u6210\u5458\uFF1B\u7FA4\u6D88\u606F\u4F1A\u53D1\u5230\u5BF9\u5E94\u7684\u7FA4\u3002", children: _jsxs("select", { value: userId, disabled: busy, onChange: e => setUserId(e.target.value), children: [_jsx("option", { value: "", children: "\u8BF7\u9009\u62E9\u63A5\u6536\u4EBA" }), approved.map(p => _jsx("option", { value: p.userId, children: p.displayName }, p.id))] }) }), _jsxs("div", { className: "dsh-partner-qq-segments", role: "group", "aria-label": "\u53D1\u9001\u5185\u5BB9\u7C7B\u578B", children: [_jsx("button", { disabled: busy, "aria-pressed": mode === 'text', onClick: () => setMode('text'), children: "\u6587\u5B57" }), _jsx("button", { disabled: busy, "aria-pressed": mode === 'face', onClick: () => { setMode('face'); if (!faces.length)
|
|
47
|
+
return _jsxs("div", { className: "dsh-partner-qq-settings", "aria-busy": busy, children: [page !== 'home' && _jsxs("nav", { className: "dsh-partner-qq-breadcrumb", "aria-label": "QQ \u8BBE\u7F6E\u5BFC\u822A", children: [_jsxs("button", { type: "button", disabled: busy, onClick: () => go((page === 'groups' || page === 'autonomy') ? 'group' : 'home'), children: ["\u2039 ", (page === 'groups' || page === 'autonomy') ? '群聊回复' : 'QQ 设置'] }), _jsx("span", { "aria-hidden": "true", children: "/" }), _jsx("strong", { children: titles[page] })] }), page === 'home' ? _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-partner-qq-account", children: [_jsxs("div", { children: [_jsx("small", { children: "QQ \u8D26\u53F7" }), _jsx("strong", { children: channel.accountId }), _jsx("span", { children: "SnowLuma \u00B7 \u6B63\u5411 WebSocket" })] }), _jsx(ChannelStatus, { channel: channel })] }), _jsx(QqConnectionGuide, {}), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u8FDE\u63A5" }), entry('connection', '管理服务器、凭据与连接状态'), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u804A\u5929\u56DE\u590D \u00B7 \u7FA4\u767D\u540D\u5355\u4E0E\u8D26\u53F7\u5BA1\u6279" }), entry('private', '好友私聊与配对授权', policy.privateReplies ? '开启' : '关闭'), entry('group', '选择群组,设置何时回复', policy.groupReplies ? `${policy.groupIds.length} 个群` : '关闭'), entry('sessions', '独立聊天,按需接入主会话', `${policy.mainSessionPeers.length} 个共用`), entry('media', 'QQ 原生表情、收藏与默认库'), entry('chat', '消息表情回应与当前群信息', `${policy.enabledActions.filter(id => QQ_PUBLIC_SCOPED_ACTIONS.has(id)).length} 项开启`), entry('voice', 'QQ 自带音色;通用服务在外层 TTS 中配置', policy.replyVoiceEnabled ? '开启' : '关闭'), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u79C1\u6709\u80FD\u529B \u00B7 \u5F52\u5C5E\u8D26\u53F7\u4E0E\u7CFB\u7EDF\u81EA\u4E3B\u6267\u884C" }), entry('capabilities', 'QQ 空间、资料与群管理', policy.autonomousActions ? `${policy.enabledActions.filter(id => !QQ_PUBLIC_CHAT_ACTIONS.has(id)).length} 项开启` : '关闭'), _jsx("div", { className: "dsh-partner-qq-section-label", children: "\u7BA1\u7406\u4E0E\u64CD\u4F5C" }), entry('access', '归属账号、关系与能力范围', `${owned.filter(p => p.status === 'pending').length} 待批准`), entry('send', '选择已授权接收人,发送文字或表情')] }) : page === 'chat' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u5DF2\u83B7\u804A\u5929\u8BB8\u53EF\u7684\u8054\u7CFB\u4EBA\u548C\u7FA4\u6210\u5458\u90FD\u53EF\u4F7F\u7528\u5F00\u542F\u7684\u64CD\u4F5C\uFF0C\u4E0D\u4F9D\u8D56\u79C1\u6709\u80FD\u529B\u603B\u5F00\u5173\u3002\u8868\u60C5\u56DE\u5E94\u662F\u9644\u5728\u4E00\u6761\u6D88\u606F\u65C1\u7684\u5C0F\u8868\u60C5\uFF1B\u7FA4\u4FE1\u606F\u67E5\u8BE2\u4EC5\u9650\u5F53\u524D\u7FA4\uFF0C\u4E0D\u5141\u8BB8\u67E5\u770B\u5176\u4ED6\u7FA4\u6216\u79C1\u804A\u3002\u5F00\u542F\u540E\u7531\u4F19\u4F34\u6309\u573A\u666F\u51B3\u5B9A\u662F\u5426\u4F7F\u7528\u3002" }), _jsx("div", { className: "dsh-partner-qq-capabilities", children: QQ_ACTIONS.filter(a => QQ_PUBLIC_SCOPED_ACTIONS.has(a.id)).map(a => _jsxs("label", { className: "dsh-partner-qq-capability", children: [_jsx("input", { type: "checkbox", checked: policy.enabledActions.includes(a.id), disabled: busy, onChange: e => change({ enabledActions: e.target.checked ? [...policy.enabledActions, a.id] : policy.enabledActions.filter(id => id !== a.id) }) }), _jsxs("span", { children: [_jsx("strong", { children: a.title }), _jsx("small", { children: a.id === 'set_msg_emoji_like' ? '为当前会话的消息添加或取消表情回应' : a.category === 'groups' ? '读取当前群的资料,帮助识别群友' : '查看当前会话消息的表情回应' })] })] }, a.id)) })] }) : page === 'voice' ? _jsx(QqVoiceReplySettings, { channel: channel, policy: policy, change: change, busy: busy }) : page === 'capabilities' ? _jsx(QqCapabilitySettings, { channel: channel, policy: policy, change: change, busy: busy }) : page === 'connection' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(QqConnectionGuide, {}), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u4FEE\u6539\u8FDE\u63A5\u65F6\u4F1A\u6838\u5BF9 QQ \u8D26\u53F7\uFF0C\u4FDD\u7559\u5DF2\u6709\u6388\u6743\u3002" }), _jsx(Field, { label: "\u6B63\u5411 WebSocket \u5730\u5740", children: _jsx("input", { value: url, onChange: e => setUrl(e.target.value), disabled: busy, placeholder: "ws://snowluma:3001" }) }), _jsx(Field, { label: "WS Access Token", hint: "\u7559\u7A7A\u4FDD\u7559\u5DF2\u4FDD\u5B58\u4EE4\u724C\uFF1B\u4E0D\u4F1A\u663E\u793A\u539F\u4EE4\u724C\u3002", children: _jsx("input", { type: "password", autoComplete: "new-password", value: token, onChange: e => setToken(e.target.value), disabled: busy }) }), _jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsx("button", { disabled: busy || !url, onClick: () => void run(async () => { await post('connection', { baseUrl: url, botToken: token, testOnly: true, expectedUpdatedAt: channel.updatedAt }); }, '连接测试通过'), children: "\u6D4B\u8BD5\u8FDE\u63A5" }), _jsx("button", { className: "is-primary", disabled: busy || !url, onClick: () => void run(async () => { await post('connection', { baseUrl: url, botToken: token, testOnly: false, expectedUpdatedAt: channel.updatedAt }); setToken(''); await onChanged(); }, '连接已保存'), children: "\u4FDD\u5B58\u8FDE\u63A5" })] }), _jsx("div", { className: "dsh-partner-qq-divider" }), _jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsx("button", { disabled: busy, onClick: () => void run(async () => { await api(`/channels/${channel.id}/enabled`, { method: 'POST', body: JSON.stringify({ enabled: !channel.enabled }) }); await onChanged(); }), children: channel.enabled ? '停用渠道' : '启用渠道' }), channel.enabled && _jsx("button", { disabled: busy, onClick: () => void run(async () => { await api(`/channels/${channel.id}/enabled`, { method: 'POST', body: JSON.stringify({ enabled: true }) }); await onChanged(); }), children: "\u91CD\u65B0\u8FDE\u63A5" })] }), _jsxs("details", { className: "dsh-partner-qq-advanced", children: [_jsx("summary", { children: "\u79FB\u9664\u6E20\u9053" }), _jsx("p", { children: "\u79FB\u9664\u8FDE\u63A5\u3001\u51ED\u636E\u548C\u8054\u7CFB\u4EBA\u6388\u6743\u3002" }), _jsx("button", { disabled: busy, onClick: () => confirmDelete ? void run(async () => { await api(`/channels/${channel.id}`, { method: 'DELETE' }); await onChanged(); onDeleted(); }) : setConfirmDelete(true), children: confirmDelete ? '确认移除 QQ 渠道' : '移除渠道' })] })] }) : page === 'private' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(Toggle, { title: "\u79C1\u804A\u56DE\u590D", detail: "\u5141\u8BB8\u56DE\u590D\u5DF2\u6279\u51C6\u7684\u597D\u53CB\u79C1\u804A\uFF0C\u4E5F\u7528\u4E8E\u79C1\u804A\u901A\u77E5\u3002", value: policy.privateReplies, disabled: busy, onChange: v => change({ privateReplies: v }) }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u8BBF\u95EE\u8BB8\u53EF\u53EA\u5141\u8BB8\u804A\u5929\uFF0C\u4E0D\u4EE3\u8868\u6388\u4E88\u79C1\u6709\u80FD\u529B\u3002\u65B0\u597D\u53CB\u53D1\u6D88\u606F\u540E\u4F1A\u751F\u6210\u914D\u5BF9\u8BF7\u6C42\u3002\u8BF7\u5728\u300C\u8BBF\u95EE\u6743\u9650\u300D\u6838\u5BF9\u914D\u5BF9\u7801\u540E\u6279\u51C6\uFF1B\u7FA4\u4E34\u65F6\u4F1A\u8BDD\u4E0D\u4F5C\u4E3A\u597D\u53CB\u79C1\u804A\u5904\u7406\u3002" }), entry('access', '查看并管理已批准联系人')] }) : page === 'group' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(Toggle, { title: "\u7FA4\u804A\u56DE\u590D", detail: "\u4EC5\u63A5\u5165\u9009\u4E2D\u7684\u7FA4\u3002\u767D\u540D\u5355\u7FA4\u653E\u884C\u6240\u6709\u6210\u5458\uFF1B\u5176\u4ED6\u7FA4\u9700\u8981\u5BA1\u6279\u53D1\u8A00\u8D26\u53F7\u3002\u79C1\u804A\u59CB\u7EC8\u5355\u72EC\u5BA1\u6279\u3002", value: policy.groupReplies, disabled: busy, onChange: v => change({ groupReplies: v }) }), policy.groupReplies && _jsxs(_Fragment, { children: [entry('groups', '从机器人已加入的群中选择', `${policy.groupIds.length} 个群`), entry('autonomy', '不必 @,由伙伴判断是否接话', `${policy.autonomousGroupIds.length} 个群`), _jsx(Field, { label: "\u5176\u4ED6\u7FA4\u4F55\u65F6\u56DE\u590D", children: _jsxs("select", { disabled: busy, value: policy.groupTrigger, onChange: e => change({ groupTrigger: e.target.value }), children: [_jsx("option", { value: "mention", children: "\u4EC5\u88AB @ \u65F6\u56DE\u590D\uFF08\u63A8\u8350\uFF09" }), _jsx("option", { value: "all", children: "\u56DE\u590D\u7FA4\u5185\u6BCF\u6761\u6D88\u606F" })] }) }), _jsx(Toggle, { title: "\u56DE\u590D\u65F6 @ \u53D1\u8A00\u4EBA", detail: "\u591A\u4EBA\u540C\u65F6\u804A\u5929\u65F6\uFF0C\u6807\u660E\u8FD9\u6761\u56DE\u590D\u5BF9\u5E94\u7684\u6210\u5458\u3002", value: policy.mentionSender, disabled: busy, onChange: v => change({ mentionSender: v }) })] }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u9ED8\u8BA4\u6BCF\u4E2A\u7FA4\u3001\u6BCF\u4F4D\u79C1\u804A\u7528\u6237\u5404\u7528\u4E00\u4E2A\u4F1A\u8BDD\uFF1B\u5728\u300C\u4F1A\u8BDD\u4E0E\u8BB0\u5FC6\u300D\u9009\u62E9\u4F7F\u7528\u4E3B\u4F1A\u8BDD\u7684\u5BF9\u8C61\u3002\u957F\u671F\u8BB0\u5FC6\u6CBF\u7528\u8BE5\u4F19\u4F34\u3002\u767D\u540D\u5355\u7FA4\u65E0\u9700\u9010\u4EBA\u5BA1\u6279\uFF1B\u5176\u4ED6\u5DF2\u63A5\u5165\u7FA4\u6309\u53D1\u8A00\u8D26\u53F7\u5BA1\u6279\u3002\u7FA4\u5185\u8BB8\u53EF\u4E0D\u5F00\u653E\u79C1\u804A\uFF0C\u81EA\u4E3B\u63A5\u8BDD\u4E0D\u4F1A\u589E\u52A0\u5DE5\u5177\u6743\u9650\u3002" })] }) : page === 'sessions' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u9ED8\u8BA4\u6BCF\u4E2A\u7FA4\u3001\u6BCF\u4F4D\u79C1\u804A\u7528\u6237\u5404\u6709\u72EC\u7ACB\u4F1A\u8BDD\uFF0C\u540D\u79F0\u4F7F\u7528\u7FA4\u540D\u6216\u8054\u7CFB\u4EBA\u540D\u3002\u52FE\u9009\u7684\u5BF9\u8C61\u4F1A\u4E0E\u672C\u5730\u804A\u5929\u5171\u7528\u4E3B\u4F1A\u8BDD\uFF0C\u4E92\u76F8\u53EF\u89C1\u8BE5\u4F1A\u8BDD\u7684\u4E0A\u4E0B\u6587\u3002" }), _jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsxs("span", { children: ["\u4F7F\u7528\u4E3B\u4F1A\u8BDD\uFF1A", policy.mainSessionPeers.length, " \u4E2A\u5BF9\u8C61"] }), _jsx("button", { disabled: busy, onClick: () => void loadPeers(), children: "\u8BFB\u53D6\u597D\u53CB\u4E0E\u7FA4" })] }), _jsxs("div", { className: "dsh-partner-qq-segments", role: "group", "aria-label": "\u4E3B\u4F1A\u8BDD\u5BF9\u8C61\u7C7B\u578B", children: [_jsx("button", { "aria-pressed": sessionKind === 'private', onClick: () => { setSessionKind('private'); setSearch(''); }, children: "\u79C1\u804A\u7528\u6237" }), _jsx("button", { "aria-pressed": sessionKind === 'group', onClick: () => { setSessionKind('group'); setSearch(''); }, children: "\u7FA4\u804A" })] }), _jsx(Field, { label: "\u641C\u7D22\u540D\u79F0\u6216\u53F7\u7801", children: _jsx("input", { value: search, onChange: e => setSearch(e.target.value) }) }), _jsx("div", { className: "dsh-partner-qq-options", children: [...new Map([...(sessionKind === 'group' ? groups : friends), ...(sessionKind === 'group' ? policy.groupIds.map(id => ({ id, name: '群 ' + id })) : owned.filter(p => !p.userId.startsWith('group:')).map(p => ({ id: p.userId, name: p.displayName }))), ...policy.mainSessionPeers.filter(p => p.startsWith(sessionKind + ':')).map(p => ({ id: p.split(':')[1], name: p.split(':')[1] }))].reverse().map(p => [p.id, p])).values()].filter(p => (p.name + p.id).includes(search)).map(p => { const key = `${sessionKind}:${p.id}`; return _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: policy.mainSessionPeers.includes(key), disabled: busy, onChange: e => change({ mainSessionPeers: e.target.checked ? [...policy.mainSessionPeers, key] : policy.mainSessionPeers.filter(k => k !== key) }) }), _jsxs("span", { children: [_jsx("strong", { children: p.name }), _jsxs("small", { children: [p.id, " \u00B7 ", policy.mainSessionPeers.includes(key) ? '使用主会话' : '独立会话'] })] })] }, key); }) }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u6CA1\u6709\u627E\u5230\u5BF9\u8C61\u65F6\uFF0C\u70B9\u51FB\u300C\u8BFB\u53D6\u597D\u53CB\u4E0E\u7FA4\u300D\u3002\u4F1A\u8BDD\u9009\u62E9\u4E0D\u6388\u4E88\u56DE\u590D\u6743\u9650\uFF1B\u7FA4\u804A\u9700\u8981\u5DF2\u63A5\u5165\uFF0C\u5E76\u6EE1\u8DB3\u7FA4\u767D\u540D\u5355\u6216\u6210\u5458\u5BA1\u6279\uFF1B\u79C1\u804A\u9700\u8981\u5355\u72EC\u5F00\u542F\u5E76\u6279\u51C6\u8054\u7CFB\u4EBA\u3002" }), _jsx("div", { className: "dsh-partner-qq-divider" }), _jsx("strong", { children: "\u957F\u671F\u8BB0\u5FC6\u5171\u7528" }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u542F\u7528\u8BB0\u5FC6\u65F6\uFF0C\u72EC\u7ACB\u4F1A\u8BDD\u4E5F\u80FD\u56DE\u5FC6\u8FD9\u4E2A\u4F19\u4F34\u5DF2\u6574\u7406\u7684\u957F\u671F\u8BB0\u5FC6\uFF0C\u5F7C\u6B64\u4E0D\u4F1A\u62FC\u63A5\u804A\u5929\u539F\u6587\u3002\u9700\u8981\u5B8C\u5168\u9694\u79BB\u8D44\u6599\u65F6\uFF0C\u8BF7\u4F7F\u7528\u4E0D\u540C\u4F19\u4F34\u3002" }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u4FDD\u5B58\u540E\u4ECE\u540E\u7EED\u6D88\u606F\u5F00\u59CB\u5207\u6362\uFF0C\u5386\u53F2\u8BB0\u5F55\u4FDD\u7559\u3002\u53D6\u6D88\u52FE\u9009\u4F1A\u63A5\u56DE\u539F\u72EC\u7ACB\u4F1A\u8BDD\uFF1B\u9996\u6B21\u4F7F\u7528\u624D\u4F1A\u65B0\u5EFA\u3002" })] }) : page === 'autonomy' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u767D\u540D\u5355\u4E2D\u7684\u7FA4\u4F1A\u63A5\u6536\u666E\u901A\u7FA4\u6D88\u606F\uFF0C\u4E0D\u7528 @\u3002\u7ED3\u5408\u5BF9\u8BDD\u5BF9\u8C61\u548C\u8FD1\u671F\u4EA4\u6D41\u63A5\u8BDD\uFF1B\u4E0D\u660E\u786E\u7684\u65B0\u6D88\u606F\u7531\u672C\u5730\u8BED\u4E49\u8F85\u52A9\u5224\u65AD\uFF0C\u6B63\u5E38\u804A\u5929\u4E0D\u4F1A\u9010\u6761\u62BD\u7B7E\u3002" }), _jsx("div", { className: "dsh-partner-qq-options", children: policy.groupIds.map(id => _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: policy.autonomousGroupIds.includes(id), disabled: busy, onChange: e => change({ autonomousGroupIds: e.target.checked ? [...policy.autonomousGroupIds, id] : policy.autonomousGroupIds.filter(g => g !== id) }) }), _jsxs("span", { children: [_jsx("strong", { children: groups.find(g => g.id === id)?.name ?? '群 ' + id }), _jsx("small", { children: id })] })] }, id)) }), !policy.groupIds.length && entry('groups', '先选择允许接入的群'), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u767D\u540D\u5355\u7FA4\u5185\u6240\u6709\u6210\u5458\u7684\u6D88\u606F\u90FD\u4F1A\u8FDB\u5165\u63A5\u8BDD\u5224\u65AD\uFF0C\u65E0\u9700\u9010\u4EBA\u914D\u5BF9\u3002\u4F19\u4F34\u51B3\u5B9A\u662F\u5426\u63A5\u8BDD\uFF0C\u4E0D\u4FDD\u8BC1\u6BCF\u6761\u5FC5\u56DE\uFF1B\u660E\u786E\u5C4F\u853D\u7684\u6210\u5458\u9664\u5916\u3002\u7FA4\u5185\u8BB8\u53EF\u4E0D\u5F00\u653E\u79C1\u804A\uFF0C\u4E5F\u4E0D\u6388\u4E88\u79C1\u6709\u5DE5\u5177\u6743\u9650\u3002" })] }) : page === 'groups' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsxs("div", { className: "dsh-partner-qq-actions", children: [_jsxs("span", { children: ["\u5DF2\u9009\u62E9 ", policy.groupIds.length, " \u4E2A\u7FA4"] }), _jsx("button", { disabled: busy, onClick: () => void loadGroups(), children: groupsLoaded ? '刷新群列表' : '读取已加入的群' })] }), _jsx(Field, { label: "\u641C\u7D22\u7FA4\u540D\u79F0\u6216\u7FA4\u53F7", children: _jsx("input", { value: search, onChange: e => setSearch(e.target.value) }) }), _jsxs("div", { className: "dsh-partner-qq-options", children: [groups.filter(g => (g.name + g.id).includes(search)).map(g => _jsxs("label", { children: [_jsx("input", { type: "checkbox", disabled: busy, checked: policy.groupIds.includes(g.id), onChange: e => change({ groupIds: e.target.checked ? [...policy.groupIds, g.id] : policy.groupIds.filter(id => id !== g.id), autonomousGroupIds: e.target.checked ? policy.autonomousGroupIds : policy.autonomousGroupIds.filter(id => id !== g.id), replyVoiceGroupId: !e.target.checked && policy.replyVoiceGroupId === g.id ? '' : (policy.replyVoiceGroupId ?? '') }) }), _jsxs("span", { children: [_jsx("strong", { children: g.name }), _jsx("small", { children: g.id })] })] }, g.id)), policy.groupIds.filter(id => !groups.some(g => g.id === id)).map(id => _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: true, disabled: busy, onChange: () => change({ groupIds: policy.groupIds.filter(g => g !== id), autonomousGroupIds: policy.autonomousGroupIds.filter(g => g !== id), replyVoiceGroupId: policy.replyVoiceGroupId === id ? '' : (policy.replyVoiceGroupId ?? '') }) }), _jsxs("span", { children: [_jsx("strong", { children: "\u5DF2\u9009\u62E9\u7684\u7FA4" }), _jsx("small", { children: id })] })] }, id))] }), groupsLoaded && !groups.length && _jsx("p", { children: "\u5F53\u524D\u8D26\u53F7\u6CA1\u6709\u53EF\u9009\u62E9\u7684\u7FA4\u3002" })] }) : page === 'media' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u6536\u85CF\u548C\u8BED\u97F3\u56DE\u590D\u5C5E\u4E8E\u516C\u5F00\u804A\u5929\u80FD\u529B\uFF0C\u5DF2\u6279\u51C6\u7684\u79C1\u804A\u8054\u7CFB\u4EBA\u548C\u53EF\u56DE\u590D\u7FA4\u6210\u5458\u5747\u53EF\u4F7F\u7528\uFF1B\u4E0D\u4F9D\u8D56\u5F52\u5C5E\u8D26\u53F7\u6216\u79C1\u6709\u80FD\u529B\u603B\u5F00\u5173\u3002\u4E0B\u9762\u7684\u5F00\u5173\u4FDD\u5B58\u540E\u751F\u6548\u3002" }), [['fetch_custom_face_detail', '查看收藏表情'], ['add_custom_face', '收藏收到的表情'], ['modify_custom_face', '备注收藏表情'], ['move_custom_face_to_front', '置顶喜欢的表情'], ['delete_custom_face', '删除不再需要的表情']].map(([id, title]) => _jsx(Toggle, { title: title, detail: "\u5141\u8BB8\u4F19\u4F34\u5728\u5F53\u524D QQ \u6E20\u9053\u6309\u4EBA\u683C\u548C\u573A\u666F\u81EA\u884C\u4F7F\u7528\u3002", value: policy.enabledActions.includes(id), disabled: busy, onChange: v => change({ enabledActions: v ? [...new Set([...policy.enabledActions, id])] : policy.enabledActions.filter(a => a !== id) }) }, id)), _jsx(Field, { label: "\u804A\u5929\u8868\u60C5\u6765\u6E90", hint: "QQ \u8868\u60C5\u5E93\u5305\u542B\u8BE5\u8D26\u53F7\u7684\u6536\u85CF\u8868\u60C5\u548C\u7CFB\u7EDF\u8868\u60C5\uFF1B\u6CA1\u6709\u5339\u914D\u65F6\u4E0D\u6DF7\u5165\u5185\u7F6E\u5E93\u3002\u4E5F\u53EF\u660E\u786E\u5207\u6362\u5230\u4F19\u4F34\u9ED8\u8BA4\u5E93\u3002", children: _jsxs("select", { value: policy.stickerSource, disabled: busy, onChange: e => change({ stickerSource: e.target.value }), children: [_jsx("option", { value: "channel", children: "QQ \u6536\u85CF\u4E0E\u7CFB\u7EDF\u8868\u60C5\uFF08\u63A8\u8350\uFF09" }), _jsx("option", { value: "default", children: "\u4F7F\u7528\u4F19\u4F34\u9ED8\u8BA4\u8868\u60C5\u5E93" })] }) }), _jsx(Toggle, { title: "QQ \u7CFB\u7EDF\u8868\u60C5", detail: "\u5141\u8BB8\u4F19\u4F34\u8C03\u7528 QQ \u539F\u751F\u8868\u60C5\uFF0C\u4E5F\u53EF\u5728\u300C\u53D1\u9001\u6D88\u606F\u300D\u4E2D\u6D4F\u89C8\u548C\u9009\u62E9\u3002", value: policy.facesEnabled, disabled: busy, onChange: v => change({ facesEnabled: v }) }), _jsx(Toggle, { title: "\u56FE\u7247\u4E0E\u8868\u60C5\u5305", detail: "\u5141\u8BB8\u53D1\u9001\u4F19\u4F34\u751F\u6210\u7684\u56FE\u7247\u548C\u4EBA\u683C\u914D\u7F6E\u4E2D\u7684\u8868\u60C5\u5305\u3002", value: policy.imagesEnabled, disabled: busy, onChange: v => change({ imagesEnabled: v }) }), entry('send', '预览并选择系统表情,再发送给指定接收人'), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u8868\u60C5\u5C5E\u4E8E\u804A\u5929\u56DE\u590D\u80FD\u529B\uFF0C\u672A\u5F52\u5C5E\u8D26\u53F7\u4E5F\u53EF\u4F7F\u7528\u3002\u5206\u6BB5\u548C\u8868\u60C5\u4F7F\u7528\u4E60\u60EF\u5728\u300C\u8EAB\u4EFD \u2192 \u89D2\u8272\u804A\u5929 \u2192 \u804A\u5929\u65B9\u5F0F\u300D\u8BBE\u7F6E\u3002\u8FD9\u91CC\u63A7\u5236 QQ \u6E20\u9053\u80FD\u5426\u53D1\u9001\uFF0C\u4E0D\u5F3A\u5236\u6BCF\u6B21\u56DE\u590D\u9644\u5E26\u8868\u60C5\u3002" })] }) : page === 'access' ? _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(QqIdentityBindingEditor, { value: policy.identityBinding, disabled: busy, pairings: owned, onChange: identityBinding => change({ identityBinding }) }), _jsx("div", { className: "dsh-partner-qq-divider" }), _jsx("strong", { children: "\u8054\u7CFB\u4EBA\u6388\u6743" }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u79C1\u804A\u59CB\u7EC8\u9700\u8981\u8D26\u53F7\u5BA1\u6279\uFF1B\u767D\u540D\u5355\u7FA4\u653E\u884C\u6240\u6709\u6210\u5458\uFF0C\u5176\u4ED6\u5DF2\u63A5\u5165\u7FA4\u9700\u8981\u5BA1\u6279\u53D1\u8A00\u8D26\u53F7\u3002\u79C1\u804A\u4E0E\u5404\u7FA4\u7684\u8D26\u53F7\u5BA1\u6279\u5206\u522B\u8BB0\u5F55\uFF0C\u4E0D\u4E92\u76F8\u7EE7\u627F\uFF1B\u660E\u786E\u5C4F\u853D\u7684\u8D26\u53F7\u4ECD\u4E0D\u56DE\u590D\u3002\u5F52\u5C5E\u8D26\u53F7\u51B3\u5B9A\u5173\u7CFB\u4E0E\u79C1\u6709\u80FD\u529B\uFF0C\u4E0D\u66FF\u4EE3\u804A\u5929\u8BB8\u53EF\u3002" }), !owned.length && _jsx("p", { children: "\u6682\u65E0\u5BA1\u6279\u8BF7\u6C42\u3002\u79C1\u804A\u6216\u975E\u767D\u540D\u5355\u7684\u5DF2\u63A5\u5165\u7FA4\u9996\u6B21\u89E6\u53D1\u65F6\u4F1A\u751F\u6210\u8BF7\u6C42\uFF1B\u767D\u540D\u5355\u7FA4\u65E0\u9700\u9010\u4EBA\u5BA1\u6279\u3002" }), _jsx("div", { className: "dsh-partner-qq-options", children: owned.map(p => _jsxs("div", { className: "dsh-partner-qq-person", children: [_jsxs("span", { children: [_jsx("strong", { children: p.displayName }), _jsx("small", { children: qqGroupPeer(p.userId) ? (p.status === 'blocked' ? '群内已屏蔽' : groupWhite(p.userId) ? '群白名单已放行' : p.status === 'approved' ? '群内账号已批准' : '群内账号待批准') : p.status === 'approved' ? '私聊已批准' : p.status === 'pending' ? '私聊待批准' : '私聊已阻止' }), !groupWhite(p.userId) && p.status === 'pending' && p.pairingCode && _jsx("code", { children: p.pairingCode })] }), _jsx("button", { disabled: busy, onClick: () => void run(async () => { await api(`/pairings/${p.id}/status`, { method: 'POST', body: JSON.stringify({ status: (groupWhite(p.userId) ? p.status !== 'blocked' : p.status === 'approved') ? 'blocked' : 'approved' }) }); await onChanged(); }), children: groupWhite(p.userId) ? (p.status === 'blocked' ? '解除屏蔽' : '屏蔽') : (p.status === 'approved' ? '撤销' : '批准') })] }, p.id)) })] }) : _jsxs("div", { className: "dsh-partner-qq-pane", children: [_jsx(Field, { label: "\u63A5\u6536\u4EBA", hint: "\u53EA\u5217\u51FA\u5DF2\u6388\u6743\u7684\u79C1\u804A\u597D\u53CB\u548C\u7FA4\u6210\u5458\uFF1B\u7FA4\u6D88\u606F\u4F1A\u53D1\u5230\u5BF9\u5E94\u7684\u7FA4\u3002", children: _jsxs("select", { value: userId, disabled: busy, onChange: e => setUserId(e.target.value), children: [_jsx("option", { value: "", children: "\u8BF7\u9009\u62E9\u63A5\u6536\u4EBA" }), approved.map(p => _jsx("option", { value: p.userId, children: p.displayName }, p.id))] }) }), _jsxs("div", { className: "dsh-partner-qq-segments", role: "group", "aria-label": "\u53D1\u9001\u5185\u5BB9\u7C7B\u578B", children: [_jsx("button", { disabled: busy, "aria-pressed": mode === 'text', onClick: () => setMode('text'), children: "\u6587\u5B57" }), _jsx("button", { disabled: busy, "aria-pressed": mode === 'face', onClick: () => { setMode('face'); if (!faces.length)
|
|
48
48
|
void loadFaces(); }, children: "QQ \u8868\u60C5" })] }), mode === 'text' ? _jsx(Field, { label: "\u6D88\u606F\u5185\u5BB9", children: _jsx("textarea", { rows: 4, maxLength: 3000, value: text, disabled: busy, onChange: e => setText(e.target.value), placeholder: "\u8F93\u5165\u8981\u53D1\u9001\u7684\u6587\u5B57\u2026" }) }) : _jsxs(_Fragment, { children: [_jsx(Field, { label: "\u8868\u60C5\u5206\u7C7B", children: _jsxs("select", { value: category, onChange: e => { setCategory(e.target.value); setFaceLimit(80); }, children: [_jsx("option", { value: "", children: "\u5168\u90E8\u5206\u7C7B" }), [...new Set(faces.map(f => f.category))].map(c => _jsx("option", { value: c, children: c }, c))] }) }), _jsx(Field, { label: "\u641C\u7D22\u8868\u60C5\u540D\u79F0\u6216\u7F16\u53F7", children: _jsx("input", { value: search, onChange: e => setSearch(e.target.value) }) }), _jsx("div", { className: "dsh-partner-qq-faces", "aria-label": "QQ \u8868\u60C5\u76EE\u5F55", children: filteredFaces.slice(0, faceLimit).map(f => _jsxs("button", { type: "button", "aria-pressed": face?.id === f.id, onClick: () => setFace(f), title: `${f.name} · ${f.id}`, children: [_jsxs("span", { className: "dsh-partner-qq-face-preview", children: [f.image && _jsx("img", { src: f.image, alt: "", loading: "lazy", referrerPolicy: "no-referrer", onError: e => { e.currentTarget.hidden = true; } }), _jsx("span", { className: "dsh-partner-qq-face-number", children: f.id })] }), _jsx("span", { children: f.name })] }, f.id + '-' + f.category)) }), _jsxs("div", { className: "dsh-partner-qq-catalog-info", children: [_jsxs("span", { children: [filteredFaces.length, " \u4E2A\u8868\u60C5"] }), filteredFaces.length > faceLimit && _jsx("button", { onClick: () => setFaceLimit(n => n + 80), children: "\u663E\u793A\u66F4\u591A" })] }), !faces.length && _jsx("button", { disabled: busy, onClick: () => void loadFaces(), children: "\u8BFB\u53D6 QQ \u8868\u60C5\u76EE\u5F55" }), face && _jsxs("p", { children: ["\u5DF2\u9009\u62E9\uFF1A", face.name, " \u00B7 ", face.id] })] }), _jsx("div", { className: "dsh-partner-qq-actions", children: _jsx("button", { className: "is-primary", disabled: busy || !userId || (mode === 'text' ? !text.trim() : !face) || !channel.enabled || (mode === 'face' && (face?.kind === 'custom' ? channel.qq?.imagesEnabled === false : channel.qq?.facesEnabled === false)), onClick: () => void run(async () => { await post('send', { userId, ...(mode === 'text' ? { text } : face.kind === 'custom' ? { customFaceId: face.nativeId } : { faceId: face.id }) }); if (mode === 'text')
|
|
49
49
|
setText(''); }, '消息已确认发送'), children: busy ? '处理中…' : '发送到所选接收人' }) })] }), channel.lastError && page === 'home' && _jsx("p", { role: "alert", className: "dsh-partner-qq-feedback", children: channel.lastError }), feedback && _jsx("p", { role: failed ? 'alert' : 'status', className: "dsh-partner-qq-feedback", children: feedback }), dirty && _jsxs("footer", { className: "dsh-partner-qq-save", children: [_jsx("span", { children: "\u8BBE\u7F6E\u5C1A\u672A\u4FDD\u5B58" }), _jsx("button", { disabled: busy, onClick: () => setPolicy(qqSettings(channel.qq)), children: "\u8FD8\u539F" }), _jsx("button", { className: "is-primary", disabled: busy, onClick: () => void save(), children: "\u4FDD\u5B58\u8BBE\u7F6E" })] })] });
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qq-channel-settings.js","sourceRoot":"","sources":["../../src/ui/qq-channel-settings.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qq-channel-settings.js","sourceRoot":"","sources":["../../src/ui/qq-channel-settings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thoughts-panel-loader.d.ts","sourceRoot":"","sources":["../../src/ui/thoughts-panel-loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,cAAc,EAAC,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAC,aAAa,IAAI,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAWlE,wBAAgB,aAAa,CAAC,KAAK,EAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAE,GAAG,CAAC,OAAO,CAK/E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
let pending;
|
|
4
|
+
function load() {
|
|
5
|
+
return pending ??= require.async('./client.activities.js').then(value => {
|
|
6
|
+
const module = value;
|
|
7
|
+
if (typeof module?.ThoughtsPanel !== 'function')
|
|
8
|
+
throw new Error('活动记录加载失败');
|
|
9
|
+
return module;
|
|
10
|
+
}).catch(error => { pending = undefined; throw error; });
|
|
11
|
+
}
|
|
12
|
+
export function ThoughtsPanel(props) {
|
|
13
|
+
const [module, setModule] = useState(), [failed, setFailed] = useState(false), [attempt, setAttempt] = useState(0);
|
|
14
|
+
useEffect(() => { let active = true; setFailed(false); void load().then(m => { if (active)
|
|
15
|
+
setModule(m); }, () => { if (active)
|
|
16
|
+
setFailed(true); }); return () => { active = false; }; }, [attempt]);
|
|
17
|
+
if (module) {
|
|
18
|
+
const Component = module.ThoughtsPanel;
|
|
19
|
+
return _jsx(Component, { ...props });
|
|
20
|
+
}
|
|
21
|
+
return failed ? _jsxs("p", { role: "alert", children: ["\u6D3B\u52A8\u8BB0\u5F55\u52A0\u8F7D\u5931\u8D25\u3002", _jsx("button", { onClick: () => setAttempt(n => n + 1), children: "\u91CD\u65B0\u52A0\u8F7D" })] }) : _jsx("p", { role: "status", children: "\u6B63\u5728\u52A0\u8F7D\u6D3B\u52A8\u8BB0\u5F55\u2026" });
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=thoughts-panel-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thoughts-panel-loader.js","sourceRoot":"","sources":["../../src/ui/thoughts-panel-loader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAqB,MAAM,OAAO,CAAA;AAI5D,IAAI,OAAiC,CAAA;AACrC,SAAS,IAAI;IACZ,OAAO,OAAO,KAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE;QACpE,MAAM,MAAM,GAAC,KAAe,CAAA;QAC5B,IAAG,OAAO,MAAM,EAAE,aAAa,KAAG,UAAU;YAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;QACxE,OAAO,MAAM,CAAA;IACd,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE,GAAC,OAAO,GAAC,SAAS,CAAC,CAAA,MAAM,KAAK,CAAA,CAAA,CAAC,CAAC,CAAA;AACjD,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,KAAqC;IAClE,MAAM,CAAC,MAAM,EAAC,SAAS,CAAC,GAAC,QAAQ,EAAU,EAAC,CAAC,MAAM,EAAC,SAAS,CAAC,GAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,OAAO,EAAC,UAAU,CAAC,GAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/G,SAAS,CAAC,GAAE,EAAE,GAAC,IAAI,MAAM,GAAC,IAAI,CAAC,CAAA,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,GAAC,IAAG,MAAM;QAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,GAAE,EAAE,GAAC,IAAG,MAAM;QAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,OAAM,GAAE,EAAE,GAAC,MAAM,GAAC,KAAK,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAClK,IAAG,MAAM,EAAC,CAAC;QAAA,MAAM,SAAS,GAAC,MAAM,CAAC,aAAa,CAAC;QAAA,OAAO,KAAC,SAAS,OAAK,KAAK,GAAG,CAAA;IAAA,CAAC;IAC/E,OAAO,MAAM,CAAA,CAAC,CAAA,aAAG,IAAI,EAAC,OAAO,uEAAU,iBAAQ,OAAO,EAAE,GAAE,EAAE,CAAA,UAAU,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,GAAC,CAAC,CAAC,yCAAe,IAAI,CAAA,CAAC,CAAA,YAAG,IAAI,EAAC,QAAQ,uEAAc,CAAA;AACjI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thoughts-panel.d.ts","sourceRoot":"","sources":["../../src/ui/thoughts-panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"thoughts-panel.d.ts","sourceRoot":"","sources":["../../src/ui/thoughts-panel.tsx"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAGnF"}
|
package/lib/ui/thoughts-panel.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import activityCss from './activity-records.css';
|
|
3
|
+
import { summarizeActivities, activitySharingLabel } from '../character/activity-summary.js';
|
|
4
|
+
import { MAX_ACTIVE_THOUGHTS } from '../character/thought-budget.js';
|
|
2
5
|
import { useEffect, useState } from 'react';
|
|
3
6
|
import { loadPartner } from '../client-api.js';
|
|
4
7
|
import { errorMessage } from './workspace-components.js';
|
|
5
8
|
export function ThoughtsPanel({ companionId }) {
|
|
6
|
-
|
|
9
|
+
// Remount on identity changes: never display another companion's cached records.
|
|
10
|
+
return _jsxs(_Fragment, { children: [_jsx("style", { children: activityCss }), _jsx(ActivityRecords, { companionId: companionId }, companionId)] });
|
|
11
|
+
}
|
|
12
|
+
function ActivityRecords({ companionId }) {
|
|
13
|
+
const [snapshot, setSnapshot] = useState(), [error, setError] = useState('');
|
|
14
|
+
const [loading, setLoading] = useState(true), [revision, setRevision] = useState(0);
|
|
15
|
+
const [view, setView] = useState('activities');
|
|
16
|
+
const [visible, setVisible] = useState(6), [archivedVisible, setArchivedVisible] = useState(6);
|
|
17
|
+
const [copied, setCopied] = useState('');
|
|
7
18
|
useEffect(() => {
|
|
8
|
-
if (!open)
|
|
9
|
-
return;
|
|
10
19
|
let alive = true, running = false;
|
|
11
20
|
const refresh = async () => {
|
|
12
21
|
if (running || document.hidden)
|
|
@@ -30,13 +39,20 @@ export function ThoughtsPanel({ companionId }) {
|
|
|
30
39
|
setLoading(false);
|
|
31
40
|
}
|
|
32
41
|
};
|
|
42
|
+
const onVisible = () => { if (!document.hidden)
|
|
43
|
+
void refresh(); };
|
|
33
44
|
void refresh();
|
|
34
45
|
const timer = setInterval(() => void refresh(), 30000);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
const
|
|
46
|
+
document.addEventListener('visibilitychange', onVisible);
|
|
47
|
+
return () => { alive = false; clearInterval(timer); document.removeEventListener('visibilitychange', onVisible); };
|
|
48
|
+
}, [companionId, revision]);
|
|
49
|
+
const companion = snapshot?.companions.find(c => c.id === companionId);
|
|
50
|
+
const plan = companion?.activityPlan;
|
|
51
|
+
const journal = [...(companion?.activityJournal ?? [])].reverse();
|
|
52
|
+
const stats = summarizeActivities(journal);
|
|
53
|
+
const thoughts = [...(companion?.thoughts ?? [])].sort((a, b) => b.updatedAt - a.updatedAt);
|
|
54
|
+
const open = thoughts.filter(t => t.status === 'open'), archived = thoughts.filter(t => t.status !== 'open');
|
|
55
|
+
const date = (at) => new Date(at).toLocaleString('zh-CN', { month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit' });
|
|
40
56
|
const label = (id) => {
|
|
41
57
|
const route = snapshot?.sessions.find(r => r.id === id);
|
|
42
58
|
if (!route)
|
|
@@ -46,6 +62,7 @@ export function ThoughtsPanel({ companionId }) {
|
|
|
46
62
|
const group = route.userId.match(/^group:(\d+):/);
|
|
47
63
|
return group ? `群 ${group[1]}` : `${snapshot?.channels.find(c => c.id === route.channelId)?.name ?? '渠道'} · ${snapshot?.pairings.find(p => p.channelId === route.channelId && p.userId === route.userId)?.displayName ?? route.userId}`;
|
|
48
64
|
};
|
|
49
|
-
|
|
65
|
+
const thoughtRow = (t) => _jsxs("details", { className: "dsh-partner-activity-row", children: [_jsxs("summary", { children: [_jsx("span", { className: "dsh-partner-activity-copy", children: t.text }), _jsx("small", { children: t.status === 'done' ? '已完成(自主标记)' : t.status === 'dismissed' ? t.capacityArchivedAt ? '容量整理 · 已放下' : '已放下' : '惦记中' })] }), _jsxs("div", { className: "dsh-partner-activity-detail", children: [_jsx("p", { children: t.why }), _jsxs("small", { children: ["\u6765\u81EA ", t.sourceRouteIds.map(label).join('、'), " \u00B7 ", date(t.sourceAt)] }), _jsxs("small", { children: ["\u60F3\u53BB ", label(t.targetRouteId), t.lastOutcome ? ` · ${{ considered: '已考虑', silent: '暂时安静', delivered: '已发送', failed: '未确认送达' }[t.lastOutcome]}` : ''] }), t.capacityArchivedAt && _jsxs("p", { children: ["\u8FBE\u5230 ", MAX_ACTIVE_THOUGHTS, " \u6761\u4E0A\u9650\u540E\u81EA\u52A8\u653E\u4E0B\uFF0C\u4E0D\u8868\u793A\u5DF2\u7ECF\u5B8C\u6210\u3002"] }), t.result && _jsx("p", { children: t.result }), _jsxs("details", { children: [_jsx("summary", { children: "\u6765\u6E90\u539F\u6587" }), _jsx("p", { className: "dsh-partner-activity-evidence", children: t.evidence })] })] })] }, t.id);
|
|
66
|
+
return _jsxs("section", { className: "dsh-partner-activity-board", "aria-label": "\u81EA\u4E3B\u6D3B\u52A8\u8BB0\u5F55", children: [_jsxs("div", { className: "dsh-partner-activity-toolbar", children: [_jsxs("div", { className: "dsh-partner-activity-switcher", role: "group", "aria-label": "\u8BB0\u5F55\u7C7B\u578B", children: [_jsxs("button", { type: "button", "aria-pressed": view === 'activities', onClick: () => setView('activities'), children: ["\u6700\u8FD1\u6D3B\u52A8", snapshot && _jsx("span", { children: journal.length })] }), _jsxs("button", { type: "button", "aria-pressed": view === 'thoughts', onClick: () => setView('thoughts'), children: ["\u60E6\u8BB0\u7684\u4E8B", snapshot && _jsxs("span", { children: [open.length, "/", MAX_ACTIVE_THOUGHTS] })] })] }), _jsx("button", { type: "button", className: "dsh-partner-activity-refresh", disabled: loading, onClick: () => setRevision(n => n + 1), children: loading ? '读取中…' : '刷新' })] }), error && _jsxs("p", { role: "alert", className: "dsh-partner-inline-error", children: [error, snapshot ? '(暂时显示上次读取的记录)' : ''] }), !snapshot && loading && _jsx("p", { role: "status", className: "dsh-partner-activity-empty", children: "\u6B63\u5728\u8BFB\u53D6\u6D3B\u52A8\u8BB0\u5F55\u2026" }), snapshot && view === 'activities' && _jsxs(_Fragment, { children: [plan && plan.status !== 'cancelled' && _jsxs("div", { className: "dsh-partner-activity-plan", children: [_jsxs("small", { children: ["\u4E0B\u4E00\u6B65 \u00B7 ", { waiting: '等本轮结束', pending: '等待唤起', claimed: '已唤起' }[plan.status]] }), _jsx("p", { children: plan.intention }), _jsxs("small", { children: [label(plan.targetRouteId), plan.status === 'pending' ? ` · ${date(plan.dueAt)}` : ''] })] }), _jsxs("div", { className: "dsh-partner-activity-overview", children: [_jsxs("span", { children: ["\u786E\u8BA4\u53D1\u9001 ", _jsx("b", { children: stats.confirmed })] }), _jsxs("span", { children: ["\u5F85\u786E\u8BA4 ", _jsx("b", { children: stats.pending })] }), _jsxs("span", { "data-warning": stats.failed > 0, children: ["\u542B\u5931\u8D25\u64CD\u4F5C ", _jsx("b", { children: stats.failed })] })] }), !journal.length && _jsx("p", { className: "dsh-partner-activity-empty", children: "\u8FD8\u6CA1\u6709\u81EA\u4E3B\u6D3B\u52A8\u3002\u5524\u8D77\u540E\u4E5F\u53EF\u4EE5\u9009\u62E9\u5B89\u9759\u5F85\u7740\u3002" }), _jsx("div", { "aria-label": "\u6D3B\u52A8\u65F6\u95F4\u7EBF", children: journal.slice(0, visible).map(a => _jsxs("details", { className: "dsh-partner-activity-row", children: [_jsxs("summary", { children: [_jsxs("span", { className: "dsh-partner-activity-meta", children: [_jsx("time", { dateTime: new Date(a.at).toISOString(), children: date(a.at) }), _jsx("span", { children: activitySharingLabel(a) }), a.tools.some(t => !t.ok) && _jsx("span", { className: "dsh-partner-activity-warning", children: "\u6709\u64CD\u4F5C\u5931\u8D25" })] }), _jsx("span", { className: "dsh-partner-activity-copy", children: a.summary }), _jsxs("small", { children: [a.artifacts.length ? `${a.artifacts.length} 项作品 · ` : '', "\u5C55\u5F00\u8BE6\u60C5"] })] }), _jsxs("div", { className: "dsh-partner-activity-detail", children: [a.artifacts.map(path => _jsxs("div", { className: "dsh-partner-activity-artifact", children: [_jsx("span", { title: path, children: path }), _jsx("button", { type: "button", onClick: () => { void navigator.clipboard.writeText(path).then(() => setCopied(path)).catch(() => setError('复制失败,请手动选择路径复制')); }, children: "\u590D\u5236\u8DEF\u5F84" })] }, path)), _jsxs("details", { children: [_jsxs("summary", { children: ["\u6267\u884C\u4F9D\u636E \u00B7 ", a.tools.length, " \u9879\u64CD\u4F5C"] }), _jsxs("p", { children: [a.silent ? '以安静结束收尾;此前可能已发送。' : '本轮已结束。', "\u53D1\u9001\u72B6\u6001\u4EC5\u4F9D\u636E\u5B9E\u9645\u56DE\u6267\u3002"] }), _jsx("ul", { children: a.tools.map((t, i) => _jsxs("li", { children: [t.name, " \u00B7 ", t.ok ? '成功' : '失败'] }, i)) }), !a.tools.length && _jsx("p", { children: "\u672A\u8BB0\u5F55\u5DE5\u5177\u64CD\u4F5C\u3002" })] })] })] }, a.sessionId + ':' + a.id)) }), visible < journal.length && _jsxs("button", { type: "button", className: "dsh-partner-activity-more", onClick: () => setVisible(v => v + 6), children: ["\u67E5\u770B\u66F4\u591A\u6D3B\u52A8\uFF08\u8FD8\u6709 ", journal.length - visible, " \u8F6E\uFF09"] }), _jsxs("details", { className: "dsh-partner-activity-footnote", children: [_jsx("summary", { children: "\u7EDF\u8BA1\u8303\u56F4\u4E0E\u6D3B\u52A8\u7C7B\u578B" }), _jsxs("p", { children: ["\u4EC5\u7EDF\u8BA1\u6700\u8FD1\u4FDD\u7559\u7684 ", stats.total, " \u8F6E\uFF1B\u7C7B\u578B\u53EF\u91CD\u53E0\uFF0C\u4E0D\u4EE3\u8868\u5168\u90E8\u5386\u53F2\u3002", stats.unknown ? `其中 ${stats.unknown} 轮的历史发送状态未知。` : ''] }), _jsx("p", { children: stats.categories.map(c => `${c.name} ${c.count}`).join(' · ') || '暂无操作记录' })] })] }), snapshot && view === 'thoughts' && _jsxs(_Fragment, { children: [_jsxs("p", { className: "dsh-partner-activity-note", children: ["\u6700\u591A\u540C\u65F6\u60E6\u8BB0 ", MAX_ACTIVE_THOUGHTS, " \u4EF6\u4E8B\uFF0C\u6240\u6709\u4F1A\u8BDD\u5171\u7528\u3002\u6EE1\u989D\u65F6\u4F18\u5148\u4FDD\u7559\u6B63\u5728\u505A\u3001\u5DF2\u5B89\u6392\u548C\u8F83\u65B0\u7684\u5FF5\u5934\uFF0C\u65E7\u5FF5\u5934\u653E\u4E0B\u540E\u4ECD\u53EF\u67E5\u770B\u8FD1\u671F\u8BB0\u5F55\u3002"] }), !open.length && _jsx("p", { className: "dsh-partner-activity-empty", children: "\u6682\u65F6\u6CA1\u6709\u60E6\u8BB0\u7684\u4E8B\uFF0C\u4E0D\u8981\u6C42\u6BCF\u6B21\u4E92\u52A8\u90FD\u7559\u4E0B\u5FF5\u5934\u3002" }), _jsx("div", { "aria-label": "\u5F53\u524D\u5FF5\u5934", children: open.map(thoughtRow) }), archived.length > 0 && _jsxs("details", { className: "dsh-partner-activity-archive", children: [_jsxs("summary", { children: ["\u5DF2\u5B8C\u6210\u4E0E\u5DF2\u653E\u4E0B \u00B7 ", archived.length] }), archived.slice(0, archivedVisible).map(thoughtRow), archivedVisible < archived.length && _jsx("button", { type: "button", className: "dsh-partner-activity-more", onClick: () => setArchivedVisible(n => n + 6), children: "\u67E5\u770B\u66F4\u591A\u65E7\u5FF5\u5934" }), _jsx("p", { className: "dsh-partner-activity-note", children: "\u4EC5\u4FDD\u7559\u8FD1\u671F\u8BB0\u5F55\uFF1B\u653E\u4E0B\u7684\u5FF5\u5934\u4E0D\u518D\u8FDB\u5165\u5F53\u524D\u6D3B\u52A8\u4E0A\u4E0B\u6587\u3002" })] })] }), _jsx("span", { className: "dsh-partner-activity-copy-status", role: "status", children: copied ? '路径已复制' : '' })] });
|
|
50
67
|
}
|
|
51
68
|
//# sourceMappingURL=thoughts-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thoughts-panel.js","sourceRoot":"","sources":["../../src/ui/thoughts-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"thoughts-panel.js","sourceRoot":"","sources":["../../src/ui/thoughts-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tts-settings-loader.d.ts","sourceRoot":"","sources":["../../src/ui/tts-settings-loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,cAAc,EAAC,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAC,WAAW,IAAI,QAAQ,EAAC,MAAM,mBAAmB,CAAA;AAW9D,wBAAgB,WAAW,CAAC,KAAK,EAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAE,GAAG,CAAC,OAAO,CAK7E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
let pending;
|
|
4
|
+
function load() {
|
|
5
|
+
return pending ??= require.async('./client.tts.js').then(value => {
|
|
6
|
+
const module = value;
|
|
7
|
+
if (typeof module?.TtsSettings !== 'function')
|
|
8
|
+
throw new Error('语音模块加载失败');
|
|
9
|
+
return module;
|
|
10
|
+
}).catch(error => { pending = undefined; throw error; });
|
|
11
|
+
}
|
|
12
|
+
export function TtsSettings(props) {
|
|
13
|
+
const [module, setModule] = useState(), [failed, setFailed] = useState(false), [attempt, setAttempt] = useState(0);
|
|
14
|
+
useEffect(() => { let active = true; setFailed(false); void load().then(m => { if (active)
|
|
15
|
+
setModule(m); }, () => { if (active)
|
|
16
|
+
setFailed(true); }); return () => { active = false; }; }, [attempt]);
|
|
17
|
+
if (module) {
|
|
18
|
+
const Component = module.TtsSettings;
|
|
19
|
+
return _jsx(Component, { ...props });
|
|
20
|
+
}
|
|
21
|
+
return failed ? _jsxs("p", { role: "alert", children: ["\u8BED\u97F3\u6A21\u5757\u52A0\u8F7D\u5931\u8D25\u3002", _jsx("button", { onClick: () => setAttempt(n => n + 1), children: "\u91CD\u65B0\u52A0\u8F7D" })] }) : _jsx("p", { role: "status", children: "\u6B63\u5728\u52A0\u8F7D\u8BED\u97F3\u8BBE\u7F6E\u2026" });
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=tts-settings-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tts-settings-loader.js","sourceRoot":"","sources":["../../src/ui/tts-settings-loader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAqB,MAAM,OAAO,CAAA;AAI5D,IAAI,OAAiC,CAAA;AACrC,SAAS,IAAI;IACZ,OAAO,OAAO,KAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE;QAC7D,MAAM,MAAM,GAAC,KAAe,CAAA;QAC5B,IAAG,OAAO,MAAM,EAAE,WAAW,KAAG,UAAU;YAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;QACtE,OAAO,MAAM,CAAA;IACd,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE,GAAC,OAAO,GAAC,SAAS,CAAC,CAAA,MAAM,KAAK,CAAA,CAAA,CAAC,CAAC,CAAA;AACjD,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,KAAqC;IAChE,MAAM,CAAC,MAAM,EAAC,SAAS,CAAC,GAAC,QAAQ,EAAU,EAAC,CAAC,MAAM,EAAC,SAAS,CAAC,GAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,OAAO,EAAC,UAAU,CAAC,GAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/G,SAAS,CAAC,GAAE,EAAE,GAAC,IAAI,MAAM,GAAC,IAAI,CAAC,CAAA,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,GAAC,IAAG,MAAM;QAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,EAAC,GAAE,EAAE,GAAC,IAAG,MAAM;QAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,OAAM,GAAE,EAAE,GAAC,MAAM,GAAC,KAAK,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAClK,IAAG,MAAM,EAAC,CAAC;QAAA,MAAM,SAAS,GAAC,MAAM,CAAC,WAAW,CAAC;QAAA,OAAO,KAAC,SAAS,OAAK,KAAK,GAAG,CAAA;IAAA,CAAC;IAC7E,OAAO,MAAM,CAAA,CAAC,CAAA,aAAG,IAAI,EAAC,OAAO,uEAAU,iBAAQ,OAAO,EAAE,GAAE,EAAE,CAAA,UAAU,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,GAAC,CAAC,CAAC,yCAAe,IAAI,CAAA,CAAC,CAAA,YAAG,IAAI,EAAC,QAAQ,uEAAc,CAAA;AACjI,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ChannelView } from '../client-api.js';
|
|
2
|
+
export declare function TtsSettings({ companionId, channels, onChanged, onEdit }: {
|
|
3
|
+
companionId: string;
|
|
4
|
+
channels: ChannelView[];
|
|
5
|
+
onChanged(): Promise<void>;
|
|
6
|
+
onEdit(value: {
|
|
7
|
+
dirty: boolean;
|
|
8
|
+
busy: boolean;
|
|
9
|
+
}): void;
|
|
10
|
+
}): JSX.Element;
|
|
11
|
+
//# sourceMappingURL=tts-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tts-settings.d.ts","sourceRoot":"","sources":["../../src/ui/tts-settings.tsx"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAKrD,wBAAgB,WAAW,CAAC,EAAC,WAAW,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,EAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,WAAW,EAAE,CAAC;IAAA,SAAS,IAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAA,MAAM,CAAC,KAAK,EAAC;QAAC,KAAK,EAAC,OAAO,CAAC;QAAA,IAAI,EAAC,OAAO,CAAA;KAAC,GAAE,IAAI,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CA+BrM"}
|