@lemoncat7/dsh-partner 2.23.55 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/README.md +7 -2
  2. package/docs/compatibility-0.2.2-rc.1.md +7 -0
  3. package/docs/releases/2.24.0-rc.10.md +8 -0
  4. package/docs/releases/2.24.0-rc.11.md +10 -0
  5. package/docs/releases/2.24.0-rc.2.md +9 -0
  6. package/docs/releases/2.24.0-rc.3.md +6 -0
  7. package/docs/releases/2.24.0-rc.4.md +11 -0
  8. package/docs/releases/2.24.0-rc.5.md +11 -0
  9. package/docs/releases/2.24.0-rc.6.md +12 -0
  10. package/docs/releases/2.24.0-rc.9.md +5 -0
  11. package/docs/releases/2.25.0-rc.1.md +12 -0
  12. package/docs/releases/2.25.0-rc.11.md +5 -0
  13. package/docs/releases/2.25.0-rc.2.md +10 -0
  14. package/docs/releases/2.25.0-rc.3.md +11 -0
  15. package/docs/releases/2.25.0-rc.4.md +3 -0
  16. package/docs/releases/2.25.0-rc.5.md +3 -0
  17. package/docs/releases/2.25.0.md +32 -0
  18. package/lib/agent-runtime.d.ts +3 -1
  19. package/lib/agent-runtime.d.ts.map +1 -1
  20. package/lib/agent-runtime.js +91 -18
  21. package/lib/agent-runtime.js.map +1 -1
  22. package/lib/api/features/tts-api.d.ts +4 -0
  23. package/lib/api/features/tts-api.d.ts.map +1 -0
  24. package/lib/api/features/tts-api.js +49 -0
  25. package/lib/api/features/tts-api.js.map +1 -0
  26. package/lib/api.d.ts +3 -0
  27. package/lib/api.d.ts.map +1 -1
  28. package/lib/api.js +79 -6
  29. package/lib/api.js.map +1 -1
  30. package/lib/channels/activity-defaults.d.ts.map +1 -1
  31. package/lib/channels/activity-defaults.js +7 -0
  32. package/lib/channels/activity-defaults.js.map +1 -1
  33. package/lib/channels/bilibili/activity-provider.d.ts +3 -0
  34. package/lib/channels/bilibili/activity-provider.d.ts.map +1 -0
  35. package/lib/channels/bilibili/activity-provider.js +8 -0
  36. package/lib/channels/bilibili/activity-provider.js.map +1 -0
  37. package/lib/channels/bilibili/catalog.d.ts +23 -0
  38. package/lib/channels/bilibili/catalog.d.ts.map +1 -0
  39. package/lib/channels/bilibili/catalog.js +45 -0
  40. package/lib/channels/bilibili/catalog.js.map +1 -0
  41. package/lib/channels/bilibili/media.d.ts +9 -0
  42. package/lib/channels/bilibili/media.d.ts.map +1 -0
  43. package/lib/channels/bilibili/media.js +67 -0
  44. package/lib/channels/bilibili/media.js.map +1 -0
  45. package/lib/channels/bilibili/service.d.ts +37 -0
  46. package/lib/channels/bilibili/service.d.ts.map +1 -0
  47. package/lib/channels/bilibili/service.js +138 -0
  48. package/lib/channels/bilibili/service.js.map +1 -0
  49. package/lib/channels/bilibili/tools.d.ts +6 -0
  50. package/lib/channels/bilibili/tools.d.ts.map +1 -0
  51. package/lib/channels/bilibili/tools.js +48 -0
  52. package/lib/channels/bilibili/tools.js.map +1 -0
  53. package/lib/channels/direct/message-format.js +298 -206
  54. package/lib/channels/direct/message-format.js.map +4 -4
  55. package/lib/channels/direct/transport.d.ts +1 -1
  56. package/lib/channels/direct/transport.d.ts.map +1 -1
  57. package/lib/channels/manager.d.ts +2 -0
  58. package/lib/channels/manager.d.ts.map +1 -1
  59. package/lib/channels/manager.js +24 -4
  60. package/lib/channels/manager.js.map +1 -1
  61. package/lib/channels/outbound-media.d.ts +1 -1
  62. package/lib/channels/outbound-media.d.ts.map +1 -1
  63. package/lib/channels/outbound-media.js +3 -2
  64. package/lib/channels/outbound-media.js.map +1 -1
  65. package/lib/channels/qq/authority.d.ts +1 -1
  66. package/lib/channels/qq/authority.d.ts.map +1 -1
  67. package/lib/channels/qq/authority.js +2 -2
  68. package/lib/channels/qq/authority.js.map +1 -1
  69. package/lib/channels/qq/reply-tool.d.ts +1 -1
  70. package/lib/channels/qq/reply-tool.d.ts.map +1 -1
  71. package/lib/channels/qq/reply-tool.js +7 -2
  72. package/lib/channels/qq/reply-tool.js.map +1 -1
  73. package/lib/channels/weixin/api.d.ts +1 -1
  74. package/lib/channels/weixin/api.d.ts.map +1 -1
  75. package/lib/channels/weixin/api.js +7 -1
  76. package/lib/channels/weixin/api.js.map +1 -1
  77. package/lib/channels/weixin/connect.d.ts +5 -1
  78. package/lib/channels/weixin/connect.d.ts.map +1 -1
  79. package/lib/character/activity-journal.d.ts +3 -1
  80. package/lib/character/activity-journal.d.ts.map +1 -1
  81. package/lib/character/activity-journal.js +43 -7
  82. package/lib/character/activity-journal.js.map +1 -1
  83. package/lib/character/activity-summary.d.ts +23 -0
  84. package/lib/character/activity-summary.d.ts.map +1 -0
  85. package/lib/character/activity-summary.js +23 -0
  86. package/lib/character/activity-summary.js.map +1 -0
  87. package/lib/character/affection-tool.js +2 -2
  88. package/lib/character/affection-tool.js.map +1 -1
  89. package/lib/character/affection.d.ts +6 -42
  90. package/lib/character/affection.d.ts.map +1 -1
  91. package/lib/character/affection.js +4 -13
  92. package/lib/character/affection.js.map +1 -1
  93. package/lib/character/conversation-behavior.d.ts +1 -0
  94. package/lib/character/conversation-behavior.d.ts.map +1 -1
  95. package/lib/character/conversation-behavior.js +8 -5
  96. package/lib/character/conversation-behavior.js.map +1 -1
  97. package/lib/character/habit-tool.d.ts +4 -0
  98. package/lib/character/habit-tool.d.ts.map +1 -0
  99. package/lib/character/habit-tool.js +31 -0
  100. package/lib/character/habit-tool.js.map +1 -0
  101. package/lib/character/habits.d.ts +38 -0
  102. package/lib/character/habits.d.ts.map +1 -0
  103. package/lib/character/habits.js +92 -0
  104. package/lib/character/habits.js.map +1 -0
  105. package/lib/character/idle-contact.d.ts +9 -0
  106. package/lib/character/idle-contact.d.ts.map +1 -1
  107. package/lib/character/idle-contact.js +62 -9
  108. package/lib/character/idle-contact.js.map +1 -1
  109. package/lib/character/interaction-review.d.ts +10 -0
  110. package/lib/character/interaction-review.d.ts.map +1 -1
  111. package/lib/character/interaction-review.js +51 -31
  112. package/lib/character/interaction-review.js.map +1 -1
  113. package/lib/chat/live-speech.d.ts +5 -2
  114. package/lib/chat/live-speech.d.ts.map +1 -1
  115. package/lib/chat/live-speech.js +37 -9
  116. package/lib/chat/live-speech.js.map +1 -1
  117. package/lib/chat/persona-delivery.d.ts +31 -0
  118. package/lib/chat/persona-delivery.d.ts.map +1 -0
  119. package/lib/chat/persona-delivery.js +131 -0
  120. package/lib/chat/persona-delivery.js.map +1 -0
  121. package/lib/chat/protocol.d.ts +1 -1
  122. package/lib/chat/protocol.js +1 -1
  123. package/lib/chat/reply-continuity.d.ts.map +1 -1
  124. package/lib/chat/reply-continuity.js +12 -0
  125. package/lib/chat/reply-continuity.js.map +1 -1
  126. package/lib/chat/tools.d.ts.map +1 -1
  127. package/lib/chat/tools.js +26 -11
  128. package/lib/chat/tools.js.map +1 -1
  129. package/lib/chat/work-expression.d.ts +36 -0
  130. package/lib/chat/work-expression.d.ts.map +1 -1
  131. package/lib/chat/work-expression.js +80 -17
  132. package/lib/chat/work-expression.js.map +1 -1
  133. package/lib/client-api.d.ts +17 -1
  134. package/lib/client-api.d.ts.map +1 -1
  135. package/lib/client-api.js.map +1 -1
  136. package/lib/client.activities.js +3 -0
  137. package/lib/client.d.ts.map +1 -1
  138. package/lib/client.js +4119 -3763
  139. package/lib/client.js.map +4 -4
  140. package/lib/client.tts.js +7 -0
  141. package/lib/collaboration/composition.d.ts.map +1 -1
  142. package/lib/collaboration/composition.js +2 -0
  143. package/lib/collaboration/composition.js.map +1 -1
  144. package/lib/collaboration/tool-discovery.d.ts +1 -1
  145. package/lib/collaboration/tool-discovery.d.ts.map +1 -1
  146. package/lib/collaboration/tool-discovery.js +15 -9
  147. package/lib/collaboration/tool-discovery.js.map +1 -1
  148. package/lib/companions/identity-tool.d.ts +1 -1
  149. package/lib/companions/identity-tool.d.ts.map +1 -1
  150. package/lib/companions/identity-tool.js +3 -4
  151. package/lib/companions/identity-tool.js.map +1 -1
  152. package/lib/companions/identity.js +4 -4
  153. package/lib/companions/identity.js.map +1 -1
  154. package/lib/companions/management.d.ts +4 -4
  155. package/lib/companions/persona-refinement.d.ts.map +1 -1
  156. package/lib/companions/persona-refinement.js +1 -45
  157. package/lib/companions/persona-refinement.js.map +1 -1
  158. package/lib/compat/native-presentation.d.ts +4 -0
  159. package/lib/compat/native-presentation.d.ts.map +1 -0
  160. package/lib/compat/native-presentation.js +40 -0
  161. package/lib/compat/native-presentation.js.map +1 -0
  162. package/lib/compat/ptc-events.d.ts +2 -0
  163. package/lib/compat/ptc-events.d.ts.map +1 -0
  164. package/lib/compat/ptc-events.js +2 -0
  165. package/lib/compat/ptc-events.js.map +1 -0
  166. package/lib/compat/tool-dispatch.d.ts +4 -0
  167. package/lib/compat/tool-dispatch.d.ts.map +1 -0
  168. package/lib/compat/tool-dispatch.js +14 -0
  169. package/lib/compat/tool-dispatch.js.map +1 -0
  170. package/lib/concern-execution-receipt.d.ts +2 -1
  171. package/lib/concern-execution-receipt.d.ts.map +1 -1
  172. package/lib/concern-execution-receipt.js +15 -13
  173. package/lib/concern-execution-receipt.js.map +1 -1
  174. package/lib/concern-execution.d.ts +3 -1
  175. package/lib/concern-execution.d.ts.map +1 -1
  176. package/lib/concern-execution.js +20 -1
  177. package/lib/concern-execution.js.map +1 -1
  178. package/lib/concern-recording.d.ts +1 -1
  179. package/lib/concern-recording.d.ts.map +1 -1
  180. package/lib/concern-recording.js +14 -5
  181. package/lib/concern-recording.js.map +1 -1
  182. package/lib/concern-store.d.ts.map +1 -1
  183. package/lib/concern-store.js +3 -1
  184. package/lib/concern-store.js.map +1 -1
  185. package/lib/concern-tool.d.ts.map +1 -1
  186. package/lib/concern-tool.js +5 -3
  187. package/lib/concern-tool.js.map +1 -1
  188. package/lib/domain.d.ts +13 -1
  189. package/lib/domain.d.ts.map +1 -1
  190. package/lib/domain.js.map +1 -1
  191. package/lib/execution/operation-tool-access.d.ts.map +1 -1
  192. package/lib/execution/operation-tool-access.js +2 -6
  193. package/lib/execution/operation-tool-access.js.map +1 -1
  194. package/lib/execution/service.d.ts +2 -0
  195. package/lib/execution/service.d.ts.map +1 -1
  196. package/lib/execution/service.js +7 -1
  197. package/lib/execution/service.js.map +1 -1
  198. package/lib/execution/task-preamble.js +2 -2
  199. package/lib/execution/task-preamble.js.map +1 -1
  200. package/lib/execution/work-progress-card.d.ts +10 -0
  201. package/lib/execution/work-progress-card.d.ts.map +1 -0
  202. package/lib/execution/work-progress-card.js +45 -0
  203. package/lib/execution/work-progress-card.js.map +1 -0
  204. package/lib/execution/work-progress-state.d.ts +32 -0
  205. package/lib/execution/work-progress-state.d.ts.map +1 -0
  206. package/lib/execution/work-progress-state.js +19 -0
  207. package/lib/execution/work-progress-state.js.map +1 -0
  208. package/lib/execution/work-progress.d.ts +16 -0
  209. package/lib/execution/work-progress.d.ts.map +1 -0
  210. package/lib/execution/work-progress.js +76 -0
  211. package/lib/execution/work-progress.js.map +1 -0
  212. package/lib/execution/work-tool.d.ts.map +1 -1
  213. package/lib/execution/work-tool.js +63 -52
  214. package/lib/execution/work-tool.js.map +1 -1
  215. package/lib/heartbeat.js +1 -1
  216. package/lib/heartbeat.js.map +1 -1
  217. package/lib/index.d.ts.map +1 -1
  218. package/lib/index.js +11 -3
  219. package/lib/index.js.map +1 -1
  220. package/lib/memory-store.d.ts +1 -1
  221. package/lib/observation-loop.d.ts.map +1 -1
  222. package/lib/observation-loop.js +24 -6
  223. package/lib/observation-loop.js.map +1 -1
  224. package/lib/store.d.ts.map +1 -1
  225. package/lib/store.js +12 -1
  226. package/lib/store.js.map +1 -1
  227. package/lib/ui/affection-panel.js +1 -1
  228. package/lib/ui/affection-panel.js.map +1 -1
  229. package/lib/ui/bilibili-settings.d.ts +12 -0
  230. package/lib/ui/bilibili-settings.d.ts.map +1 -0
  231. package/lib/ui/bilibili-settings.js +77 -0
  232. package/lib/ui/bilibili-settings.js.map +1 -0
  233. package/lib/ui/channels-panel.d.ts.map +1 -1
  234. package/lib/ui/channels-panel.js +11 -4
  235. package/lib/ui/channels-panel.js.map +1 -1
  236. package/lib/ui/companion-vitals.js +1 -1
  237. package/lib/ui/companion-vitals.js.map +1 -1
  238. package/lib/ui/habits-panel.d.ts +4 -0
  239. package/lib/ui/habits-panel.d.ts.map +1 -0
  240. package/lib/ui/habits-panel.js +30 -0
  241. package/lib/ui/habits-panel.js.map +1 -0
  242. package/lib/ui/identity-editor.js +1 -8
  243. package/lib/ui/identity-editor.js.map +1 -1
  244. package/lib/ui/idle-contact-editor.d.ts.map +1 -1
  245. package/lib/ui/idle-contact-editor.js +3 -2
  246. package/lib/ui/idle-contact-editor.js.map +1 -1
  247. package/lib/ui/memory/concern-board.js +1 -1
  248. package/lib/ui/memory/concern-board.js.map +1 -1
  249. package/lib/ui/memory/concern-execution-status.d.ts.map +1 -1
  250. package/lib/ui/memory/concern-execution-status.js +2 -2
  251. package/lib/ui/memory/concern-execution-status.js.map +1 -1
  252. package/lib/ui/push-draft.d.ts +2 -2
  253. package/lib/ui/qq-channel-settings.js +3 -3
  254. package/lib/ui/qq-channel-settings.js.map +1 -1
  255. package/lib/ui/thoughts-panel-loader.d.ts +4 -0
  256. package/lib/ui/thoughts-panel-loader.d.ts.map +1 -0
  257. package/lib/ui/thoughts-panel-loader.js +23 -0
  258. package/lib/ui/thoughts-panel-loader.js.map +1 -0
  259. package/lib/ui/thoughts-panel.d.ts.map +1 -1
  260. package/lib/ui/thoughts-panel.js +7 -5
  261. package/lib/ui/thoughts-panel.js.map +1 -1
  262. package/lib/ui/tts-settings-loader.d.ts +4 -0
  263. package/lib/ui/tts-settings-loader.d.ts.map +1 -0
  264. package/lib/ui/tts-settings-loader.js +23 -0
  265. package/lib/ui/tts-settings-loader.js.map +1 -0
  266. package/lib/ui/tts-settings.d.ts +11 -0
  267. package/lib/ui/tts-settings.d.ts.map +1 -0
  268. package/lib/ui/tts-settings.js +63 -0
  269. package/lib/ui/tts-settings.js.map +1 -0
  270. package/lib/ui/workspace-navigation.d.ts +16 -16
  271. package/lib/voice/credentials.d.ts +9 -0
  272. package/lib/voice/credentials.d.ts.map +1 -0
  273. package/lib/voice/credentials.js +12 -0
  274. package/lib/voice/credentials.js.map +1 -0
  275. package/lib/voice/domain.d.ts +42 -0
  276. package/lib/voice/domain.d.ts.map +1 -0
  277. package/lib/voice/domain.js +53 -0
  278. package/lib/voice/domain.js.map +1 -0
  279. package/lib/voice/service.d.ts +63 -0
  280. package/lib/voice/service.d.ts.map +1 -0
  281. package/lib/voice/service.js +211 -0
  282. package/lib/voice/service.js.map +1 -0
  283. package/lib/voice/synthesize.d.ts +12 -0
  284. package/lib/voice/synthesize.d.ts.map +1 -0
  285. package/lib/voice/synthesize.js +97 -0
  286. package/lib/voice/synthesize.js.map +1 -0
  287. package/lib/voice/tool.d.ts +7 -0
  288. package/lib/voice/tool.d.ts.map +1 -0
  289. package/lib/voice/tool.js +73 -0
  290. package/lib/voice/tool.js.map +1 -0
  291. package/lib/voice/validation.d.ts +3 -0
  292. package/lib/voice/validation.d.ts.map +1 -0
  293. package/lib/voice/validation.js +31 -0
  294. package/lib/voice/validation.js.map +1 -0
  295. package/package.json +71 -48
  296. package/resources/bilibili/Dockerfile +7 -0
  297. package/resources/bilibili/media.py +245 -0
  298. package/resources/bilibili/requirements.txt +3 -0
  299. package/resources/bilibili/server.py +300 -0
  300. package/resources/bilibili/test_bridge.py +115 -0
  301. package/resources/bilibili/test_media.py +110 -0
@@ -0,0 +1,4 @@
1
+ export declare function HabitsPanel({ companionId }: {
2
+ companionId: string;
3
+ }): JSX.Element;
4
+ //# sourceMappingURL=habits-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"habits-panel.d.ts","sourceRoot":"","sources":["../../src/ui/habits-panel.tsx"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,CAAC,EAAC,WAAW,EAAC,EAAC;IAAC,WAAW,EAAC,MAAM,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CAW1E"}
@@ -0,0 +1,30 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { api } from '../client-api.js';
4
+ import { errorMessage } from './workspace-components.js';
5
+ function scopeLabel(scope) { try {
6
+ const [channel, person] = JSON.parse(scope);
7
+ return String(person).startsWith('group:') ? '群 ' + String(person).slice(6) : '私聊 ' + person + ' · ' + channel;
8
+ }
9
+ catch {
10
+ return '原会话';
11
+ } }
12
+ export function HabitsPanel({ companionId }) {
13
+ const [data, setData] = useState({ habits: [] }), [error, setError] = useState(''), [busy, setBusy] = useState(false);
14
+ const path = '/companions/' + encodeURIComponent(companionId) + '/habits';
15
+ useEffect(() => { let active = true; const refresh = () => api(path).then(d => { if (active)
16
+ setData(d); }).catch(e => { if (active)
17
+ setError(errorMessage(e)); }); void refresh(); const timer = setInterval(() => { if (!document.hidden)
18
+ void refresh(); }, 30000); return () => { active = false; clearInterval(timer); }; }, [path]);
19
+ const change = async (h, action) => { setBusy(true); setError(''); try {
20
+ setData(await api(path, { method: 'POST', body: JSON.stringify({ id: h.id, expectedAt: h.updatedAt, action }) }));
21
+ }
22
+ catch (e) {
23
+ setError(errorMessage(e));
24
+ }
25
+ finally {
26
+ setBusy(false);
27
+ } };
28
+ return _jsxs("div", { className: "dsh-partner-character-fields", "aria-label": "\u81EA\u4E3B\u4E60\u60EF\u8BB0\u5F55", children: [data.check && _jsxs("p", { className: "dsh-partner-character-hint", children: ["\u6700\u8FD1\u68C0\u67E5\uFF1A", new Date(data.check.at).toLocaleString(), " \u00B7 ", data.check.reason] }), error && _jsx("p", { role: "alert", className: "dsh-partner-inline-error", children: error }), !data.habits.length && _jsx("p", { className: "dsh-partner-character-hint", children: "\u8FD8\u6CA1\u6709\u5F62\u6210\u4E60\u60EF\u3002\u4E00\u6B21\u5076\u7136\u53CD\u5E94\u4E0D\u4F1A\u7ACB\u5373\u53D8\u6210\u56FA\u5B9A\u504F\u597D\u3002" }), data.habits.map(h => _jsxs("details", { className: "dsh-partner-memory-record", children: [_jsxs("summary", { children: [_jsx("span", { style: { overflowWrap: 'anywhere' }, children: h.text }), " \u00B7 ", data.inactiveIds?.includes(h.id) ? '已失效' : { candidate: '观察中', active: '已形成', paused: '已暂停' }[h.status]] }), _jsxs("div", { className: "dsh-partner-character-fields", children: [_jsxs("small", { children: [h.scope === 'global' ? '通用兴趣' : h.scope.startsWith('local:') ? '网页会话' : scopeLabel(h.scope), " \u00B7 ", h.evidence.length, " \u6B21\u4F9D\u636E \u00B7 ", new Date(h.updatedAt).toLocaleString()] }), _jsxs("details", { children: [_jsx("summary", { children: "\u5F62\u6210\u4F9D\u636E" }), h.evidence.map(e => _jsxs("p", { style: { overflowWrap: 'anywhere' }, children: [e.excerpt, _jsx("br", {}), _jsx("small", { children: new Date(e.at).toLocaleString() })] }, e.id))] }), _jsxs("div", { className: "dsh-partner-actions", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => void change(h, h.status === 'paused' || data.inactiveIds?.includes(h.id) ? 'resume' : 'pause'), children: h.status === 'paused' || data.inactiveIds?.includes(h.id) ? '重新观察' : '暂停' }), _jsx("button", { type: "button", disabled: busy, onClick: () => void change(h, 'delete'), children: "\u5220\u9664" })] })] })] }, h.id))] });
29
+ }
30
+ //# sourceMappingURL=habits-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"habits-panel.js","sourceRoot":"","sources":["../../src/ui/habits-panel.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { patchIdentity } from '../companions/identity.js';
3
2
  import { PersonaTemplate } from './persona-template.js';
4
3
  import { relationshipTextForIdentity } from '../character/relationship-adapter.js';
5
4
  import { SleepEditor } from './sleep-editor.js';
@@ -58,12 +57,6 @@ function IdentityEditorForm({ companion, onChanged }) {
58
57
  setOperation(undefined);
59
58
  }
60
59
  };
61
- return _jsxs("form", { onInvalidCapture: event => { event.preventDefault(); const target = event.target; const idle = Boolean(target.closest('[aria-label="闲时自主活动"]')); setSection(idle ? 'idle' : 'identity'); setError(idle ? '请选择自主活动的目标会话。' : '请填写基本身份中的名字和角色。'); requestAnimationFrame(() => target.focus()); }, id: "dsh-partner-identity-editor", className: "dsh-partner-form is-identity", "aria-busy": operation !== undefined, onSubmit: event => { void submit(event); }, children: [_jsx(Section, { eyebrow: "IDENTITY", title: "\u8EAB\u4EFD\u4E0E\u89D2\u8272", detail: "\u9875\u9762\u4E0E AI \u4F7F\u7528\u540C\u4E00\u4EFD\u8BBE\u5B9A\u3002\u63A8\u8350\u5728\u804A\u5929\u4E2D\u63D0\u51FA\u8981\u6C42\uFF0C\u8BA9 AI \u751F\u6210\u89D2\u8272\u4E0E\u5173\u7CFB\uFF1B\u8FD9\u91CC\u67E5\u770B\u6700\u65B0\u5185\u5BB9\uFF0C\u4E5F\u53EF\u76F4\u63A5\u4FEE\u6539\u4FDD\u5B58\u3002" }), dirty.current && companion.updatedAt !== revision.current && _jsx("p", { role: "status", className: "dsh-partner-character-hint", children: "\u8BBE\u5B9A\u5DF2\u88AB AI \u6216\u5176\u4ED6\u9875\u9762\u66F4\u65B0\u3002\u4F60\u7684\u672A\u4FDD\u5B58\u7F16\u8F91\u4ECD\u5728\uFF0C\u4FDD\u5B58\u4F1A\u8FDB\u884C\u7248\u672C\u6821\u9A8C\uFF1B\u8BF7\u5148\u8F7D\u5165\u6700\u65B0\u8BBE\u5B9A\u518D\u4FEE\u6539\uFF0C\u907F\u514D\u8986\u76D6\u65B0\u5185\u5BB9\u3002" }), _jsxs("section", { className: "dsh-partner-identity-card", "aria-label": "\u8EAB\u4EFD\u914D\u7F6E", children: [_jsx(SettingsSections, { label: "\u8EAB\u4EFD\u8BBE\u7F6E\u5206\u6BB5", value: section, onChange: setSection, sections: [{ id: 'identity', title: '基本身份', detail: '名字、定位与行为准则', content: _jsxs(_Fragment, { children: [_jsx(PersonaTemplate, { section: "basic" }), _jsxs("div", { className: "dsh-partner-fields two", children: [_jsx(Field, { label: "\u540D\u5B57", children: _jsx("input", { disabled: busy, required: true, maxLength: 60, value: form.name, onChange: event => edit({ ...form, name: event.target.value }) }) }), _jsx(Field, { label: "\u89D2\u8272", children: _jsx("input", { disabled: busy, required: true, maxLength: 120, value: form.role, onChange: event => edit({ ...form, role: event.target.value }) }) })] }), _jsx(Field, { label: "\u4E00\u53E5\u8BDD\u5B9A\u4F4D", hint: "\u7528\u4E8E\u540D\u518C\u8BC6\u522B\uFF0C\u4E0D\u4F1A\u66FF\u4EE3\u5B8C\u6574\u884C\u4E3A\u51C6\u5219\u3002", children: _jsx("textarea", { disabled: busy, rows: 2, maxLength: 500, value: form.description, onChange: event => edit({ ...form, description: event.target.value }) }) }), _jsx(Field, { label: "\u957F\u671F\u884C\u4E3A\u51C6\u5219", hint: "\u5199\u89D2\u8272\u901A\u7528\u7684\u804C\u8D23\u3001\u8868\u8FBE\u4E0E\u8FB9\u754C\u3002\u4E0E\u7528\u6237\u7684\u8EAB\u4EFD\u5173\u7CFB\u3001\u4E13\u5C5E\u79F0\u547C\u8BF7\u653E\u5230\u201C\u5173\u7CFB\u8BBE\u5B9A\u201D\u3002", children: _jsx("textarea", { disabled: busy, rows: 9, maxLength: 12000, value: form.instructions, onChange: event => edit({ ...form, instructions: event.target.value }) }) })] }) }, { id: 'character', title: '角色聊天', detail: form.characterCard?.enabled ? '已启用 · 设定与试聊' : '可选 · 设定与试聊', content: _jsx(CharacterEditor, { active: section === 'character', relationshipText: relationshipTextForIdentity(form), companion: companion, ...(form.characterCard ? { card: form.characterCard } : {}), disabled: busy, onChange: characterCard => edit({ ...form, characterCard }) }) }, { id: 'relationship', title: '关系设定', detail: '称呼与相处 · 按渠道应用', content: _jsxs(_Fragment, { children: [_jsx("p", { className: "dsh-partner-character-hint", children: "\u89D2\u8272\u8BBE\u5B9A\u5199\u201C\u6211\u662F\u8C01\u201D\uFF0C\u8FD9\u91CC\u5199\u201C\u6211\u4EEC\u662F\u4EC0\u4E48\u5173\u7CFB\u201D\u3002\u666E\u901A\u4F1A\u8BDD\u4F1A\u5408\u5E76\u4F7F\u7528\uFF1BQQ \u4EC5\u5728\u53D1\u9001\u8005\u5339\u914D\u4EFB\u4E00\u5F52\u5C5E\u8D26\u53F7\u65F6\u9644\u52A0\u8FD9\u4EFD\u5173\u7CFB\uFF0C\u7FA4\u804A\u4E0E\u79C1\u804A\u901A\u7528\u3002\u5176\u4ED6\u4EBA\u6839\u636E\u89D2\u8272\u6027\u683C\u4E0E\u5B9E\u9645\u4EA4\u5F80\u76F8\u5904\u3002" }), _jsx(PersonaTemplate, { section: "relationship" }), _jsx(Field, { label: "\u5173\u7CFB\u8BBE\u5B9A", hint: "\u5199\u5173\u7CFB\u8EAB\u4EFD\u3001\u4E13\u5C5E\u79F0\u547C\u548C\u76F8\u5904\u4E60\u60EF\uFF0C\u4E5F\u53EF\u9644\u5173\u7CFB\u793A\u4F8B\u3002\u7559\u7A7A\u8868\u793A\u4E0D\u9884\u8BBE\u5173\u7CFB\u3002", children: _jsx("textarea", { disabled: busy, rows: 12, maxLength: 12000, value: relationshipTextForIdentity(form), onChange: event => edit({ ...form, relationshipText: event.target.value }) }) }), _jsxs("details", { className: "dsh-partner-settings-advanced", children: [_jsx("summary", { children: "\u901A\u7528\u793A\u4F8B\u4E0E\u7F16\u8F91\u8BF4\u660E" }), _jsx("p", { children: "\u6211\u4EEC\u662F\u4E92\u76F8\u5C0A\u91CD\u7684\u8001\u670B\u53CB\uFF0C\u79F0\u547C\u5BF9\u65B9\u7684\u540D\u5B57\u3002\u719F\u6089\u65F6\u53EF\u4EE5\u5F00\u73A9\u7B11\uFF0C\u8BA4\u771F\u8BA8\u8BBA\u65F6\u76F4\u8BF4\u610F\u89C1\uFF0C\u4E0D\u7F16\u9020\u5171\u540C\u5F80\u4E8B\u3002" }), _jsx("p", { children: "\u53EF\u4EE5\u8BA9 AI \u5206\u522B\u751F\u6210\u89D2\u8272\u4E0E\u5173\u7CFB\u3002AI \u4E0E\u9875\u9762\u7F16\u8F91\u540C\u4E00\u4EFD\u751F\u6548\u5185\u5BB9\uFF1B\u4FDD\u5B58\u540E\u4E0B\u4E00\u8F6E\u4F7F\u7528\u65B0\u8BBE\u5B9A\u3002\u65E7\u7248\u89D2\u8272\u6216\u57FA\u672C\u8EAB\u4EFD\u4E2D\u6DF7\u5199\u7684\u4E13\u5C5E\u5173\u7CFB\uFF0C\u9700\u8981\u79FB\u5230\u8FD9\u91CC\uFF1B\u7CFB\u7EDF\u4E0D\u4F1A\u731C\u6D4B\u5220\u6539\u65E7\u6587\u672C\u3002QQ \u8D26\u53F7\u53EA\u9700\u5728\u6E20\u9053\u7684\u8BBF\u95EE\u6743\u9650\u4E2D\u586B\u5199\u3002" })] })] }) }, { id: 'idle', title: '闲时自主活动', detail: form.idleContact?.enabled ? '已开启 · 按概率自主行动' : '可选 · 聊天或使用能力', content: _jsxs(_Fragment, { children: [_jsx(IdleContactEditor, { companionId: companion.id, value: form.idleContact, disabled: busy, onChange: idleContact => edit({ ...form, idleContact }) }), _jsxs("details", { className: "dsh-partner-settings-advanced", children: [_jsxs("summary", { children: ["\u81EA\u4E3B\u8C03\u6574\u8BB0\u5F55\uFF08", companion.personaHistory?.length ?? 0, " / 12\uFF09"] }), !companion.personaHistory?.length && _jsx("p", { children: "\u8FD8\u6CA1\u6709\u81EA\u4E3B\u8C03\u6574\u8BB0\u5F55\u3002" }), [...(companion.personaHistory ?? [])].reverse().map(entry => _jsxs("article", { children: [_jsxs("p", { children: [new Date(entry.at).toLocaleString(), " \u00B7 ", entry.reason] }), _jsxs("details", { children: [_jsx("summary", { children: "\u67E5\u770B\u4FEE\u6539\u524D\u540E" }), _jsx("pre", { style: { whiteSpace: 'pre-wrap', overflowWrap: 'anywhere' }, children: JSON.stringify({ 修改前: entry.before, 修改后: entry.after }, null, 2) })] }), _jsx("button", { type: "button", disabled: busy, onClick: () => { try {
62
- edit(patchIdentity(form, entry.before));
63
- setError(undefined);
64
- }
65
- catch (e) {
66
- setError(errorMessage(e));
67
- } }, children: "\u8F7D\u5165\u6B64\u6B21\u4FEE\u6539\u524D\u7684\u5185\u5BB9" })] }, entry.at))] })] }) }, { id: 'sleep', title: '睡眠与做梦', detail: '自主休息 · 梦境与感受', content: _jsx(SleepEditor, { companion: companion, value: sleepPolicy(form), disabled: busy, active: section === 'sleep', onChange: sleepPolicy => edit({ ...form, sleepPolicy }) }) }] }), error && _jsx("p", { className: "dsh-partner-inline-error", role: "alert", children: error }), _jsxs("div", { className: "dsh-partner-form-actions", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => { setForm(pageIdentity(companion)); revision.current = companion.updatedAt; dirty.current = false; setError(undefined); setSaved(false); }, children: "\u8F7D\u5165\u6700\u65B0\u8BBE\u5B9A" }), _jsx("span", { role: "status", children: saved && _jsxs(_Fragment, { children: [_jsx(IconCheckOutline14, { size: 14 }), "\u8EAB\u4EFD\u5DF2\u4FDD\u5B58\uFF0C\u4E0B\u4E00\u8F6E\u5C06\u4F7F\u7528\u65B0\u8EAB\u4EFD"] }) }), _jsx("button", { disabled: busy, children: operation === 'save' ? '正在保存…' : '保存身份' })] })] })] });
60
+ return _jsxs("form", { onInvalidCapture: event => { event.preventDefault(); const target = event.target; const idle = Boolean(target.closest('[aria-label="闲时自主活动"]')); setSection(idle ? 'idle' : 'identity'); setError(idle ? '请选择自主活动的目标会话。' : '请填写基本身份中的名字和角色。'); requestAnimationFrame(() => target.focus()); }, id: "dsh-partner-identity-editor", className: "dsh-partner-form is-identity", "aria-busy": operation !== undefined, onSubmit: event => { void submit(event); }, children: [_jsx(Section, { eyebrow: "IDENTITY", title: "\u8EAB\u4EFD\u4E0E\u89D2\u8272", detail: "\u9875\u9762\u4E0E AI \u4F7F\u7528\u540C\u4E00\u4EFD\u8BBE\u5B9A\u3002\u63A8\u8350\u5728\u804A\u5929\u4E2D\u63D0\u51FA\u8981\u6C42\uFF0C\u8BA9 AI \u751F\u6210\u89D2\u8272\u4E0E\u5173\u7CFB\uFF1B\u8FD9\u91CC\u67E5\u770B\u6700\u65B0\u5185\u5BB9\uFF0C\u4E5F\u53EF\u76F4\u63A5\u4FEE\u6539\u4FDD\u5B58\u3002" }), dirty.current && companion.updatedAt !== revision.current && _jsx("p", { role: "status", className: "dsh-partner-character-hint", children: "\u8BBE\u5B9A\u5DF2\u88AB AI \u6216\u5176\u4ED6\u9875\u9762\u66F4\u65B0\u3002\u4F60\u7684\u672A\u4FDD\u5B58\u7F16\u8F91\u4ECD\u5728\uFF0C\u4FDD\u5B58\u4F1A\u8FDB\u884C\u7248\u672C\u6821\u9A8C\uFF1B\u8BF7\u5148\u8F7D\u5165\u6700\u65B0\u8BBE\u5B9A\u518D\u4FEE\u6539\uFF0C\u907F\u514D\u8986\u76D6\u65B0\u5185\u5BB9\u3002" }), _jsxs("section", { className: "dsh-partner-identity-card", "aria-label": "\u8EAB\u4EFD\u914D\u7F6E", children: [_jsx(SettingsSections, { label: "\u8EAB\u4EFD\u8BBE\u7F6E\u5206\u6BB5", value: section, onChange: setSection, sections: [{ id: 'identity', title: '基本身份', detail: '名字、定位与行为准则', content: _jsxs(_Fragment, { children: [_jsx(PersonaTemplate, { section: "basic" }), _jsxs("div", { className: "dsh-partner-fields two", children: [_jsx(Field, { label: "\u540D\u5B57", children: _jsx("input", { disabled: busy, required: true, maxLength: 60, value: form.name, onChange: event => edit({ ...form, name: event.target.value }) }) }), _jsx(Field, { label: "\u89D2\u8272", children: _jsx("input", { disabled: busy, required: true, maxLength: 120, value: form.role, onChange: event => edit({ ...form, role: event.target.value }) }) })] }), _jsx(Field, { label: "\u4E00\u53E5\u8BDD\u5B9A\u4F4D", hint: "\u7528\u4E8E\u540D\u518C\u8BC6\u522B\uFF0C\u4E0D\u4F1A\u66FF\u4EE3\u5B8C\u6574\u884C\u4E3A\u51C6\u5219\u3002", children: _jsx("textarea", { disabled: busy, rows: 2, maxLength: 500, value: form.description, onChange: event => edit({ ...form, description: event.target.value }) }) }), _jsx(Field, { label: "\u957F\u671F\u884C\u4E3A\u51C6\u5219", hint: "\u5199\u89D2\u8272\u901A\u7528\u7684\u804C\u8D23\u3001\u8868\u8FBE\u4E0E\u8FB9\u754C\u3002\u4E0E\u7528\u6237\u7684\u8EAB\u4EFD\u5173\u7CFB\u3001\u4E13\u5C5E\u79F0\u547C\u8BF7\u653E\u5230\u201C\u5173\u7CFB\u8BBE\u5B9A\u201D\u3002", children: _jsx("textarea", { disabled: busy, rows: 9, maxLength: 12000, value: form.instructions, onChange: event => edit({ ...form, instructions: event.target.value }) }) })] }) }, { id: 'character', title: '角色聊天', detail: form.characterCard?.enabled ? '已启用 · 设定与试聊' : '可选 · 设定与试聊', content: _jsx(CharacterEditor, { active: section === 'character', relationshipText: relationshipTextForIdentity(form), companion: companion, ...(form.characterCard ? { card: form.characterCard } : {}), disabled: busy, onChange: characterCard => edit({ ...form, characterCard }) }) }, { id: 'relationship', title: '关系设定', detail: '称呼与相处 · 按渠道应用', content: _jsxs(_Fragment, { children: [_jsx("p", { className: "dsh-partner-character-hint", children: "\u89D2\u8272\u8BBE\u5B9A\u5199\u201C\u6211\u662F\u8C01\u201D\uFF0C\u8FD9\u91CC\u5199\u201C\u6211\u4EEC\u662F\u4EC0\u4E48\u5173\u7CFB\u201D\u3002\u666E\u901A\u4F1A\u8BDD\u4F1A\u5408\u5E76\u4F7F\u7528\uFF1BQQ \u4EC5\u5728\u53D1\u9001\u8005\u5339\u914D\u4EFB\u4E00\u5F52\u5C5E\u8D26\u53F7\u65F6\u9644\u52A0\u8FD9\u4EFD\u5173\u7CFB\uFF0C\u7FA4\u804A\u4E0E\u79C1\u804A\u901A\u7528\u3002\u5176\u4ED6\u4EBA\u6839\u636E\u89D2\u8272\u6027\u683C\u4E0E\u5B9E\u9645\u4EA4\u5F80\u76F8\u5904\u3002" }), _jsx(PersonaTemplate, { section: "relationship" }), _jsx(Field, { label: "\u5173\u7CFB\u8BBE\u5B9A", hint: "\u5199\u5173\u7CFB\u8EAB\u4EFD\u3001\u4E13\u5C5E\u79F0\u547C\u548C\u76F8\u5904\u4E60\u60EF\uFF0C\u4E5F\u53EF\u9644\u5173\u7CFB\u793A\u4F8B\u3002\u7559\u7A7A\u8868\u793A\u4E0D\u9884\u8BBE\u5173\u7CFB\u3002", children: _jsx("textarea", { disabled: busy, rows: 12, maxLength: 12000, value: relationshipTextForIdentity(form), onChange: event => edit({ ...form, relationshipText: event.target.value }) }) }), _jsxs("details", { className: "dsh-partner-settings-advanced", children: [_jsx("summary", { children: "\u901A\u7528\u793A\u4F8B\u4E0E\u7F16\u8F91\u8BF4\u660E" }), _jsx("p", { children: "\u6211\u4EEC\u662F\u4E92\u76F8\u5C0A\u91CD\u7684\u8001\u670B\u53CB\uFF0C\u79F0\u547C\u5BF9\u65B9\u7684\u540D\u5B57\u3002\u719F\u6089\u65F6\u53EF\u4EE5\u5F00\u73A9\u7B11\uFF0C\u8BA4\u771F\u8BA8\u8BBA\u65F6\u76F4\u8BF4\u610F\u89C1\uFF0C\u4E0D\u7F16\u9020\u5171\u540C\u5F80\u4E8B\u3002" }), _jsx("p", { children: "\u53EF\u4EE5\u8BA9 AI \u5206\u522B\u751F\u6210\u89D2\u8272\u4E0E\u5173\u7CFB\u3002AI \u4E0E\u9875\u9762\u7F16\u8F91\u540C\u4E00\u4EFD\u751F\u6548\u5185\u5BB9\uFF1B\u4FDD\u5B58\u540E\u4E0B\u4E00\u8F6E\u4F7F\u7528\u65B0\u8BBE\u5B9A\u3002\u65E7\u7248\u89D2\u8272\u6216\u57FA\u672C\u8EAB\u4EFD\u4E2D\u6DF7\u5199\u7684\u4E13\u5C5E\u5173\u7CFB\uFF0C\u9700\u8981\u79FB\u5230\u8FD9\u91CC\uFF1B\u7CFB\u7EDF\u4E0D\u4F1A\u731C\u6D4B\u5220\u6539\u65E7\u6587\u672C\u3002QQ \u8D26\u53F7\u53EA\u9700\u5728\u6E20\u9053\u7684\u8BBF\u95EE\u6743\u9650\u4E2D\u586B\u5199\u3002" })] })] }) }, { id: 'idle', title: '闲时自主活动', detail: form.idleContact?.enabled ? '已开启 · 空闲唤起与自主安排' : '可选 · 聊天或使用能力', content: _jsx(_Fragment, { children: _jsx(IdleContactEditor, { companionId: companion.id, value: form.idleContact, disabled: busy, onChange: idleContact => edit({ ...form, idleContact }) }) }) }, { id: 'sleep', title: '睡眠与做梦', detail: '自主休息 · 梦境与感受', content: _jsx(SleepEditor, { companion: companion, value: sleepPolicy(form), disabled: busy, active: section === 'sleep', onChange: sleepPolicy => edit({ ...form, sleepPolicy }) }) }] }), error && _jsx("p", { className: "dsh-partner-inline-error", role: "alert", children: error }), _jsxs("div", { className: "dsh-partner-form-actions", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => { setForm(pageIdentity(companion)); revision.current = companion.updatedAt; dirty.current = false; setError(undefined); setSaved(false); }, children: "\u8F7D\u5165\u6700\u65B0\u8BBE\u5B9A" }), _jsx("span", { role: "status", children: saved && _jsxs(_Fragment, { children: [_jsx(IconCheckOutline14, { size: 14 }), "\u8EAB\u4EFD\u5DF2\u4FDD\u5B58\uFF0C\u4E0B\u4E00\u8F6E\u5C06\u4F7F\u7528\u65B0\u8EAB\u4EFD"] }) }), _jsx("button", { disabled: busy, children: operation === 'save' ? '正在保存…' : '保存身份' })] })] })] });
68
61
  }
69
62
  //# sourceMappingURL=identity-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-editor.js","sourceRoot":"","sources":["../../src/ui/identity-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-editor.js","sourceRoot":"","sources":["../../src/ui/identity-editor.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"idle-contact-editor.d.ts","sourceRoot":"","sources":["../../src/ui/idle-contact-editor.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAI3F,wBAAgB,iBAAiB,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,EAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,iBAAiB,GAAC,SAAS,CAAC;IAAA,QAAQ,EAAC,OAAO,CAAC;IAAA,QAAQ,CAAC,KAAK,EAAC,iBAAiB,GAAE,IAAI,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CAsBlM"}
1
+ {"version":3,"file":"idle-contact-editor.d.ts","sourceRoot":"","sources":["../../src/ui/idle-contact-editor.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAI3F,wBAAgB,iBAAiB,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,EAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,iBAAiB,GAAC,SAAS,CAAC;IAAA,QAAQ,EAAC,OAAO,CAAC;IAAA,QAAQ,CAAC,KAAK,EAAC,iBAAiB,GAAE,IAAI,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CAwBlM"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ThoughtsPanel } from './thoughts-panel.js';
2
+ import { HabitsPanel } from './habits-panel.js';
3
+ import { ThoughtsPanel } from './thoughts-panel-loader.js';
3
4
  import { channelReplyAllowed } from '../channels/reply-access.js';
4
5
  import { useEffect, useState } from 'react';
5
6
  import { loadPartner } from '../client-api.js';
@@ -15,6 +16,6 @@ export function IdleContactEditor({ companionId, value, disabled, onChange }) {
15
16
  const routes = snapshot?.sessions.filter(r => r.companionId === companionId && !r.archived && (r.kind === 'local' || (snapshot.channels.some(c => c.id === r.channelId && c.enabled) && channelReplyAllowed(snapshot, r.channelId, r.userId)))) ?? [];
16
17
  const review = snapshot?.companions.find(c => c.id === companionId)?.interactionReview?.persona;
17
18
  const patch = (p) => onChange({ ...policy, ...p });
18
- return _jsxs("section", { className: "dsh-partner-character", "aria-label": "\u81EA\u4E3B\u6D3B\u52A8", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsxs("h3", { children: ["\u81EA\u4E3B\u6D3B\u52A8 ", _jsx("small", { children: "\u53EF\u9009" })] }), _jsx("p", { children: "\u7A7A\u95F2\u65F6\u5524\u8D77\u4F19\u4F34\uFF0C\u7531\u5B83\u51B3\u5B9A\u4E0B\u4E00\u6B65\uFF0C\u4E5F\u53EF\u4EE5\u5B89\u9759\u5F85\u7740\u3002" })] }), _jsxs("div", { className: "dsh-partner-character-toggle", children: [_jsx("button", { type: "button", role: "switch", className: "dsh-partner-switch", "aria-label": "\u5F00\u542F\u81EA\u4E3B\u6D3B\u52A8", "aria-checked": policy.enabled, "data-on": policy.enabled, disabled: disabled, onClick: () => patch({ enabled: !policy.enabled }), children: _jsx("i", { "aria-hidden": "true" }) }), _jsx("span", { children: policy.enabled ? '已开启' : '已关闭' })] })] }), _jsx("p", { className: "dsh-partner-character-hint", children: "\u6D88\u606F\u548C\u884C\u52A8\u7ED3\u679C\u8BA9\u4F19\u4F34\u7EE7\u7EED\u601D\u8003\uFF1B\u7A7A\u95F2\u65F6\u6309\u4E0B\u9762\u7684\u9891\u7387\u5524\u8D77\u3002\u4F19\u4F34\u53EF\u4EE5\u81EA\u884C\u9009\u62E9\u7A0D\u540E\u7EE7\u7EED\u7684\u65F6\u95F4\u4E0E\u4F1A\u8BDD\uFF0C\u597D\u611F\u5EA6\u4E0D\u518D\u6362\u7B97\u6210\u53D1\u8A00\u6982\u7387\u3002\u65B0\u6D88\u606F\u4F18\u5148\uFF0C\u7761\u7720\u671F\u95F4\u7B49\u5F85\u3002\u4FEE\u6539\u540E\u4FDD\u5B58\u8EAB\u4EFD\u751F\u6548\u3002" }), error && _jsx("p", { role: "alert", className: "dsh-partner-inline-error", children: error }), _jsx(ThoughtsPanel, { companionId: companionId }), policy.enabled && _jsxs("fieldset", { disabled: disabled, className: "dsh-partner-character-fields", children: [_jsxs("div", { className: "dsh-partner-persona-option", children: [_jsxs("div", { children: [_jsx("span", { id: "persona-refinement-label", children: "\u81EA\u4E3B\u8C03\u6574\u89D2\u8272\u8BBE\u5B9A" }), _jsx("small", { children: policy.selfRefinement ? '已开启' : '已关闭' })] }), _jsx("button", { type: "button", role: "switch", className: "dsh-partner-switch", "aria-labelledby": "persona-refinement-label", "aria-describedby": "persona-refinement-hint", "aria-checked": policy.selfRefinement === true, "data-on": policy.selfRefinement === true, disabled: disabled, onClick: () => patch({ selfRefinement: !policy.selfRefinement }), children: _jsx("i", { "aria-hidden": "true" }) })] }), _jsx("p", { id: "persona-refinement-hint", className: "dsh-partner-character-hint", children: "\u9ED8\u8BA4\u5173\u95ED\u3002\u5F00\u542F\u540E\uFF0C\u95F2\u65F6\u53CA\u56DE\u590D\u540E\u7684\u81EA\u4E3B\u6D3B\u52A8\u53EF\u4EE5\u51B3\u5B9A\u662F\u5426\u8C03\u6574\u81EA\u5DF1\u7684\u6027\u683C\u3001\u5174\u8DA3\u4E0E\u8868\u8FBE\u65B9\u5F0F\uFF0C\u4E0D\u8981\u6C42\u6BCF\u8F6E\u4FEE\u6539\u3002\u5F00\u542F\u8BB0\u5FC6\u5B66\u4E60\u65F6\uFF0C\u540E\u53F0\u4E5F\u4F1A\u7ED3\u5408\u65B0\u4E92\u52A8\u68C0\u67E5\u8868\u8FBE\u65B9\u5F0F\uFF0C\u4E24\u6B21\u68C0\u67E5\u81F3\u5C11\u95F4\u9694 6 \u5C0F\u65F6\uFF1B\u6CA1\u6709\u65B0\u4E92\u52A8\u4E0D\u91CD\u590D\u68C0\u67E5\u3002\u4E0D\u4F1A\u4FEE\u6539\u4F60\u7684\u8EAB\u4EFD\u3001\u5173\u7CFB\u6216\u80FD\u529B\u6743\u9650\u3002\u4FDD\u7559\u6700\u8FD1 12 \u6B21\u53D8\u66F4\uFF0C\u53EF\u5728\u4E0B\u65B9\u67E5\u770B\u5E76\u8F7D\u5165\u65E7\u5185\u5BB9\uFF0C\u4FDD\u5B58\u8EAB\u4EFD\u540E\u6062\u590D\u3002\u5173\u95ED\u540E\u4FDD\u7559\u5DF2\u5F62\u6210\u7684\u8BBE\u5B9A\u3002" }), policy.selfRefinement && _jsx("p", { className: "dsh-partner-character-hint", children: review ? `最近整理检查 ${new Date(review.at).toLocaleString()} · ${{ changed: '已调整', unchanged: '保持原设定', limited: '保持原设定', stale: '等待重新检查', failed: '检查失败' }[review.outcome]}:${review.reason}` : '尚无后台检查记录;开启记忆学习并继续真实互动后检查。' }), _jsx(Field, { label: "\u9ED8\u8BA4\u6D3B\u52A8\u4F1A\u8BDD", hint: "\u6CA1\u6709\u7279\u522B\u60F3\u53BB\u7684\u5730\u65B9\u65F6\u5728\u8FD9\u91CC\u6D3B\u52A8\u3002\u4F19\u4F34\u53EF\u4EE5\u81EA\u5DF1\u5B89\u6392\u53BB\u5176\u4ED6\u5DF2\u6388\u6743\u4F1A\u8BDD\uFF1B\u4E0D\u4F1A\u81EA\u52A8\u7FA4\u53D1\u3002", children: _jsxs("select", { required: true, value: policy.routeId, onChange: e => patch({ routeId: e.target.value }), children: [_jsx("option", { value: "", children: "\u9009\u62E9\u4E00\u4E2A\u4F1A\u8BDD" }), routes.map(r => _jsx("option", { value: r.id, children: r.kind === 'local' ? '网页聊天' : `${snapshot?.channels.find(c => c.id === r.channelId)?.name ?? '渠道'} · ${snapshot?.pairings.find(p => p.channelId === r.channelId && p.userId === r.userId)?.displayName ?? r.userId}` }, r.id))] }) }), snapshot && !routes.length && _jsx("p", { children: "\u8FD8\u6CA1\u6709\u53EF\u7528\u4F1A\u8BDD\uFF0C\u5148\u5728\u7F51\u9875\u6216\u5DF2\u6388\u6743\u6E20\u9053\u548C\u4F19\u4F34\u804A\u4E00\u6B21\u3002" }), _jsx(Field, { label: "\u7A7A\u95F2\u5524\u8D77\u9891\u7387", hint: "\u6CA1\u6709\u81EA\u884C\u5B89\u6392\u4E0B\u4E00\u6B65\u65F6\uFF0C\u7A7A\u95F2\u8FBE\u5230\u6B64\u65F6\u95F4\u518D\u5524\u8D77\uFF1B\u5524\u8D77\u4E0D\u4EE3\u8868\u5FC5\u987B\u53D1\u6D88\u606F\u3002", children: _jsx("select", { value: policy.idleMinutes, onChange: e => patch({ idleMinutes: Number(e.target.value) }), children: [...new Set([30, 60, 120, 240, 480, 1440, policy.idleMinutes])].sort((a, b) => a - b).map(n => _jsx("option", { value: n, children: n < 60 ? `${n} 分钟` : `${n / 60} 小时` }, n)) }) })] })] });
19
+ return _jsxs("section", { className: "dsh-partner-character", "aria-label": "\u81EA\u4E3B\u6D3B\u52A8", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsxs("h3", { children: ["\u81EA\u4E3B\u6D3B\u52A8 ", _jsx("small", { children: "\u53EF\u9009" })] }), _jsx("p", { children: "\u7A7A\u95F2\u65F6\u5524\u8D77\u4F19\u4F34\uFF0C\u7531\u5B83\u51B3\u5B9A\u4E0B\u4E00\u6B65\uFF0C\u4E5F\u53EF\u4EE5\u5B89\u9759\u5F85\u7740\u3002" })] }), _jsxs("div", { className: "dsh-partner-character-toggle", children: [_jsx("button", { type: "button", role: "switch", className: "dsh-partner-switch", "aria-label": "\u5F00\u542F\u81EA\u4E3B\u6D3B\u52A8", "aria-checked": policy.enabled, "data-on": policy.enabled, disabled: disabled, onClick: () => patch({ enabled: !policy.enabled }), children: _jsx("i", { "aria-hidden": "true" }) }), _jsx("span", { children: policy.enabled ? '已开启' : '已关闭' })] })] }), _jsx("p", { className: "dsh-partner-character-hint", children: "\u6D88\u606F\u548C\u884C\u52A8\u7ED3\u679C\u8BA9\u4F19\u4F34\u7EE7\u7EED\u601D\u8003\uFF1B\u7A7A\u95F2\u65F6\u6309\u4E0B\u9762\u7684\u9891\u7387\u5524\u8D77\u3002\u4F19\u4F34\u53EF\u4EE5\u81EA\u884C\u9009\u62E9\u7A0D\u540E\u7EE7\u7EED\u7684\u65F6\u95F4\u4E0E\u4F1A\u8BDD\uFF0C\u597D\u611F\u5EA6\u4E0D\u518D\u6362\u7B97\u6210\u53D1\u8A00\u6982\u7387\u3002\u65B0\u6D88\u606F\u4F18\u5148\uFF0C\u7761\u7720\u671F\u95F4\u7B49\u5F85\u3002\u4FEE\u6539\u540E\u4FDD\u5B58\u8EAB\u4EFD\u751F\u6548\u3002" }), error && _jsx("p", { role: "alert", className: "dsh-partner-inline-error", children: error }), _jsx(ThoughtsPanel, { companionId: companionId }), _jsxs("div", { className: "dsh-partner-character-fields", children: [_jsxs("div", { className: "dsh-partner-persona-option", children: [_jsxs("div", { children: [_jsx("span", { id: "persona-refinement-label", children: "\u81EA\u4E3B\u4E60\u60EF" }), _jsx("small", { children: policy.habitsEnabled ? '已开启' : '已关闭' })] }), _jsx("button", { type: "button", role: "switch", className: "dsh-partner-switch", "aria-labelledby": "persona-refinement-label", "aria-describedby": "persona-refinement-hint", "aria-checked": policy.habitsEnabled === true, "data-on": policy.habitsEnabled === true, disabled: disabled, onClick: () => patch({ habitsEnabled: !policy.habitsEnabled }), children: _jsx("i", { "aria-hidden": "true" }) })] }), _jsx("p", { id: "persona-refinement-hint", className: "dsh-partner-character-hint", children: "\u4ECE\u7FA4\u804A\u3001\u79C1\u804A\u548C\u81EA\u4E3B\u6D3B\u52A8\u5F62\u6210\u53EF\u53D8\u504F\u597D\uFF0C\u4E0D\u6539\u5199\u89D2\u8272\u6B63\u6587\u3002\u804A\u5929\u4E60\u60EF\u53EA\u7528\u4E8E\u539F\u573A\u5408\uFF1B\u81EA\u8EAB\u6D3B\u52A8\u53EF\u5F62\u6210\u901A\u7528\u5174\u8DA3\u3002\u4E09\u6B21\u72EC\u7ACB\u4F9D\u636E\u4E14\u8DE8\u516D\u5C0F\u65F6\u540E\u751F\u6548\uFF0C\u6700\u591A\u4FDD\u7559 12 \u6761\uFF0C30 \u5929\u65E0\u65B0\u4F9D\u636E\u505C\u6B62\u4F7F\u7528\u3002\u5F00\u542F\u8BB0\u5FC6\u5B66\u4E60\u540E\u81EA\u52A8\u68C0\u67E5\u804A\u5929\uFF1B\u6D3B\u52A8\u4E2D\u4E5F\u53EF\u81EA\u884C\u6574\u7406\u3002\u5173\u95ED\u540E\u6682\u505C\u5B66\u4E60\u548C\u4F7F\u7528\uFF0C\u5DF2\u6709\u8BB0\u5F55\u4FDD\u7559\u3002\u4FEE\u6539\u89D2\u8272\u6B63\u6587\u540E\uFF0C\u65E7\u4E60\u60EF\u505C\u6B62\u4F7F\u7528\u3002" }), _jsx(HabitsPanel, { companionId: companionId })] }), policy.enabled && _jsxs("fieldset", { disabled: disabled, className: "dsh-partner-character-fields", children: [_jsx(Field, { label: "\u9ED8\u8BA4\u6D3B\u52A8\u4F1A\u8BDD", hint: "\u6CA1\u6709\u7279\u522B\u60F3\u53BB\u7684\u5730\u65B9\u65F6\u5728\u8FD9\u91CC\u6D3B\u52A8\u3002\u4F19\u4F34\u53EF\u4EE5\u81EA\u5DF1\u5B89\u6392\u53BB\u5176\u4ED6\u5DF2\u6388\u6743\u4F1A\u8BDD\uFF1B\u4E0D\u4F1A\u81EA\u52A8\u7FA4\u53D1\u3002", children: _jsxs("select", { required: true, value: policy.routeId, onChange: e => patch({ routeId: e.target.value }), children: [_jsx("option", { value: "", children: "\u9009\u62E9\u4E00\u4E2A\u4F1A\u8BDD" }), routes.map(r => _jsx("option", { value: r.id, children: r.kind === 'local' ? '网页聊天' : `${snapshot?.channels.find(c => c.id === r.channelId)?.name ?? '渠道'} · ${snapshot?.pairings.find(p => p.channelId === r.channelId && p.userId === r.userId)?.displayName ?? r.userId}` }, r.id))] }) }), snapshot && !routes.length && _jsx("p", { children: "\u8FD8\u6CA1\u6709\u53EF\u7528\u4F1A\u8BDD\uFF0C\u5148\u5728\u7F51\u9875\u6216\u5DF2\u6388\u6743\u6E20\u9053\u548C\u4F19\u4F34\u804A\u4E00\u6B21\u3002" }), _jsx(Field, { label: "\u7A7A\u95F2\u5524\u8D77\u9891\u7387", hint: "\u6CA1\u6709\u81EA\u884C\u5B89\u6392\u4E0B\u4E00\u6B65\u65F6\uFF0C\u7A7A\u95F2\u8FBE\u5230\u6B64\u65F6\u95F4\u518D\u5524\u8D77\uFF1B\u5524\u8D77\u4E0D\u4EE3\u8868\u5FC5\u987B\u53D1\u6D88\u606F\u3002", children: _jsx("select", { value: policy.idleMinutes, onChange: e => patch({ idleMinutes: Number(e.target.value) }), children: [...new Set([30, 60, 120, 240, 480, 1440, policy.idleMinutes])].sort((a, b) => a - b).map(n => _jsx("option", { value: n, children: n < 60 ? `${n} 分钟` : `${n / 60} 小时` }, n)) }) })] })] });
19
20
  }
20
21
  //# sourceMappingURL=idle-contact-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"idle-contact-editor.js","sourceRoot":"","sources":["../../src/ui/idle-contact-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idle-contact-editor.js","sourceRoot":"","sources":["../../src/ui/idle-contact-editor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAA0B,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,UAAU,iBAAiB,CAAC,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAgH;IACpL,MAAM,MAAM,GAAC,KAAK,IAAE,oBAAoB,CAAA;IACxC,MAAM,CAAC,QAAQ,EAAC,WAAW,CAAC,GAAC,QAAQ,EAAmB,EAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,GAAC,QAAQ,EAAU,CAAA;IAC5F,SAAS,CAAC,GAAE,EAAE,GAAC,IAAI,MAAM,GAAC,IAAI,CAAC,CAAA,KAAK,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,GAAC,IAAG,MAAM;QAAC,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,EAAE,GAAC,IAAG,MAAM;QAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,OAAM,GAAE,EAAE,GAAC,MAAM,GAAC,KAAK,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IAC9K,MAAM,MAAM,GAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,WAAW,KAAG,WAAW,IAAE,CAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO,IAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,SAAS,IAAE,CAAC,CAAC,OAAO,CAAC,IAAE,mBAAmB,CAAC,QAAQ,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAE,EAAE,CAAA;IAC3N,MAAM,MAAM,GAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,WAAW,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAA;IACzF,MAAM,KAAK,GAAC,CAAC,CAA4B,EAAC,EAAE,CAAA,QAAQ,CAAC,EAAC,GAAG,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,CAAA;IACtE,OAAO,mBAAS,SAAS,EAAC,uBAAuB,gBAAY,0BAAM,aACjE,6BAAQ,0BAAK,sDAAS,2CAAiB,IAAK,EAAA,2KAA+B,IAAM,EAAA,eAAK,SAAS,EAAC,8BAA8B,aAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oBAAoB,gBAAY,sCAAQ,kBAAe,MAAM,CAAC,OAAO,aAAW,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAE,EAAE,CAAA,KAAK,CAAC,EAAC,OAAO,EAAC,CAAC,MAAM,CAAC,OAAO,EAAC,CAAC,YAAE,2BAAe,MAAM,GAAE,GAAS,EAAA,yBAAO,MAAM,CAAC,OAAO,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,KAAK,GAAQ,IAAM,IAAS,EACxa,YAAG,SAAS,EAAC,4BAA4B,6fAAuF,EAC/H,KAAK,IAAE,YAAG,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,EACxE,KAAC,aAAa,IAAC,WAAW,EAAE,WAAW,GAAG,EAC1C,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eAAK,SAAS,EAAC,4BAA4B,aAAC,0BAAK,eAAM,EAAE,EAAC,0BAA0B,yCAAY,EAAA,0BAAQ,MAAM,CAAC,aAAa,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,KAAK,GAAS,IAAM,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oBAAoB,qBAAiB,0BAA0B,sBAAkB,yBAAyB,kBAAe,MAAM,CAAC,aAAa,KAAG,IAAI,aAAW,MAAM,CAAC,aAAa,KAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAE,EAAE,CAAA,KAAK,CAAC,EAAC,aAAa,EAAC,CAAC,MAAM,CAAC,aAAa,EAAC,CAAC,YAAE,2BAAe,MAAM,GAAE,GAAS,IAAM,EACtf,YAAG,EAAE,EAAC,yBAAyB,EAAC,SAAS,EAAC,4BAA4B,o1BAAsJ,EAC5N,KAAC,WAAW,IAAC,WAAW,EAAE,WAAW,GAAG,IACpC,EACL,MAAM,CAAC,OAAO,IAAE,oBAAU,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,8BAA8B,aACrF,KAAC,KAAK,IAAC,KAAK,EAAC,sCAAQ,EAAC,IAAI,EAAC,kPAA0C,YAAC,kBAAQ,QAAQ,QAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA,EAAE,CAAA,KAAK,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAC,CAAC,aAAE,iBAAQ,KAAK,EAAC,EAAE,qDAAgB,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,iBAAmB,KAAK,EAAE,CAAC,CAAC,EAAE,YAAG,CAAC,CAAC,IAAI,KAAG,OAAO,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,IAAE,IAAI,MAAM,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,SAAS,KAAG,CAAC,CAAC,SAAS,IAAE,CAAC,CAAC,MAAM,KAAG,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,IAAE,CAAC,CAAC,MAAM,EAAE,IAAlN,CAAC,CAAC,EAAE,CAAwN,CAAC,IAAU,GAAQ,EACtc,QAAQ,IAAE,CAAC,MAAM,CAAC,MAAM,IAAE,iLAAgC,EAC3D,KAAC,KAAK,IAAC,KAAK,EAAC,sCAAQ,EAAC,IAAI,EAAC,wMAAmC,YAAC,iBAAQ,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA,EAAE,CAAA,KAAK,CAAC,EAAC,WAAW,EAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC,YAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,iBAAgB,KAAK,EAAE,CAAC,YAAG,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,KAAK,CAAA,CAAC,CAAA,GAAG,CAAC,GAAC,EAAE,KAAK,IAAzC,CAAC,CAAkD,CAAC,GAAU,GAAQ,IAEzT,IACH,CAAA;AACZ,CAAC"}
@@ -99,7 +99,7 @@ export function ConcernBoard({ companionId, activity, value, busy, onValue, onAd
99
99
  const execution = activity.executions?.filter(e => e.concernId === item.id).sort((a, b) => b.updatedAt - a.updatedAt)[0];
100
100
  const expanded = expandedId === item.id;
101
101
  const status = concernStage(item);
102
- return _jsxs("article", { role: "listitem", "data-attention": item.priority >= .8 ? 'focus' : item.priority >= .4 ? 'follow' : 'observe', "data-state": item.state, "data-expanded": expanded, children: [_jsxs("button", { type: "button", className: "dsh-partner-concern-row", "aria-expanded": expanded, onClick: () => setExpandedId(current => current === item.id ? undefined : item.id), children: [_jsxs("span", { className: "dsh-partner-concern-state", children: [_jsx("i", { "aria-hidden": "true" }), status] }), _jsxs("span", { className: "dsh-partner-concern-copy", children: [_jsx("strong", { children: item.subject }), _jsxs("span", { className: "dsh-partner-concern-meta", children: [_jsxs("b", { children: ["\u5173\u6CE8\u5EA6 ", Math.round(item.priority * 100)] }), _jsxs("span", { children: [item.origin === 'explicit' ? '你交代的' : '伙伴自主发现', item.control === 'pinned' ? ' · 已置顶' : '', item.executionInstructions ? ' · 变化后执行' : ''] })] }), _jsx("small", { children: observation ? observation.event : item.reason })] }), _jsxs("span", { className: "dsh-partner-concern-time", title: `计划于 ${new Date(item.nextCheckAt).toLocaleString()} 再次留意`, children: [_jsx("small", { children: "\u4E0B\u6B21\u7559\u610F" }), _jsx("strong", { children: futureTime(item.nextCheckAt) })] }), _jsx(IconChevronDownOutline14, { size: 14 })] }), execution && (expanded || execution.status !== 'completed') && _jsx(ConcernExecutionStatus, { companionId: companionId, execution: execution, disabled: busy || !item.executionInstructions || item.control === 'stopped', onChanged: onEdited }, `${execution.id}:${execution.updatedAt}`), expanded && _jsxs("p", { className: "dsh-partner-record-summary", children: ["\u8BB0\u5F55\u4F4D\u7F6E\uFF1A", item.recordTarget ? `${item.recordTarget.kind === 'file' ? '本地文件' : '笔记文档'} · ${item.recordTarget.label}` : '伙伴内部观察记录(不创建文档、不回写依据)'] }), expanded && _jsxs("div", { className: "dsh-partner-record-summary", children: [_jsxs("p", { children: [item.origin === 'explicit' ? '你交代的关注' : '伙伴自主发现', " \u00B7 \u5173\u6CE8\u5EA6 ", Math.round(item.priority * 100), " \u00B7 ", item.control === 'pinned' ? '用户置顶' : '伙伴自主维护'] }), (item.adjustments ?? []).length > 0 && _jsxs("details", { children: [_jsx("summary", { children: "\u5173\u6CE8\u8C03\u6574\u8BB0\u5F55" }), [...(item.adjustments ?? [])].reverse().map((change, index) => _jsxs("p", { children: [_jsx("time", { children: new Date(change.at).toLocaleString() }), " \u00B7 ", change.actor === 'user' ? '你' : '伙伴', " \u00B7 ", Math.round(change.priority * 100), "\uFF1A", change.reason] }, `${change.at}:${index}`))] }), _jsxs("div", { className: "dsh-partner-concern-actions", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, item.control === 'pinned' ? 'watch' : 'prioritize'), children: item.control === 'pinned' ? '取消置顶' : '置顶关注' }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'ignore'), children: "\u505C\u6B62\u5173\u6CE8" })] })] }), expanded && _jsxs("div", { className: "dsh-partner-concern-detail", children: [_jsx("p", { children: item.reason }), observation && _jsxs(_Fragment, { children: [_jsx("blockquote", { children: observation.event }), _jsxs("div", { className: "dsh-partner-concern-decision", "data-decision": observation.decision, children: [_jsx("strong", { children: concernObservationStatus(observation) }), _jsx("span", { children: observation.decisionReason || concernObservationExplanation(observation) }), _jsxs("small", { children: ["\u6253\u6270\u5206\u6570 ", Math.round(observation.interruptScore * 100), observation.notificationRuleEffect !== 'auto' && observation.notificationRuleReason ? ` · 知识规则:${observation.notificationRuleReason}` : ''] })] })] }), item.resources.length > 0 && _jsx("div", { className: "dsh-partner-concern-resources", children: item.resources.map(resource => _jsxs("span", { children: [resource.kind === 'file' ? '文件' : resource.kind === 'note' ? '笔记' : '知识', " \u00B7 ", resource.label] }, `${resource.kind}:${resource.locator}`)) }), _jsxs("small", { children: [item.origin === 'explicit' ? '你明确交代' : '伙伴从对话中注意到', " \u00B7 ", watchKindLabel(item.watchKind)] }), _jsxs("div", { className: "dsh-partner-concern-actions", "aria-label": `${item.subject} 的操作`, children: [_jsx("button", { type: "button", onClick: () => { setComposing(false); setEditing(item); }, children: "\u7F16\u8F91" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onCheck(item), children: "\u7ACB\u5373\u68C0\u67E5\u8FD9\u6761" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u7EE7\u7EED\u7559\u610F" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'resolve'), children: "\u5DF2\u7ECF\u89E3\u51B3" }), _jsx(ConcernDeleteButton, { companionId: companionId, item: item, disabled: busy, onDeleted: onEdited })] })] })] }, item.id);
102
+ return _jsxs("article", { role: "listitem", "data-attention": item.priority >= .8 ? 'focus' : item.priority >= .4 ? 'follow' : 'observe', "data-state": item.state, "data-expanded": expanded, children: [_jsxs("button", { type: "button", className: "dsh-partner-concern-row", "aria-expanded": expanded, onClick: () => setExpandedId(current => current === item.id ? undefined : item.id), children: [_jsxs("span", { className: "dsh-partner-concern-state", children: [_jsx("i", { "aria-hidden": "true" }), status] }), _jsxs("span", { className: "dsh-partner-concern-copy", children: [_jsx("strong", { children: item.subject }), _jsxs("span", { className: "dsh-partner-concern-meta", children: [_jsxs("b", { children: ["\u5173\u6CE8\u5EA6 ", Math.round(item.priority * 100)] }), _jsxs("span", { children: [item.origin === 'explicit' ? '你交代的' : '伙伴自主发现', item.control === 'pinned' ? ' · 已置顶' : '', item.executionInstructions ? ' · 变化后执行' : ''] })] }), _jsx("small", { children: observation ? observation.event : item.reason })] }), _jsxs("span", { className: "dsh-partner-concern-time", title: `计划于 ${new Date(item.nextCheckAt).toLocaleString()} 再次留意`, children: [_jsx("small", { children: "\u4E0B\u6B21\u7559\u610F" }), _jsx("strong", { children: futureTime(item.nextCheckAt) })] }), _jsx(IconChevronDownOutline14, { size: 14 })] }), execution && (expanded || execution.status !== 'completed' || !!execution.resultSummary) && _jsx(ConcernExecutionStatus, { companionId: companionId, execution: execution, disabled: busy || !item.executionInstructions || item.control === 'stopped', onChanged: onEdited }, `${execution.id}:${execution.updatedAt}`), expanded && _jsxs("p", { className: "dsh-partner-record-summary", children: ["\u8BB0\u5F55\u4F4D\u7F6E\uFF1A", item.recordTarget ? `${item.recordTarget.kind === 'file' ? '本地文件' : '笔记文档'} · ${item.recordTarget.label}` : '伙伴内部观察记录(不创建文档、不回写依据)'] }), expanded && _jsxs("div", { className: "dsh-partner-record-summary", children: [_jsxs("p", { children: [item.origin === 'explicit' ? '你交代的关注' : '伙伴自主发现', " \u00B7 \u5173\u6CE8\u5EA6 ", Math.round(item.priority * 100), " \u00B7 ", item.control === 'pinned' ? '用户置顶' : '伙伴自主维护'] }), (item.adjustments ?? []).length > 0 && _jsxs("details", { children: [_jsx("summary", { children: "\u5173\u6CE8\u8C03\u6574\u8BB0\u5F55" }), [...(item.adjustments ?? [])].reverse().map((change, index) => _jsxs("p", { children: [_jsx("time", { children: new Date(change.at).toLocaleString() }), " \u00B7 ", change.actor === 'user' ? '你' : '伙伴', " \u00B7 ", Math.round(change.priority * 100), "\uFF1A", change.reason] }, `${change.at}:${index}`))] }), _jsxs("div", { className: "dsh-partner-concern-actions", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, item.control === 'pinned' ? 'watch' : 'prioritize'), children: item.control === 'pinned' ? '取消置顶' : '置顶关注' }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'ignore'), children: "\u505C\u6B62\u5173\u6CE8" })] })] }), expanded && _jsxs("div", { className: "dsh-partner-concern-detail", children: [_jsx("p", { children: item.reason }), observation && _jsxs(_Fragment, { children: [_jsx("blockquote", { children: observation.event }), _jsxs("div", { className: "dsh-partner-concern-decision", "data-decision": observation.decision, children: [_jsx("strong", { children: concernObservationStatus(observation) }), _jsx("span", { children: observation.decisionReason || concernObservationExplanation(observation) }), _jsxs("small", { children: ["\u6253\u6270\u5206\u6570 ", Math.round(observation.interruptScore * 100), observation.notificationRuleEffect !== 'auto' && observation.notificationRuleReason ? ` · 知识规则:${observation.notificationRuleReason}` : ''] })] })] }), item.resources.length > 0 && _jsx("div", { className: "dsh-partner-concern-resources", children: item.resources.map(resource => _jsxs("span", { children: [resource.kind === 'file' ? '文件' : resource.kind === 'note' ? '笔记' : '知识', " \u00B7 ", resource.label] }, `${resource.kind}:${resource.locator}`)) }), _jsxs("small", { children: [item.origin === 'explicit' ? '你明确交代' : '伙伴从对话中注意到', " \u00B7 ", watchKindLabel(item.watchKind)] }), _jsxs("div", { className: "dsh-partner-concern-actions", "aria-label": `${item.subject} 的操作`, children: [_jsx("button", { type: "button", onClick: () => { setComposing(false); setEditing(item); }, children: "\u7F16\u8F91" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onCheck(item), children: "\u7ACB\u5373\u68C0\u67E5\u8FD9\u6761" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u7EE7\u7EED\u7559\u610F" }), _jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'resolve'), children: "\u5DF2\u7ECF\u89E3\u51B3" }), _jsx(ConcernDeleteButton, { companionId: companionId, item: item, disabled: busy, onDeleted: onEdited })] })] })] }, item.id);
103
103
  }) }), (active.length > shown.length || visibleCount > 5) && _jsx("div", { className: "dsh-partner-concern-more", children: active.length > shown.length ? _jsxs("button", { type: "button", onClick: () => setVisibleCount(count => Math.min(active.length, count + 20)), children: ["\u518D\u663E\u793A ", Math.min(20, active.length - shown.length), " \u6761"] }) : _jsx("button", { type: "button", onClick: () => setVisibleCount(5), children: "\u6536\u8D77\u5217\u8868" }) }), resolved.length > 0 && _jsxs("details", { className: "dsh-partner-concern-resolved", children: [_jsxs("summary", { children: ["\u5DF2\u7ECF\u89E3\u51B3 ", _jsx("b", { children: resolved.length })] }), _jsx("div", { children: resolved.slice(0, 30).map(item => _jsxs("article", { children: [_jsx("span", { children: _jsx(IconCheckOutline14, { size: 13 }) }), _jsx("strong", { title: item.subject, children: item.subject }), _jsxs("div", { className: "dsh-partner-concern-resolved-actions", role: "group", "aria-label": `${item.subject} 的操作`, children: [_jsx("button", { type: "button", disabled: busy, onClick: () => onAct(item, 'watch'), children: "\u91CD\u65B0\u7559\u610F" }), _jsx(ConcernDeleteButton, { companionId: companionId, item: item, disabled: busy, onDeleted: onEdited })] })] }, item.id)) })] }), _jsx(ArchivedConcerns, { companionId: companionId, onChanged: onEdited })] });
104
104
  }
105
105
  function activeMention(value, cursor) {
@@ -1 +1 @@
1
- {"version":3,"file":"concern-board.js","sourceRoot":"","sources":["../../../src/ui/memory/concern-board.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-board.js","sourceRoot":"","sources":["../../../src/ui/memory/concern-board.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"concern-execution-status.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/concern-execution-status.tsx"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,oBAAoB,EAAC,MAAM,qBAAqB,CAAA;AAGjE,wBAAgB,sBAAsB,CAAC,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,EAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,oBAAoB,CAAC;IAAA,QAAQ,EAAC,OAAO,CAAC;IAAA,SAAS,IAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CAiB5L"}
1
+ {"version":3,"file":"concern-execution-status.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/concern-execution-status.tsx"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,oBAAoB,EAAC,MAAM,qBAAqB,CAAA;AAGjE,wBAAgB,sBAAsB,CAAC,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,EAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,oBAAoB,CAAC;IAAA,QAAQ,EAAC,OAAO,CAAC;IAAA,SAAS,IAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CAkB5L"}
@@ -25,7 +25,7 @@ export function ConcernExecutionStatus({ companionId, execution, disabled, onCha
25
25
  setBusy(false);
26
26
  }
27
27
  };
28
- const labels = { pending: '恢复/执行已排队', running: execution.recoveryFromMessageId ? '正在核对并恢复执行' : '正在会话中执行', completed: '本次执行已返回答复(交付结果见会话)', failed: '执行未完成,需要恢复' };
29
- return _jsxs("div", { className: "dsh-partner-concern-decision dsh-partner-concern-execution-status", "data-decision": execution.status === 'failed' ? 'defer' : 'feed', children: [_jsx("strong", { role: "status", children: labels[execution.status] }), execution.status === 'failed' && _jsxs(_Fragment, { children: [_jsx("span", { children: execution.error || '上次执行未完成。' }), _jsx("span", { children: "\u91CD\u65B0\u68C0\u67E5\u53EA\u6838\u9A8C\u6765\u6E90\uFF0C\u4E0D\u4F1A\u6062\u590D\u4E0A\u6B21\u6267\u884C\u3002\u6062\u590D\u65F6\u5148\u67E5\u5DF2\u6709\u56FE\u7247\u3001\u6587\u4EF6\u548C\u5916\u90E8\u8BB0\u5F55\uFF0C\u518D\u7EE7\u7EED\u7F3A\u5931\u6B65\u9AA4\u3002" }), _jsx("div", { className: "dsh-partner-concern-actions", children: _jsx("button", { type: "button", disabled: disabled || busy, "aria-busy": busy, onClick: () => { void recover(); }, children: busy ? '正在提交恢复…' : '核对产物并恢复' }) })] }), notice && _jsx("span", { role: "status", children: notice }), error && _jsx("span", { role: "alert", children: error })] });
28
+ const labels = { pending: '恢复/执行已排队', running: execution.recoveryFromMessageId ? '正在核对并恢复执行' : '正在会话中执行', completed: execution.recoveryFromMessageId ? '恢复核对已有结果(不代表产物已交付)' : '本次执行已返回答复(交付结果见会话)', failed: '执行未完成,需要恢复' };
29
+ return _jsxs("div", { className: "dsh-partner-concern-decision dsh-partner-concern-execution-status", "data-decision": execution.status === 'failed' ? 'defer' : 'feed', children: [_jsx("strong", { role: "status", children: labels[execution.status] }), execution.status === 'failed' && _jsxs(_Fragment, { children: [_jsx("span", { children: execution.error || '上次执行未完成。' }), _jsx("span", { children: "\u91CD\u65B0\u68C0\u67E5\u53EA\u6838\u9A8C\u6765\u6E90\uFF0C\u4E0D\u4F1A\u6062\u590D\u4E0A\u6B21\u6267\u884C\u3002\u6062\u590D\u65F6\u5148\u67E5\u5DF2\u6709\u56FE\u7247\u3001\u6587\u4EF6\u548C\u5916\u90E8\u8BB0\u5F55\uFF0C\u518D\u7EE7\u7EED\u7F3A\u5931\u6B65\u9AA4\u3002" }), _jsx("div", { className: "dsh-partner-concern-actions", children: _jsx("button", { type: "button", disabled: disabled || busy, "aria-busy": busy, onClick: () => { void recover(); }, children: busy ? '正在提交恢复…' : '核对产物并恢复' }) })] }), execution.resultSummary && _jsx("span", { style: { whiteSpace: 'pre-wrap' }, children: execution.resultSummary }), notice && _jsx("span", { role: "status", children: notice }), error && _jsx("span", { role: "alert", children: error })] });
30
30
  }
31
31
  //# sourceMappingURL=concern-execution-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"concern-execution-status.js","sourceRoot":"","sources":["../../../src/ui/memory/concern-execution-status.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAA;AACrC,OAAO,EAAC,GAAG,EAA2B,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAA;AAEvD,MAAM,UAAU,sBAAsB,CAAC,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAgG;IAC9K,MAAM,CAAC,IAAI,EAAC,OAAO,CAAC,GAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,EAAC,CAAC,MAAM,EAAC,SAAS,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClG,MAAM,IAAI,GAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,MAAM,OAAO,GAAC,KAAK,IAAE,EAAE;QACrB,IAAG,IAAI,CAAC,OAAO;YAAC,OAAM;QACtB,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;QAAA,OAAO,CAAC,IAAI,CAAC,CAAC;QAAA,QAAQ,CAAC,EAAE,CAAC,CAAC;QAAA,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1D,IAAI,CAAC;YACH,MAAM,CAAC,GAAC,MAAM,GAAG,CAAkB,eAAe,kBAAkB,CAAC,WAAW,CAAC,aAAa,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,EAAC,SAAS,CAAC,EAAE,EAAC,iBAAiB,EAAC,SAAS,CAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAA;YAC7Q,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAAA,MAAM,SAAS,EAAE,CAAA;QACvC,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAAA,CAAC;gBAAO,CAAC;YAAA,IAAI,CAAC,OAAO,GAAC,KAAK,CAAC;YAAA,OAAO,CAAC,KAAK,CAAC,CAAA;QAAA,CAAC;IAChF,CAAC,CAAA;IACD,MAAM,MAAM,GAAC,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,SAAS,CAAC,qBAAqB,CAAA,CAAC,CAAA,WAAW,CAAA,CAAC,CAAA,SAAS,EAAC,SAAS,EAAC,oBAAoB,EAAC,MAAM,EAAC,YAAY,EAAC,CAAA;IAClJ,OAAO,eAAK,SAAS,EAAC,mEAAmE,mBAAgB,SAAS,CAAC,MAAM,KAAG,QAAQ,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,MAAM,aACjJ,iBAAQ,IAAI,EAAC,QAAQ,YAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAU,EACxD,SAAS,CAAC,MAAM,KAAG,QAAQ,IAAE,8BAAE,yBAAO,SAAS,CAAC,KAAK,IAAI,UAAU,GAAQ,EAAA,4SAA0D,EAAA,cAAK,SAAS,EAAC,6BAA6B,YAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,IAAE,IAAI,eAAa,IAAI,EAAE,OAAO,EAAE,GAAE,EAAE,GAAC,KAAK,OAAO,EAAE,CAAA,CAAA,CAAC,YAAG,IAAI,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,SAAS,GAAU,GAAM,IAAG,EAC9T,MAAM,IAAE,eAAM,IAAI,EAAC,QAAQ,YAAE,MAAM,GAAQ,EAAE,KAAK,IAAE,eAAM,IAAI,EAAC,OAAO,YAAE,KAAK,GAAQ,IAClF,CAAA;AACR,CAAC"}
1
+ {"version":3,"file":"concern-execution-status.js","sourceRoot":"","sources":["../../../src/ui/memory/concern-execution-status.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAA;AACrC,OAAO,EAAC,GAAG,EAA2B,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAA;AAEvD,MAAM,UAAU,sBAAsB,CAAC,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAgG;IAC9K,MAAM,CAAC,IAAI,EAAC,OAAO,CAAC,GAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,EAAC,CAAC,MAAM,EAAC,SAAS,CAAC,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClG,MAAM,IAAI,GAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,MAAM,OAAO,GAAC,KAAK,IAAE,EAAE;QACrB,IAAG,IAAI,CAAC,OAAO;YAAC,OAAM;QACtB,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;QAAA,OAAO,CAAC,IAAI,CAAC,CAAC;QAAA,QAAQ,CAAC,EAAE,CAAC,CAAC;QAAA,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1D,IAAI,CAAC;YACH,MAAM,CAAC,GAAC,MAAM,GAAG,CAAkB,eAAe,kBAAkB,CAAC,WAAW,CAAC,aAAa,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,EAAC,SAAS,CAAC,EAAE,EAAC,iBAAiB,EAAC,SAAS,CAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAA;YAC7Q,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAAA,MAAM,SAAS,EAAE,CAAA;QACvC,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAAA,CAAC;gBAAO,CAAC;YAAA,IAAI,CAAC,OAAO,GAAC,KAAK,CAAC;YAAA,OAAO,CAAC,KAAK,CAAC,CAAA;QAAA,CAAC;IAChF,CAAC,CAAA;IACD,MAAM,MAAM,GAAC,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,SAAS,CAAC,qBAAqB,CAAA,CAAC,CAAA,WAAW,CAAA,CAAC,CAAA,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC,qBAAqB,CAAA,CAAC,CAAA,oBAAoB,CAAA,CAAC,CAAA,oBAAoB,EAAC,MAAM,EAAC,YAAY,EAAC,CAAA;IACvM,OAAO,eAAK,SAAS,EAAC,mEAAmE,mBAAgB,SAAS,CAAC,MAAM,KAAG,QAAQ,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,MAAM,aACjJ,iBAAQ,IAAI,EAAC,QAAQ,YAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAU,EACxD,SAAS,CAAC,MAAM,KAAG,QAAQ,IAAE,8BAAE,yBAAO,SAAS,CAAC,KAAK,IAAI,UAAU,GAAQ,EAAA,4SAA0D,EAAA,cAAK,SAAS,EAAC,6BAA6B,YAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,IAAE,IAAI,eAAa,IAAI,EAAE,OAAO,EAAE,GAAE,EAAE,GAAC,KAAK,OAAO,EAAE,CAAA,CAAA,CAAC,YAAG,IAAI,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,SAAS,GAAU,GAAM,IAAG,EAC9T,SAAS,CAAC,aAAa,IAAE,eAAM,KAAK,EAAE,EAAC,UAAU,EAAC,UAAU,EAAC,YAAG,SAAS,CAAC,aAAa,GAAQ,EAC/F,MAAM,IAAE,eAAM,IAAI,EAAC,QAAQ,YAAE,MAAM,GAAQ,EAAE,KAAK,IAAE,eAAM,IAAI,EAAC,OAAO,YAAE,KAAK,GAAQ,IAClF,CAAA;AACR,CAAC"}
@@ -2,13 +2,13 @@ import type { PushChannelView } from '../notifications/push-domain.js';
2
2
  export declare function pushDraft(channel: PushChannelView): {
3
3
  targets: {
4
4
  key: string;
5
- id: string;
6
5
  name: string;
6
+ id: string;
7
7
  enabled: boolean;
8
8
  configured: boolean;
9
9
  }[];
10
- id: string;
11
10
  name: string;
11
+ id: string;
12
12
  createdAt: number;
13
13
  updatedAt: number;
14
14
  enabled: boolean;
@@ -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: '语音回复', capabilities: '私有能力', home: 'QQ 设置', connection: '连接与账号', private: '私聊回复', group: '群聊回复', groups: '选择群组', autonomy: '自主回复白名单', sessions: '会话与记忆', media: '表情与图片', access: '访问权限', send: '发送消息' };
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
  }