@lemoncat7/dsh-partner 2.11.6 → 2.21.11

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 (389) hide show
  1. package/README.md +3 -0
  2. package/docs/THIRD_PARTY_LICENSES.md +1 -1
  3. package/docs/character-cards-and-renewal.md +1 -1
  4. package/docs/qq-attention.md +51 -0
  5. package/docs/qq-channel.md +80 -0
  6. package/docs/releases/2.11.7.md +9 -0
  7. package/docs/releases/2.12.0.md +14 -0
  8. package/docs/releases/2.13.0.md +9 -0
  9. package/docs/releases/2.14.0.md +9 -0
  10. package/docs/releases/2.15.0.md +9 -0
  11. package/docs/releases/2.15.1.md +9 -0
  12. package/docs/releases/2.16.0.md +18 -0
  13. package/docs/releases/2.17.0.md +23 -0
  14. package/docs/releases/2.17.1.md +9 -0
  15. package/docs/releases/2.18.0.md +9 -0
  16. package/docs/releases/2.18.1.md +5 -0
  17. package/docs/releases/2.19.0.md +14 -0
  18. package/docs/releases/2.19.1.md +7 -0
  19. package/docs/releases/2.19.2.md +9 -0
  20. package/docs/releases/2.19.3.md +5 -0
  21. package/docs/releases/2.20.0.md +10 -0
  22. package/docs/releases/2.20.1.md +8 -0
  23. package/docs/releases/2.21.0.md +7 -0
  24. package/docs/releases/2.21.1.md +8 -0
  25. package/docs/releases/2.21.10.md +5 -0
  26. package/docs/releases/2.21.11.md +7 -0
  27. package/docs/releases/2.21.2.md +10 -0
  28. package/docs/releases/2.21.3.md +7 -0
  29. package/docs/releases/2.21.4.md +8 -0
  30. package/docs/releases/2.21.5.md +15 -0
  31. package/docs/releases/2.21.6.md +6 -0
  32. package/docs/releases/2.21.7.md +11 -0
  33. package/docs/releases/2.21.8.md +9 -0
  34. package/docs/releases/2.21.9.md +6 -0
  35. package/docs/tool-entry-compatibility.md +11 -0
  36. package/lib/agent-runtime.d.ts +25 -1
  37. package/lib/agent-runtime.d.ts.map +1 -1
  38. package/lib/agent-runtime.js +364 -62
  39. package/lib/agent-runtime.js.map +1 -1
  40. package/lib/api.d.ts +1 -0
  41. package/lib/api.d.ts.map +1 -1
  42. package/lib/api.js +94 -27
  43. package/lib/api.js.map +1 -1
  44. package/lib/channel-message.d.ts +14 -0
  45. package/lib/channel-message.d.ts.map +1 -1
  46. package/lib/channel-message.js.map +1 -1
  47. package/lib/channels/delivery-policy.js +1 -1
  48. package/lib/channels/delivery-policy.js.map +1 -1
  49. package/lib/channels/direct/dispatcher.d.ts +2 -2
  50. package/lib/channels/direct/dispatcher.d.ts.map +1 -1
  51. package/lib/channels/direct/dispatcher.js +13 -4
  52. package/lib/channels/direct/dispatcher.js.map +1 -1
  53. package/lib/channels/direct/login.d.ts.map +1 -1
  54. package/lib/channels/direct/login.js +4 -0
  55. package/lib/channels/direct/login.js.map +1 -1
  56. package/lib/channels/direct/media.d.ts +2 -0
  57. package/lib/channels/direct/media.d.ts.map +1 -1
  58. package/lib/channels/direct/media.js +27 -23
  59. package/lib/channels/direct/media.js.map +1 -1
  60. package/lib/channels/direct/transport.d.ts +26 -3
  61. package/lib/channels/direct/transport.d.ts.map +1 -1
  62. package/lib/channels/direct/transport.js +31 -5
  63. package/lib/channels/direct/transport.js.map +1 -1
  64. package/lib/channels/manager.d.ts +26 -0
  65. package/lib/channels/manager.d.ts.map +1 -1
  66. package/lib/channels/manager.js +538 -148
  67. package/lib/channels/manager.js.map +1 -1
  68. package/lib/channels/notification-delivery.d.ts +4 -0
  69. package/lib/channels/notification-delivery.d.ts.map +1 -1
  70. package/lib/channels/notification-delivery.js +15 -5
  71. package/lib/channels/notification-delivery.js.map +1 -1
  72. package/lib/channels/notification-route.d.ts.map +1 -1
  73. package/lib/channels/notification-route.js +10 -4
  74. package/lib/channels/notification-route.js.map +1 -1
  75. package/lib/channels/notification-timeout.d.ts.map +1 -1
  76. package/lib/channels/notification-timeout.js +2 -0
  77. package/lib/channels/notification-timeout.js.map +1 -1
  78. package/lib/channels/outbound-media.d.ts.map +1 -1
  79. package/lib/channels/outbound-media.js +2 -0
  80. package/lib/channels/outbound-media.js.map +1 -1
  81. package/lib/channels/qq/action-catalog.d.ts +38 -0
  82. package/lib/channels/qq/action-catalog.d.ts.map +1 -0
  83. package/lib/channels/qq/action-catalog.js +2731 -0
  84. package/lib/channels/qq/action-catalog.js.map +1 -0
  85. package/lib/channels/qq/actions.d.ts +21 -0
  86. package/lib/channels/qq/actions.d.ts.map +1 -0
  87. package/lib/channels/qq/actions.js +226 -0
  88. package/lib/channels/qq/actions.js.map +1 -0
  89. package/lib/channels/qq/affection-adapter.d.ts +3 -0
  90. package/lib/channels/qq/affection-adapter.d.ts.map +1 -0
  91. package/lib/channels/qq/affection-adapter.js +16 -0
  92. package/lib/channels/qq/affection-adapter.js.map +1 -0
  93. package/lib/channels/qq/attention-classifier.d.ts +10 -0
  94. package/lib/channels/qq/attention-classifier.d.ts.map +1 -0
  95. package/lib/channels/qq/attention-classifier.js +62 -0
  96. package/lib/channels/qq/attention-classifier.js.map +1 -0
  97. package/lib/channels/qq/authority.d.ts +11 -0
  98. package/lib/channels/qq/authority.d.ts.map +1 -0
  99. package/lib/channels/qq/authority.js +50 -0
  100. package/lib/channels/qq/authority.js.map +1 -0
  101. package/lib/channels/qq/autonomy.d.ts +30 -0
  102. package/lib/channels/qq/autonomy.d.ts.map +1 -0
  103. package/lib/channels/qq/autonomy.js +88 -0
  104. package/lib/channels/qq/autonomy.js.map +1 -0
  105. package/lib/channels/qq/catalog.d.ts +14 -0
  106. package/lib/channels/qq/catalog.d.ts.map +1 -0
  107. package/lib/channels/qq/catalog.js +34 -0
  108. package/lib/channels/qq/catalog.js.map +1 -0
  109. package/lib/channels/qq/connection.d.ts +28 -0
  110. package/lib/channels/qq/connection.d.ts.map +1 -0
  111. package/lib/channels/qq/connection.js +200 -0
  112. package/lib/channels/qq/connection.js.map +1 -0
  113. package/lib/channels/qq/identity-binding.d.ts +14 -0
  114. package/lib/channels/qq/identity-binding.d.ts.map +1 -0
  115. package/lib/channels/qq/identity-binding.js +60 -0
  116. package/lib/channels/qq/identity-binding.js.map +1 -0
  117. package/lib/channels/qq/latency.d.ts +22 -0
  118. package/lib/channels/qq/latency.d.ts.map +1 -0
  119. package/lib/channels/qq/latency.js +21 -0
  120. package/lib/channels/qq/latency.js.map +1 -0
  121. package/lib/channels/qq/message.d.ts +6 -0
  122. package/lib/channels/qq/message.d.ts.map +1 -0
  123. package/lib/channels/qq/message.js +49 -0
  124. package/lib/channels/qq/message.js.map +1 -0
  125. package/lib/channels/qq/reply-rules.d.ts +30 -0
  126. package/lib/channels/qq/reply-rules.d.ts.map +1 -0
  127. package/lib/channels/qq/reply-rules.js +72 -0
  128. package/lib/channels/qq/reply-rules.js.map +1 -0
  129. package/lib/channels/qq/reply-tool.d.ts +6 -0
  130. package/lib/channels/qq/reply-tool.d.ts.map +1 -0
  131. package/lib/channels/qq/reply-tool.js +124 -0
  132. package/lib/channels/qq/reply-tool.js.map +1 -0
  133. package/lib/channels/qq/settings.d.ts +42 -0
  134. package/lib/channels/qq/settings.d.ts.map +1 -0
  135. package/lib/channels/qq/settings.js +68 -0
  136. package/lib/channels/qq/settings.js.map +1 -0
  137. package/lib/channels/qq/sticker-adapter.d.ts +5 -0
  138. package/lib/channels/qq/sticker-adapter.d.ts.map +1 -0
  139. package/lib/channels/qq/sticker-adapter.js +43 -0
  140. package/lib/channels/qq/sticker-adapter.js.map +1 -0
  141. package/lib/channels/qq/transport.d.ts +29 -0
  142. package/lib/channels/qq/transport.d.ts.map +1 -0
  143. package/lib/channels/qq/transport.js +187 -0
  144. package/lib/channels/qq/transport.js.map +1 -0
  145. package/lib/channels/reply-access.d.ts +25 -0
  146. package/lib/channels/reply-access.d.ts.map +1 -0
  147. package/lib/channels/reply-access.js +29 -0
  148. package/lib/channels/reply-access.js.map +1 -0
  149. package/lib/channels/weixin/connect.d.ts +3 -1
  150. package/lib/channels/weixin/connect.d.ts.map +1 -1
  151. package/lib/character/activity-tool.d.ts +7 -0
  152. package/lib/character/activity-tool.d.ts.map +1 -0
  153. package/lib/character/activity-tool.js +38 -0
  154. package/lib/character/activity-tool.js.map +1 -0
  155. package/lib/character/affection-adapter.d.ts +13 -0
  156. package/lib/character/affection-adapter.d.ts.map +1 -0
  157. package/lib/character/affection-adapter.js +13 -0
  158. package/lib/character/affection-adapter.js.map +1 -0
  159. package/lib/character/affection-context.d.ts +7 -0
  160. package/lib/character/affection-context.d.ts.map +1 -0
  161. package/lib/character/affection-context.js +33 -0
  162. package/lib/character/affection-context.js.map +1 -0
  163. package/lib/character/affection.d.ts +47 -0
  164. package/lib/character/affection.d.ts.map +1 -0
  165. package/lib/character/affection.js +41 -0
  166. package/lib/character/affection.js.map +1 -0
  167. package/lib/character/conversation-behavior.d.ts +4 -4
  168. package/lib/character/conversation-behavior.d.ts.map +1 -1
  169. package/lib/character/conversation-behavior.js +26 -23
  170. package/lib/character/conversation-behavior.js.map +1 -1
  171. package/lib/character/domain.d.ts +5 -0
  172. package/lib/character/domain.d.ts.map +1 -1
  173. package/lib/character/domain.js +21 -4
  174. package/lib/character/domain.js.map +1 -1
  175. package/lib/character/fatigue.d.ts +15 -0
  176. package/lib/character/fatigue.d.ts.map +1 -0
  177. package/lib/character/fatigue.js +37 -0
  178. package/lib/character/fatigue.js.map +1 -0
  179. package/lib/character/identity-guide.d.ts +41 -0
  180. package/lib/character/identity-guide.d.ts.map +1 -0
  181. package/lib/character/identity-guide.js +20 -0
  182. package/lib/character/identity-guide.js.map +1 -0
  183. package/lib/character/idle-contact.d.ts +12 -5
  184. package/lib/character/idle-contact.d.ts.map +1 -1
  185. package/lib/character/idle-contact.js +61 -21
  186. package/lib/character/idle-contact.js.map +1 -1
  187. package/lib/character/persona-templates.d.ts +23 -0
  188. package/lib/character/persona-templates.d.ts.map +1 -0
  189. package/lib/character/persona-templates.js +33 -0
  190. package/lib/character/persona-templates.js.map +1 -0
  191. package/lib/character/post-reply.d.ts +19 -0
  192. package/lib/character/post-reply.d.ts.map +1 -0
  193. package/lib/character/post-reply.js +33 -0
  194. package/lib/character/post-reply.js.map +1 -0
  195. package/lib/character/preview.d.ts.map +1 -1
  196. package/lib/character/preview.js +9 -1
  197. package/lib/character/preview.js.map +1 -1
  198. package/lib/character/relationship-adapter.d.ts +18 -0
  199. package/lib/character/relationship-adapter.d.ts.map +1 -0
  200. package/lib/character/relationship-adapter.js +18 -0
  201. package/lib/character/relationship-adapter.js.map +1 -0
  202. package/lib/character/role-reference-data.d.ts.map +1 -0
  203. package/lib/character/role-reference-data.js.map +1 -0
  204. package/lib/character/sleep-service.d.ts +44 -0
  205. package/lib/character/sleep-service.d.ts.map +1 -0
  206. package/lib/character/sleep-service.js +359 -0
  207. package/lib/character/sleep-service.js.map +1 -0
  208. package/lib/character/sleep.d.ts +65 -0
  209. package/lib/character/sleep.d.ts.map +1 -0
  210. package/lib/character/sleep.js +45 -0
  211. package/lib/character/sleep.js.map +1 -0
  212. package/lib/character/state-policy.d.ts +4 -0
  213. package/lib/character/state-policy.d.ts.map +1 -0
  214. package/lib/character/state-policy.js +14 -0
  215. package/lib/character/state-policy.js.map +1 -0
  216. package/lib/character/store.d.ts.map +1 -1
  217. package/lib/character/store.js +3 -3
  218. package/lib/character/store.js.map +1 -1
  219. package/lib/chat/conversation.js +1 -1
  220. package/lib/chat/conversation.js.map +1 -1
  221. package/lib/chat/protocol.d.ts +8 -0
  222. package/lib/chat/protocol.d.ts.map +1 -1
  223. package/lib/chat/protocol.js +24 -5
  224. package/lib/chat/protocol.js.map +1 -1
  225. package/lib/chat/sticker-adapter.d.ts +34 -0
  226. package/lib/chat/sticker-adapter.d.ts.map +1 -0
  227. package/lib/chat/sticker-adapter.js +30 -0
  228. package/lib/chat/sticker-adapter.js.map +1 -0
  229. package/lib/chat/tools.d.ts +2 -1
  230. package/lib/chat/tools.d.ts.map +1 -1
  231. package/lib/chat/tools.js +59 -13
  232. package/lib/chat/tools.js.map +1 -1
  233. package/lib/client-api.d.ts +21 -1
  234. package/lib/client-api.d.ts.map +1 -1
  235. package/lib/client-api.js.map +1 -1
  236. package/lib/client.d.ts.map +1 -1
  237. package/lib/client.js +7007 -3166
  238. package/lib/client.js.map +4 -4
  239. package/lib/collaboration/composition.d.ts +2 -0
  240. package/lib/collaboration/composition.d.ts.map +1 -1
  241. package/lib/collaboration/composition.js +32 -10
  242. package/lib/collaboration/composition.js.map +1 -1
  243. package/lib/collaboration/tool-discovery.d.ts +12 -0
  244. package/lib/collaboration/tool-discovery.d.ts.map +1 -0
  245. package/lib/collaboration/tool-discovery.js +149 -0
  246. package/lib/collaboration/tool-discovery.js.map +1 -0
  247. package/lib/companions/identity-tool.d.ts +176 -0
  248. package/lib/companions/identity-tool.d.ts.map +1 -0
  249. package/lib/companions/identity-tool.js +69 -0
  250. package/lib/companions/identity-tool.js.map +1 -0
  251. package/lib/companions/identity.d.ts +24 -0
  252. package/lib/companions/identity.d.ts.map +1 -0
  253. package/lib/companions/identity.js +49 -0
  254. package/lib/companions/identity.js.map +1 -0
  255. package/lib/companions/management-tool.d.ts +1 -1
  256. package/lib/companions/management-tool.d.ts.map +1 -1
  257. package/lib/companions/management-tool.js +6 -3
  258. package/lib/companions/management-tool.js.map +1 -1
  259. package/lib/companions/management.d.ts +49 -10
  260. package/lib/companions/management.d.ts.map +1 -1
  261. package/lib/companions/management.js +21 -6
  262. package/lib/companions/management.js.map +1 -1
  263. package/lib/companions/service.js +1 -0
  264. package/lib/companions/service.js.map +1 -1
  265. package/lib/companions/session-configuration.js +2 -2
  266. package/lib/companions/session-configuration.js.map +1 -1
  267. package/lib/domain.d.ts +37 -1
  268. package/lib/domain.d.ts.map +1 -1
  269. package/lib/domain.js +6 -0
  270. package/lib/domain.js.map +1 -1
  271. package/lib/execution/agent-support.d.ts +1 -1
  272. package/lib/execution/agent-support.d.ts.map +1 -1
  273. package/lib/execution/agent-support.js +7 -2
  274. package/lib/execution/agent-support.js.map +1 -1
  275. package/lib/execution/operation-tool-access.d.ts +13 -0
  276. package/lib/execution/operation-tool-access.d.ts.map +1 -0
  277. package/lib/execution/operation-tool-access.js +49 -0
  278. package/lib/execution/operation-tool-access.js.map +1 -0
  279. package/lib/execution/service.d.ts.map +1 -1
  280. package/lib/execution/service.js +2 -10
  281. package/lib/execution/service.js.map +1 -1
  282. package/lib/execution/tool-access-adapter.d.ts +26 -0
  283. package/lib/execution/tool-access-adapter.d.ts.map +1 -0
  284. package/lib/execution/tool-access-adapter.js +25 -0
  285. package/lib/execution/tool-access-adapter.js.map +1 -0
  286. package/lib/heartbeat.js +1 -1
  287. package/lib/index.d.ts.map +1 -1
  288. package/lib/index.js +31 -2
  289. package/lib/index.js.map +1 -1
  290. package/lib/memory-domain.d.ts +1 -0
  291. package/lib/memory-domain.d.ts.map +1 -1
  292. package/lib/memory-prompt-context.js +1 -0
  293. package/lib/memory-prompt-context.js.map +1 -1
  294. package/lib/memory-reflection.d.ts.map +1 -1
  295. package/lib/memory-reflection.js +16 -5
  296. package/lib/memory-reflection.js.map +1 -1
  297. package/lib/memory-scope.d.ts +2 -1
  298. package/lib/memory-scope.d.ts.map +1 -1
  299. package/lib/memory-scope.js +3 -1
  300. package/lib/memory-scope.js.map +1 -1
  301. package/lib/memory-store.d.ts +1 -1
  302. package/lib/observation-knowledge-entry.d.ts +2 -0
  303. package/lib/observation-knowledge-entry.d.ts.map +1 -0
  304. package/lib/observation-knowledge-entry.js +13 -0
  305. package/lib/observation-knowledge-entry.js.map +1 -0
  306. package/lib/observation-loop.d.ts.map +1 -1
  307. package/lib/observation-loop.js +3 -0
  308. package/lib/observation-loop.js.map +1 -1
  309. package/lib/storage/split-state.d.ts +1 -0
  310. package/lib/storage/split-state.d.ts.map +1 -1
  311. package/lib/storage/split-state.js +9 -2
  312. package/lib/storage/split-state.js.map +1 -1
  313. package/lib/store.d.ts.map +1 -1
  314. package/lib/store.js +7 -0
  315. package/lib/store.js.map +1 -1
  316. package/lib/ui/affection-panel.d.ts +10 -0
  317. package/lib/ui/affection-panel.d.ts.map +1 -0
  318. package/lib/ui/affection-panel.js +44 -0
  319. package/lib/ui/affection-panel.js.map +1 -0
  320. package/lib/ui/capability-editor.d.ts.map +1 -1
  321. package/lib/ui/capability-editor.js +1 -1
  322. package/lib/ui/capability-editor.js.map +1 -1
  323. package/lib/ui/channels-panel.d.ts.map +1 -1
  324. package/lib/ui/channels-panel.js +14 -9
  325. package/lib/ui/channels-panel.js.map +1 -1
  326. package/lib/ui/character-editor.d.ts +3 -1
  327. package/lib/ui/character-editor.d.ts.map +1 -1
  328. package/lib/ui/character-editor.js +18 -17
  329. package/lib/ui/character-editor.js.map +1 -1
  330. package/lib/ui/character-memory-editor.d.ts +6 -1
  331. package/lib/ui/character-memory-editor.d.ts.map +1 -1
  332. package/lib/ui/character-memory-editor.js +17 -11
  333. package/lib/ui/character-memory-editor.js.map +1 -1
  334. package/lib/ui/companion-deletion.js +1 -1
  335. package/lib/ui/companion-deletion.js.map +1 -1
  336. package/lib/ui/companion-draft.d.ts +3 -0
  337. package/lib/ui/companion-draft.d.ts.map +1 -1
  338. package/lib/ui/companion-draft.js +1 -1
  339. package/lib/ui/companion-draft.js.map +1 -1
  340. package/lib/ui/companion-vitals.d.ts +6 -0
  341. package/lib/ui/companion-vitals.d.ts.map +1 -0
  342. package/lib/ui/companion-vitals.js +44 -0
  343. package/lib/ui/companion-vitals.js.map +1 -0
  344. package/lib/ui/identity-editor.d.ts.map +1 -1
  345. package/lib/ui/identity-editor.js +13 -6
  346. package/lib/ui/identity-editor.js.map +1 -1
  347. package/lib/ui/idle-contact-editor.d.ts.map +1 -1
  348. package/lib/ui/idle-contact-editor.js +3 -2
  349. package/lib/ui/idle-contact-editor.js.map +1 -1
  350. package/lib/ui/memory/memory-panel.d.ts.map +1 -1
  351. package/lib/ui/memory/memory-panel.js +5 -3
  352. package/lib/ui/memory/memory-panel.js.map +1 -1
  353. package/lib/ui/persona-template.d.ts +5 -0
  354. package/lib/ui/persona-template.d.ts.map +1 -0
  355. package/lib/ui/persona-template.js +7 -0
  356. package/lib/ui/persona-template.js.map +1 -0
  357. package/lib/ui/push-draft.d.ts +8 -8
  358. package/lib/ui/qq-capability-settings.d.ts +9 -0
  359. package/lib/ui/qq-capability-settings.d.ts.map +1 -0
  360. package/lib/ui/qq-capability-settings.js +24 -0
  361. package/lib/ui/qq-capability-settings.js.map +1 -0
  362. package/lib/ui/qq-channel-settings.d.ts +13 -0
  363. package/lib/ui/qq-channel-settings.d.ts.map +1 -0
  364. package/lib/ui/qq-channel-settings.js +52 -0
  365. package/lib/ui/qq-channel-settings.js.map +1 -0
  366. package/lib/ui/qq-connection-guide.d.ts +2 -0
  367. package/lib/ui/qq-connection-guide.d.ts.map +1 -0
  368. package/lib/ui/qq-connection-guide.js +5 -0
  369. package/lib/ui/qq-connection-guide.js.map +1 -0
  370. package/lib/ui/qq-identity-binding.d.ts +9 -0
  371. package/lib/ui/qq-identity-binding.d.ts.map +1 -0
  372. package/lib/ui/qq-identity-binding.js +6 -0
  373. package/lib/ui/qq-identity-binding.js.map +1 -0
  374. package/lib/ui/qq-voice-reply-settings.d.ts +9 -0
  375. package/lib/ui/qq-voice-reply-settings.d.ts.map +1 -0
  376. package/lib/ui/qq-voice-reply-settings.js +23 -0
  377. package/lib/ui/qq-voice-reply-settings.js.map +1 -0
  378. package/lib/ui/role-reference.d.ts.map +1 -1
  379. package/lib/ui/role-reference.js +3 -2
  380. package/lib/ui/role-reference.js.map +1 -1
  381. package/lib/ui/sleep-editor.d.ts +10 -0
  382. package/lib/ui/sleep-editor.d.ts.map +1 -0
  383. package/lib/ui/sleep-editor.js +55 -0
  384. package/lib/ui/sleep-editor.js.map +1 -0
  385. package/package.json +39 -5
  386. package/lib/ui/role-reference-data.d.ts.map +0 -1
  387. package/lib/ui/role-reference-data.js.map +0 -1
  388. /package/lib/{ui → character}/role-reference-data.d.ts +0 -0
  389. /package/lib/{ui → character}/role-reference-data.js +0 -0
@@ -37,7 +37,7 @@ export function CompanionDeletion({ companion, count, channelCount, onRemoved })
37
37
  setBusy(false);
38
38
  }
39
39
  };
40
- return _jsxs("div", { className: "dsh-partner-overview-delete", children: [_jsxs("button", { type: "button", className: "is-danger", disabled: busy || removed || count <= 1, title: count <= 1 ? '至少保留一个伙伴' : undefined, onClick: () => { setError(''); setOpen(true); }, children: [_jsx(IconTrashOutlineRegular, { size: 16 }), "\u5220\u9664\u4F19\u4F34"] }), !open && error && _jsx("p", { className: "dsh-partner-inline-error", role: "alert", children: error }), open && _jsxs(WorkspaceDialog, { title: `删除「${companion.name}」?`, detail: "\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\uFF0C\u53EA\u5220\u9664\u5F53\u524D\u786E\u8BA4\u7684\u4F19\u4F34\u3002", close: () => { if (!locked.current)
40
+ return _jsxs("div", { className: "dsh-partner-overview-delete", children: [_jsxs("button", { type: "button", className: "dsh-partner-delete-trigger is-danger", disabled: busy || removed || count <= 1, title: count <= 1 ? '至少保留一个伙伴' : undefined, onClick: () => { setError(''); setOpen(true); }, children: [_jsx(IconTrashOutlineRegular, { size: 16 }), "\u5220\u9664\u4F19\u4F34"] }), !open && error && _jsx("p", { className: "dsh-partner-inline-error", role: "alert", children: error }), open && _jsxs(WorkspaceDialog, { confirmation: true, eyebrow: "", title: `删除「${companion.name}」?`, detail: "\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\uFF0C\u53EA\u5220\u9664\u5F53\u524D\u786E\u8BA4\u7684\u4F19\u4F34\u3002", close: () => { if (!locked.current)
41
41
  setOpen(false); }, children: [_jsx("p", { children: "\u5C06\u6E05\u7406\u8EAB\u4EFD\u3001\u8BB0\u5FC6\u3001\u6301\u7EED\u5173\u6CE8\u3001\u80FD\u529B\u7ED1\u5B9A\u3001\u5B9A\u65F6\u4EFB\u52A1\u53CA\u4E13\u5C5E\u76EE\u5F55\u4E2D\u7684\u5168\u90E8\u6587\u4EF6\u3002" }), _jsx("p", { children: channelCount ? `已绑定 ${channelCount} 个渠道。确认后会自动停止并删除这些渠道、登录凭据和联系人授权,无需先手动解绑。` : '该伙伴没有绑定渠道。' }), _jsx("p", { children: "DSH \u539F\u4F1A\u8BDD\u65E5\u5FD7\u7531\u5BBF\u4E3B\u7BA1\u7406\uFF0C\u4E0D\u5728\u6B64\u6B21\u5220\u9664\u8303\u56F4\u3002\u6B63\u5728\u6267\u884C\u7684\u4EFB\u52A1\u53CA\u5171\u4EAB\u6216\u5F02\u5E38\u76EE\u5F55\u4ECD\u4F1A\u62E6\u622A\u5220\u9664\u3002" }), 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: () => setOpen(false), children: "\u53D6\u6D88" }), _jsx("button", { type: "button", className: "is-danger", disabled: busy, onClick: () => { void remove(); }, children: busy ? '正在删除…' : '确认删除' })] })] })] });
42
42
  }
43
43
  //# sourceMappingURL=companion-deletion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"companion-deletion.js","sourceRoot":"","sources":["../../src/ui/companion-deletion.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,GAAG,EAAsB,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEzE,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAE5E;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACrF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC;YAAE,OAAM;QAC5D,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAA;QACvB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAClD,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YACtF,SAAS,GAAG,IAAI,CAAA;YAChB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAAC,CAAC;YACvD,MAAM,SAAS,CAAC,EAAE,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO;gBAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtG,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YAAC,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;IACzE,CAAC,CAAA;IACD,OAAO,eAAK,SAAS,EAAC,6BAA6B,aACjD,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAE,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,uBAAuB,IAAC,IAAI,EAAE,EAAE,GAAI,gCAAa,EAClO,CAAC,IAAI,IAAI,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,EAClF,IAAI,IAAI,MAAC,eAAe,IAAC,KAAK,EAAE,MAAM,SAAS,CAAC,IAAI,IAAI,EAAE,MAAM,EAAC,oHAAqB,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAC1I,6OAA0C,EAC1C,sBAAI,YAAY,CAAC,CAAC,CAAC,OAAO,YAAY,0CAA0C,CAAC,CAAC,CAAC,YAAY,GAAK,EACpG,2RAAqD,EACpD,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,EAC1E,eAAK,SAAS,EAAC,0BAA0B,aAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,6BAAa,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,CAAA,CAAC,CAAC,YAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAU,IAAM,IAChP,IACd,CAAA;AACR,CAAC"}
1
+ {"version":3,"file":"companion-deletion.js","sourceRoot":"","sources":["../../src/ui/companion-deletion.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,GAAG,EAAsB,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEzE,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAE5E;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACrF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC;YAAE,OAAM;QAC5D,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAA;QACvB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAClD,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YACtF,SAAS,GAAG,IAAI,CAAA;YAChB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAAC,CAAC;YACvD,MAAM,SAAS,CAAC,EAAE,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO;gBAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtG,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YAAC,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;IACzE,CAAC,CAAA;IACD,OAAO,eAAK,SAAS,EAAC,6BAA6B,aACjD,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,sCAAsC,EAAC,QAAQ,EAAE,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,uBAAuB,IAAC,IAAI,EAAE,EAAE,GAAI,gCAAa,EAC7P,CAAC,IAAI,IAAI,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,EAClF,IAAI,IAAI,MAAC,eAAe,IAAC,YAAY,QAAC,OAAO,EAAC,EAAE,EAAC,KAAK,EAAE,MAAM,SAAS,CAAC,IAAI,IAAI,EAAE,MAAM,EAAC,oHAAqB,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAClK,6OAA0C,EAC1C,sBAAI,YAAY,CAAC,CAAC,CAAC,OAAO,YAAY,0CAA0C,CAAC,CAAC,CAAC,YAAY,GAAK,EACpG,2RAAqD,EACpD,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,EAC1E,eAAK,SAAS,EAAC,0BAA0B,aAAC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,6BAAa,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,CAAA,CAAC,CAAC,YAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAU,IAAM,IAChP,IACd,CAAA;AACR,CAAC"}
@@ -1,11 +1,14 @@
1
1
  import type { Capability, CompanionView } from '../client-api.js';
2
2
  export declare function companionDraft(companion: CompanionView): {
3
+ toolDiscovery?: boolean;
4
+ sleepPolicy?: import('../character/sleep.js').SleepPolicy;
3
5
  idleContact?: import('../character/idle-contact.js').IdleContactPolicy;
4
6
  characterCard?: import('../character/domain.js').CharacterCard;
5
7
  name: string;
6
8
  role: string;
7
9
  description: string;
8
10
  instructions: string;
11
+ relationshipText?: string;
9
12
  presetId: string;
10
13
  provider: string;
11
14
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"companion-draft.d.ts","sourceRoot":"","sources":["../../src/ui/companion-draft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEjE,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,8BAA8B,EAAE,iBAAiB,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,wBAAwB,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,UAAU,EAAE,CAAA;CAAE,CAA+c"}
1
+ {"version":3,"file":"companion-draft.d.ts","sourceRoot":"","sources":["../../src/ui/companion-draft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEjE,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,uBAAuB,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,8BAA8B,EAAE,iBAAiB,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,wBAAwB,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,UAAU,EAAE,CAAA;CAAE,CAAmuB"}
@@ -1,2 +1,2 @@
1
- export function companionDraft(companion) { return { ...(companion.idleContact ? { idleContact: structuredClone(companion.idleContact) } : {}), ...(companion.characterCard ? { characterCard: structuredClone(companion.characterCard) } : {}), name: companion.name, role: companion.role, description: companion.description, instructions: companion.instructions, presetId: companion.presetId ?? '', provider: companion.provider ?? '', model: companion.model ?? '', capabilities: [...companion.capabilities] }; }
1
+ export function companionDraft(companion) { return { ...(companion.toolDiscovery === undefined ? {} : { toolDiscovery: companion.toolDiscovery }), ...(companion.sleepPolicy ? { sleepPolicy: structuredClone(companion.sleepPolicy) } : {}), ...(companion.idleContact ? { idleContact: structuredClone(companion.idleContact) } : {}), ...(companion.characterCard ? { characterCard: structuredClone(companion.characterCard) } : {}), name: companion.name, role: companion.role, description: companion.description, instructions: companion.instructions, ...(companion.relationshipText !== undefined ? { relationshipText: companion.relationshipText } : {}), presetId: companion.presetId ?? '', provider: companion.provider ?? '', model: companion.model ?? '', capabilities: [...companion.capabilities] }; }
2
2
  //# sourceMappingURL=companion-draft.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"companion-draft.js","sourceRoot":"","sources":["../../src/ui/companion-draft.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,SAAwB,IAAsS,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAA,CAAC,CAAC"}
1
+ {"version":3,"file":"companion-draft.js","sourceRoot":"","sources":["../../src/ui/companion-draft.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,SAAwB,IAAqZ,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa,KAAG,SAAS,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,EAAC,aAAa,EAAC,SAAS,CAAC,aAAa,EAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,gBAAgB,EAAC,SAAS,CAAC,gBAAgB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAA,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type CompanionView } from '../client-api.js';
2
+ /** Mounted only on overview; runtime meters are independent of identity form drafts. */
3
+ export declare function CompanionVitals({ companion }: {
4
+ companion: CompanionView;
5
+ }): JSX.Element;
6
+ //# sourceMappingURL=companion-vitals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companion-vitals.d.ts","sourceRoot":"","sources":["../../src/ui/companion-vitals.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAK1D,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,aAAa,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAkCxF"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { api } from '../client-api.js';
4
+ import { affectionEnabled, affectionProgress } from '../character/affection.js';
5
+ import { fatigueLabel, fatigueValue } from '../character/fatigue.js';
6
+ import { isSleeping, sleepPolicy } from '../character/sleep.js';
7
+ /** Mounted only on overview; runtime meters are independent of identity form drafts. */
8
+ export function CompanionVitals({ companion }) {
9
+ const [affection, setAffection] = useState(() => affectionProgress(companion.affection));
10
+ const [sleep, setSleep] = useState(() => ({ state: companion.sleepState ?? {}, serverNow: Date.now() }));
11
+ const [stale, setStale] = useState(false);
12
+ const [retry, setRetry] = useState(0);
13
+ useEffect(() => {
14
+ let alive = true, running = false;
15
+ const refresh = async () => {
16
+ if (running || document.hidden)
17
+ return;
18
+ running = true;
19
+ const results = await Promise.allSettled([
20
+ api(`/companions/${encodeURIComponent(companion.id)}/character/affection`),
21
+ api(`/companions/${encodeURIComponent(companion.id)}/sleep`),
22
+ ]);
23
+ if (alive) {
24
+ if (results[0].status === 'fulfilled')
25
+ setAffection(results[0].value);
26
+ if (results[1].status === 'fulfilled')
27
+ setSleep(results[1].value);
28
+ setStale(results.some(r => r.status === 'rejected'));
29
+ }
30
+ running = false;
31
+ };
32
+ void refresh();
33
+ const timer = setInterval(() => void refresh(), 15000);
34
+ const visible = () => { if (!document.hidden)
35
+ void refresh(); };
36
+ document.addEventListener('visibilitychange', visible);
37
+ return () => { alive = false; clearInterval(timer); document.removeEventListener('visibilitychange', visible); };
38
+ }, [companion.id, retry]);
39
+ const current = { ...companion, sleepState: sleep.state }, fatigue = Math.round(fatigueValue(current, sleep.serverNow)), enabled = sleepPolicy(companion).enabled;
40
+ const sleeping = isSleeping(current, sleep.serverNow);
41
+ const state = !enabled ? '已暂停' : sleeping ? '睡眠中' : '清醒';
42
+ return _jsxs("section", { className: "dsh-partner-vitals", "aria-label": "\u4F19\u4F34\u72B6\u6001", children: [_jsxs("div", { className: "dsh-partner-vital", children: [_jsxs("div", { className: "dsh-partner-vital-heading", children: [_jsx("span", { children: "\u597D\u611F\u5EA6" }), _jsx("small", { children: affectionEnabled(companion) ? `Lv.${affection.level} · ${affection.name}` : '已暂停' })] }), _jsxs("strong", { children: [affection.score, _jsx("small", { children: " / 100" })] }), _jsx("div", { className: "dsh-partner-vital-track", role: "progressbar", "aria-label": `${companion.name}的好感度`, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": affection.score, "aria-valuetext": `${affection.score} / 100,等级 ${affection.level},${affection.name}`, children: _jsx("i", { style: { transform: `scaleX(${affection.score / 100})` } }) })] }), _jsxs("div", { className: "dsh-partner-vital", children: [_jsxs("div", { className: "dsh-partner-vital-heading", children: [_jsx("span", { children: "\u75B2\u60EB\u503C" }), _jsxs("small", { children: [state, enabled ? ` · ${fatigueLabel(fatigue)}` : ''] })] }), _jsxs("strong", { children: [fatigue, _jsx("small", { children: " / 100" })] }), _jsx("div", { className: "dsh-partner-vital-track", role: "meter", "aria-label": `${companion.name}的疲惫值`, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": fatigue, "aria-valuetext": `${fatigue} / 100,${state}`, children: _jsx("i", { style: { transform: `scaleX(${fatigue / 100})` } }) })] }), stale && _jsxs("p", { className: "dsh-partner-vitals-error", role: "status", children: ["\u90E8\u5206\u72B6\u6001\u5237\u65B0\u5931\u8D25\uFF0C\u4FDD\u7559\u4E0A\u6B21\u8BFB\u6570\u3002", _jsx("button", { type: "button", onClick: () => setRetry(n => n + 1), children: "\u91CD\u8BD5" })] })] });
43
+ }
44
+ //# sourceMappingURL=companion-vitals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companion-vitals.js","sourceRoot":"","sources":["../../src/ui/companion-vitals.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"identity-editor.d.ts","sourceRoot":"","sources":["../../src/ui/identity-editor.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAO,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAK1D,UAAU,KAAK;IACb,SAAS,EAAE,aAAa,CAAA;IACxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAAsE"}
1
+ {"version":3,"file":"identity-editor.d.ts","sourceRoot":"","sources":["../../src/ui/identity-editor.tsx"],"names":[],"mappings":"AASA,OAAO,EAAO,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAK1D,UAAU,KAAK;IACb,SAAS,EAAE,aAAa,CAAA;IACxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAAsE"}
@@ -1,17 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { PersonaTemplate } from './persona-template.js';
3
+ import { relationshipTextForIdentity } from '../character/relationship-adapter.js';
4
+ import { SleepEditor } from './sleep-editor.js';
5
+ import { sleepPolicy } from '../character/sleep.js';
2
6
  import { IdleContactEditor } from './idle-contact-editor.js';
3
7
  import { SettingsSections } from './settings-sections.js';
4
8
  import { CharacterEditor } from './character-editor.js';
5
9
  import { useEffect, useRef, useState } from 'react';
6
10
  import { IconCheckOutlineRegular as IconCheckOutline14 } from '@deepseek-ai/dsh-client-ui-primitives';
7
11
  import { api } from '../client-api.js';
8
- import { companionDraft } from './companion-draft.js';
12
+ import { pageIdentity } from '../companions/identity.js';
9
13
  import { FormField as Field, SectionHeading as Section } from './partner-components.js';
10
14
  import { errorMessage } from './workspace-components.js';
11
15
  /** Identity-scoped lifetime prevents confirmations and late results crossing targets. */
12
16
  export function IdentityEditor(props) { return _jsx(IdentityEditorForm, { ...props }, props.companion.id); }
13
17
  function IdentityEditorForm({ companion, onChanged }) {
14
- const [form, setForm] = useState(() => companionDraft(companion));
18
+ const [form, setForm] = useState(() => pageIdentity(companion));
19
+ const revision = useRef(companion.updatedAt);
15
20
  const [operation, setOperation] = useState();
16
21
  const [section, setSection] = useState('identity');
17
22
  const dirty = useRef(false);
@@ -20,8 +25,10 @@ function IdentityEditorForm({ companion, onChanged }) {
20
25
  const locked = useRef(false);
21
26
  const alive = useRef(true);
22
27
  useEffect(() => { alive.current = true; return () => { alive.current = false; }; }, []);
23
- useEffect(() => { if (!dirty.current)
24
- setForm(companionDraft(companion)); }, [companion.updatedAt]);
28
+ useEffect(() => { if (!dirty.current) {
29
+ setForm(pageIdentity(companion));
30
+ revision.current = companion.updatedAt;
31
+ } }, [companion.updatedAt]);
25
32
  const busy = operation !== undefined;
26
33
  const edit = (value) => { setForm(value); dirty.current = true; setSaved(false); };
27
34
  const submit = async (event) => {
@@ -33,7 +40,7 @@ function IdentityEditorForm({ companion, onChanged }) {
33
40
  setError(undefined);
34
41
  let committed = false;
35
42
  try {
36
- await api(`/companions/${encodeURIComponent(companion.id)}`, { method: 'PUT', body: JSON.stringify({ companion: { ...companionDraft(companion), ...(form.idleContact ? { idleContact: form.idleContact } : {}), name: form.name, role: form.role, description: form.description, instructions: form.instructions, ...(form.characterCard ? { characterCard: form.characterCard } : {}) } }) });
43
+ await api(`/companions/${encodeURIComponent(companion.id)}/identity`, { method: 'PUT', body: JSON.stringify({ expectedAt: revision.current, identity: { ...form, characterCard: form.characterCard ?? null, idleContact: form.idleContact ?? null, sleepPolicy: form.sleepPolicy ?? null } }) });
37
44
  committed = true;
38
45
  dirty.current = false;
39
46
  await onChanged();
@@ -50,6 +57,6 @@ function IdentityEditorForm({ companion, onChanged }) {
50
57
  setOperation(undefined);
51
58
  }
52
59
  };
53
- 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: "\u57FA\u672C\u8EAB\u4EFD\u7BA1\u7406\u540D\u5B57\u4E0E\u804C\u8D23\uFF0C\u89D2\u8272\u804A\u5929\u7BA1\u7406\u4E2A\u6027\u4E0E\u63A5\u8BDD\u65B9\u5F0F\u3002\u5206\u6BB5\u7F16\u8F91\uFF0C\u7EDF\u4E00\u4FDD\u5B58\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: [_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: "\u5EFA\u8BAE\u5199\u804C\u8D23\u3001\u8868\u8FBE\u65B9\u5F0F\u4E0E\u8FB9\u754C\uFF1B\u6E20\u9053\u3001\u5DE5\u5177\u548C\u6388\u6743\u7531\u7CFB\u7EDF\u5355\u72EC\u63A7\u5236\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, { companion: companion, ...(form.characterCard ? { card: form.characterCard } : {}), disabled: busy, onChange: characterCard => edit({ ...form, characterCard }) }) }, { id: 'idle', title: '闲时主动联系', detail: form.idleContact?.enabled ? '已开启 · 空闲时来聊聊' : '可选 · 不打扰地联系', content: _jsx(IdleContactEditor, { companionId: companion.id, value: form.idleContact, disabled: busy, onChange: idleContact => edit({ ...form, idleContact }) }) }] }), error && _jsx("p", { className: "dsh-partner-inline-error", role: "alert", children: error }), _jsxs("div", { className: "dsh-partner-form-actions", children: [_jsx("span", { role: "status", children: saved && _jsxs(_Fragment, { children: [_jsx(IconCheckOutline14, { size: 14 }), "\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(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' ? '正在保存…' : '保存身份' })] })] })] });
54
61
  }
55
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":"AAEA,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,CAkBlM"}
1
+ {"version":3,"file":"idle-contact-editor.d.ts","sourceRoot":"","sources":["../../src/ui/idle-contact-editor.tsx"],"names":[],"mappings":"AAGA,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,CAkBlM"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { channelReplyAllowed } from '../channels/reply-access.js';
2
3
  import { useEffect, useState } from 'react';
3
4
  import { loadPartner } from '../client-api.js';
4
5
  import { DEFAULT_IDLE_CONTACT } from '../character/idle-contact.js';
@@ -10,8 +11,8 @@ export function IdleContactEditor({ companionId, value, disabled, onChange }) {
10
11
  useEffect(() => { let active = true; void loadPartner().then(s => { if (active)
11
12
  setSnapshot(s); }).catch(e => { if (active)
12
13
  setError(errorMessage(e)); }); return () => { active = false; }; }, [companionId]);
13
- const routes = snapshot?.sessions.filter(r => r.companionId === companionId && !r.archived && (r.kind === 'local' || (snapshot.channels.some(c => c.id === r.channelId && c.enabled) && snapshot.pairings.some(p => p.channelId === r.channelId && p.userId === r.userId && p.status === 'approved')))) ?? [];
14
+ 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)))) ?? [];
14
15
  const patch = (p) => onChange({ ...policy, ...p });
15
- return _jsxs("section", { className: "dsh-partner-character", "aria-label": "\u95F2\u65F6\u4E3B\u52A8\u8054\u7CFB", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsxs("h3", { children: ["\u95F2\u65F6\u4E3B\u52A8\u8054\u7CFB ", _jsx("small", { children: "\u53EF\u9009" })] }), _jsx("p", { children: "\u4E00\u6BB5\u65F6\u95F4\u6CA1\u804A\u5929\u65F6\uFF0C\u8BA9\u4F19\u4F34\u6309\u81EA\u5DF1\u7684\u6027\u683C\u4E3B\u52A8\u6765\u804A\u4E00\u53E5\u3002" })] }), _jsxs("div", { className: "dsh-partner-character-toggle", children: [_jsx("button", { type: "button", role: "switch", className: "dsh-partner-switch", "aria-label": "\u5F00\u542F\u95F2\u65F6\u4E3B\u52A8\u8054\u7CFB", "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: "\u4F60\u6CA1\u56DE\u590D\u5C31\u4E0D\u518D\u8FFD\u53D1\uFF0C\u6B63\u5728\u804A\u5929\u6216\u6267\u884C\u4EFB\u52A1\u65F6\u4F1A\u7B49\u5F85\u3002\u4F7F\u7528\u5F53\u524D\u8EAB\u4EFD\uFF1B\u65E0\u9700\u5F00\u542F\u89D2\u8272\u804A\u5929\u3002\u4FEE\u6539\u540E\u4FDD\u5B58\u8EAB\u4EFD\u751F\u6548\u3002" }), error && _jsx("p", { role: "alert", className: "dsh-partner-inline-error", children: error }), policy.enabled && _jsxs("fieldset", { disabled: disabled, className: "dsh-partner-character-fields", children: [_jsx(Field, { label: "\u8054\u7CFB\u5230\u54EA\u91CC", hint: "\u53EA\u53D1\u9001\u5230\u6240\u9009\u4F1A\u8BDD\uFF0C\u4E0D\u7FA4\u53D1\u5176\u4ED6\u6E20\u9053\uFF1B\u6E20\u9053\u6D88\u606F\u540C\u65F6\u4FDD\u7559\u5728\u5BF9\u5E94\u804A\u5929\u5386\u53F2\u91CC\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" }), _jsxs("div", { className: "dsh-partner-fields two", children: [_jsx(Field, { label: "\u7A7A\u95F2\u591A\u4E45\u540E\u8054\u7CFB", hint: "\u4EE5\u6700\u8FD1\u7684\u771F\u5B9E\u5BF9\u8BDD\u4E3A\u51C6\uFF0C\u6700\u77ED 30 \u5206\u949F\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)) }) }), _jsx(Field, { label: "\u6BCF\u5929\u6700\u591A\u8054\u7CFB", children: _jsx("select", { value: policy.dailyLimit, onChange: e => patch({ dailyLimit: Number(e.target.value) }), children: [1, 2, 3, 4, 5].map(n => _jsxs("option", { value: n, children: [n, " \u6B21"] }, n)) }) })] }), _jsx("div", { className: "dsh-partner-fields two", children: ['quietStartHour', 'quietEndHour'].map((key, i) => _jsx(Field, { label: i ? '免打扰结束' : '免打扰开始', children: _jsx("select", { value: policy[key], onChange: e => patch({ [key]: Number(e.target.value) }), children: Array.from({ length: 24 }, (_, h) => _jsxs("option", { value: h, children: [String(h).padStart(2, '0'), ":00"] }, h)) }) }, key)) }), _jsx("p", { className: "dsh-partner-character-hint", children: "\u6309\u670D\u52A1\u914D\u7F6E\u7684\u65F6\u533A\uFF08\u9ED8\u8BA4\u4E9A\u6D32 / \u4E0A\u6D77\uFF09\u8BA1\u7B97\uFF0C\u6BCF\u5206\u949F\u68C0\u67E5\u3002\u8D77\u6B62\u65F6\u95F4\u76F8\u540C\u8868\u793A\u5168\u5929\u53EF\u8054\u7CFB\u3002\u91CD\u542F\u4E0D\u4F1A\u91CD\u590D\u5DF2\u5C1D\u8BD5\u7684\u8054\u7CFB\uFF1B\u751F\u6210\u5931\u8D25\u4E5F\u8BA1\u5165\u5F53\u65E5\u6B21\u6570\uFF0C\u907F\u514D\u53CD\u590D\u5C1D\u8BD5\u6253\u6270\u3002" })] })] });
16
+ return _jsxs("section", { className: "dsh-partner-character", "aria-label": "\u95F2\u65F6\u81EA\u4E3B\u6D3B\u52A8", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsxs("h3", { children: ["\u95F2\u65F6\u81EA\u4E3B\u6D3B\u52A8 ", _jsx("small", { children: "\u53EF\u9009" })] }), _jsx("p", { children: "\u7A7A\u95F2\u65F6\u9010\u6E10\u589E\u52A0\u6D3B\u52A8\u6982\u7387\uFF0C\u8BA9\u4F19\u4F34\u81EA\u5DF1\u51B3\u5B9A\u804A\u5929\u3001\u4F7F\u7528\u5DF2\u6388\u6743\u80FD\u529B\uFF0C\u6216\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\u95F2\u65F6\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: "\u6BCF\u5206\u949F\u68C0\u67E5\u4E00\u6B21\uFF0C\u62BD\u4E2D\u624D\u5524\u8D77 AI \u51B3\u5B9A\u505A\u4EC0\u4E48\uFF1B\u4E0D\u662F\u6BCF\u5206\u949F\u8BF7\u6C42\u6A21\u578B\u3002\u6B63\u5728\u804A\u5929\u3001\u6267\u884C\u4EFB\u52A1\u6216\u7761\u89C9\u65F6\u7B49\u5F85\u3002\u5F00\u542F\u597D\u611F\u5EA6\u540E\uFF0C\u56DE\u590D\u9001\u8FBE\u8FD8\u53EF\u80FD\u89E6\u53D1\u4E3B\u52A8\u5EF6\u7EED\uFF1BQQ \u4EC5\u5BF9\u5F52\u5C5E\u8D26\u53F7\u751F\u6548\u3002\u4FEE\u6539\u540E\u4FDD\u5B58\u8EAB\u4EFD\u751F\u6548\u3002" }), error && _jsx("p", { role: "alert", className: "dsh-partner-inline-error", children: error }), policy.enabled && _jsxs("fieldset", { disabled: disabled, className: "dsh-partner-character-fields", children: [_jsx(Field, { label: "\u6D3B\u52A8\u6240\u5728\u4F1A\u8BDD", hint: "\u4ECE\u8FD9\u4E2A\u4F1A\u8BDD\u8BFB\u53D6\u4E0A\u4E0B\u6587\uFF0C\u666E\u901A\u804A\u5929\u56DE\u590D\u53D1\u5230\u8FD9\u91CC\u3002\u5176\u4ED6\u5DE5\u5177\u64CD\u4F5C\u6309\u5404\u81EA\u7684\u6E20\u9053\u6388\u6743\u6267\u884C\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("div", { className: "dsh-partner-fields two", children: _jsx(Field, { label: "\u57FA\u7840\u6982\u7387\u5347\u81F3 100% \u7684\u95F4\u9694", hint: "\u57FA\u7840\u6982\u7387 = \u5DF2\u7A7A\u95F2\u5206\u949F \u00F7 \u6B64\u95F4\u9694\u3002\u9002\u7528\u597D\u611F\u5EA6\u52A0\u6210\u65F6\u518D\u4E58\u4EE5\u4E3B\u52A8\u7CFB\u6570\uFF0C\u4E0A\u9650 100%\uFF1B\u6700\u77ED 30 \u5206\u949F\uFF0C\u4E0D\u662F\u5E73\u5747\u6D3B\u52A8\u95F4\u9694\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)) }) }) }), _jsxs("p", { className: "dsh-partner-character-hint", children: ["\u672A\u8BA1\u597D\u611F\u5EA6\u52A0\u6210\u65F6\uFF0C\u95F4\u9694 ", policy.idleMinutes, " \u5206\u949F\uFF1A\u7B2C 1 \u5206\u949F\u7EA6 ", (100 / policy.idleMinutes).toFixed(1), "%\uFF0C\u7B2C ", policy.idleMinutes / 2, " \u5206\u949F\u7EA6 50%\uFF0C\u5230 ", policy.idleMinutes, " \u5206\u949F\u4E3A 100%\u3002\u63D0\u524D\u62BD\u4E2D\u5C31\u5F00\u59CB\u65B0\u5468\u671F\uFF0C\u56E0\u6B64\u901A\u5E38\u4F1A\u66F4\u65E9\u89E6\u53D1\u3002100% \u4EE3\u8868\u505A\u4E00\u6B21\u51B3\u5B9A\uFF0C\u4E0D\u4FDD\u8BC1\u53D1\u9001\u6D88\u606F\u3002"] }), _jsx("p", { className: "dsh-partner-character-hint", children: "\u4E0D\u9650\u5236\u6BCF\u5929\u6D3B\u52A8\u6B21\u6570\uFF0C\u4E5F\u4E0D\u8981\u6C42\u6BCF\u6B21\u53D1\u6D88\u606F\u3002\u62BD\u4E2D\u540E\u91CD\u7F6E\u8BA1\u65F6\uFF1B\u65B0\u804A\u5929\u4F1A\u91CD\u65B0\u7D2F\u8BA1\u7A7A\u95F2\u65F6\u95F4\u3002\u4F60\u6CA1\u56DE\u590D\u65F6\uFF0C\u4F19\u4F34\u4ECD\u53EF\u505A\u5176\u4ED6\u4E8B\u60C5\uFF0C\u907F\u514D\u53CD\u590D\u8FFD\u95EE\u3002\u7761\u7720\u671F\u95F4\u6682\u505C\uFF0C\u9192\u6765\u540E\u6062\u590D\u68C0\u67E5\u3002" })] })] });
16
17
  }
17
18
  //# 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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory-panel.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/memory-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAM,KAAK,aAAa,EAAE,KAAK,eAAe,EAAC,MAAM,qBAAqB,CAAA;AAQjF,wBAAgB,WAAW,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAC,EAAE;IACrG,SAAS,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3H,GAAG,GAAG,CAAC,OAAO,CA0Cd"}
1
+ {"version":3,"file":"memory-panel.d.ts","sourceRoot":"","sources":["../../../src/ui/memory/memory-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAM,KAAK,aAAa,EAAE,KAAK,eAAe,EAAC,MAAM,qBAAqB,CAAA;AASjF,wBAAgB,WAAW,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAC,EAAE;IACrG,SAAS,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3H,GAAG,GAAG,CAAC,OAAO,CA4Cd"}
@@ -7,10 +7,12 @@ import { WorkspaceHero, WorkspaceNotice, CollectionEmpty, errorMessage } from '.
7
7
  import { MemoryLibrary } from './memory-library.js';
8
8
  import { AutomationSettings } from './automation-settings.js';
9
9
  import { useMemoryResource } from './use-memory-resource.js';
10
+ import { CharacterMemoryEditor } from '../character-memory-editor.js';
10
11
  import { MemoryJobFeedback } from './job-feedback.js';
11
12
  export function MemoryPanel({ companion, snapshot, openSession, startSession, renewSession, onChanged }) {
12
13
  const sessions = snapshot.sessions.filter(item => item.companionId === companion.id).sort((a, b) => Number(b.kind === 'local') - Number(a.kind === 'local') || b.lastMessageAt - a.lastMessageAt);
13
14
  const [requestedScope, setScope] = useState('');
15
+ const [stateEditing, setStateEditing] = useState(false);
14
16
  const [settings, setSettings] = useState(false);
15
17
  const [busy, setBusy] = useState(false);
16
18
  const lock = useRef(false);
@@ -23,10 +25,10 @@ export function MemoryPanel({ companion, snapshot, openSession, startSession, re
23
25
  const scopeId = requested || collection.data?.profiles[0]?.scopeId || '';
24
26
  useEffect(() => {
25
27
  const profiles = collection.data?.profiles;
26
- if (!profiles?.length || profiles.some(profile => profile.scopeId === requested))
28
+ if (stateEditing || !profiles?.length || profiles.some(profile => profile.scopeId === requested))
27
29
  return;
28
30
  setScope(profiles.find(profile => profile.scopeId === initialScope)?.scopeId ?? profiles[0].scopeId);
29
- }, [collection.data, requested, initialScope]);
31
+ }, [collection.data, requested, initialScope, stateEditing]);
30
32
  const layers = useMemoryResource(scopeId ? `${base}/memory/layers?${new URLSearchParams({ scopeId })}` : undefined, 15_000);
31
33
  const reload = async () => { await Promise.all([collection.reload(), layers.reload()]); };
32
34
  const run = async (action, success) => {
@@ -52,6 +54,6 @@ export function MemoryPanel({ companion, snapshot, openSession, startSession, re
52
54
  const retries = layers.data?.retryCount ?? layers.data?.jobs.filter(job => job.status === 'retrying').length ?? 0;
53
55
  const [showAllJobs, setShowAllJobs] = useState(false);
54
56
  const scopes = collection.data?.profiles ?? [];
55
- return _jsxs("div", { className: "dsh-partner-memory-page", children: [_jsx(WorkspaceHero, { eyebrow: "MEMORY & CONTEXT", title: "\u8BB0\u5FC6\u5E93", detail: "\u77E5\u9053\u8BB0\u4F4F\u4E86\u4EC0\u4E48\u3001\u4F9D\u636E\u662F\u4EC0\u4E48\uFF0C\u4E5F\u80FD\u7EA0\u6B63\u5DF2\u7ECF\u8FC7\u65F6\u7684\u7406\u89E3\u3002", actions: _jsx("button", { type: "button", onClick: () => setSettings(true), children: "\u8BB0\u5FC6\u8BBE\u7F6E" }) }), _jsxs("div", { className: "dsh-partner-memory-context", children: [_jsxs("label", { children: [_jsx("span", { children: "\u8BB0\u5FC6\u8303\u56F4" }), _jsxs("select", { "aria-label": "\u8BB0\u5FC6\u8303\u56F4", value: scopeId, onChange: event => { setScope(event.target.value); setError(undefined); setNotice(undefined); }, children: [!scopes.length && _jsx("option", { value: scopeId, children: scopeId ? '统一会话记忆' : '暂无记忆' }), scopes.map(profile => _jsx("option", { value: profile.scopeId, children: profile.label }, profile.scopeId))] })] }), _jsx("span", { className: "dsh-partner-memory-badge", children: companion.automation.memory.enabled ? '学习已开启' : '学习已暂停' }), _jsx("button", { type: "button", "aria-label": "\u5237\u65B0\u8BB0\u5FC6", disabled: collection.loading || layers.loading, onClick: () => { void reload(); }, children: _jsx(IconRefreshOutline16, { size: 16 }) })] }), (error || collection.error || layers.error) && _jsx(WorkspaceNotice, { children: error || collection.error || layers.error }), notice && _jsx(WorkspaceNotice, { kind: "success", children: notice }), !!layers.data?.jobs.length && _jsxs("details", { className: "dsh-partner-memory-jobs", children: [_jsxs("summary", { children: [layers.data.jobCount ?? layers.data.jobs.length, " \u9879\u5C1A\u672A\u6574\u7406 \u00B7 ", retries, " \u9879\u5931\u8D25\u91CD\u8BD5", _jsx("small", { children: "\u539F\u59CB\u5BF9\u8BDD\u5DF2\u4FDD\u5B58\uFF0C\u4E0D\u5F71\u54CD\u7EE7\u7EED\u804A\u5929" })] }), _jsxs("div", { children: [layers.data.jobs.slice(0, showAllJobs ? 100 : 10).map(job => _jsxs("div", { children: [_jsxs("span", { children: [job.at && _jsx("small", { children: new Date(job.at).toLocaleString() }), job.status === 'processing' ? '正在整理' : job.status === 'retrying' ? `已失败 ${job.attempts} 次 · 下次 ${new Date(job.nextAt).toLocaleTimeString()}` : '等待执行,无需重复提交', _jsx(MemoryJobFeedback, { status: job.status, ...(job.error ? { error: job.error } : {}) }), job.attempts >= 3 && job.status === 'retrying' && _jsx("small", { children: "\u9000\u907F\u671F\u95F4\u5141\u8BB8\u540E\u7EED\u4EFB\u52A1\u7EE7\u7EED\u6574\u7406" })] }), job.status === 'retrying' && _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(async () => { await api(`${base}/memory/jobs/${encodeURIComponent(job.id)}?${new URLSearchParams({ scopeId })}`, { method: 'POST' }); }, '已安排重试,当前执行结束后处理'); }, children: "\u91CD\u65B0\u6392\u961F" })] }, job.id)), layers.data.jobs.length > 10 && _jsx("button", { type: "button", onClick: () => setShowAllJobs(!showAllJobs), children: showAllJobs ? '收起' : '显示更多任务' }), (layers.data.jobCount ?? 0) > 100 && _jsx("p", { children: "\u4EC5\u5C55\u793A\u6700\u65E9100\u9879\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u8865\u5145\u540E\u7EED\u4EFB\u52A1\u3002" })] })] }), !collection.data ? _jsx(CollectionEmpty, { title: collection.error ? '记忆读取失败' : '正在读取记忆', action: collection.error ? _jsx("button", { type: "button", onClick: () => { void reload(); }, children: "\u91CD\u8BD5" }) : undefined }) : _jsx(MemoryLibrary, { companionId: companion.id, scopeId: scopeId, collection: collection.data, layers: layers.data, enabled: companion.automation.memory.enabled, changed: reload }, scopeId), _jsxs("details", { className: "dsh-partner-memory-record is-sessions", children: [_jsxs("summary", { children: ["\u4F19\u4F34\u4F1A\u8BDD ", _jsx("small", { children: sessions.length })] }), _jsxs("div", { children: [sessions.map(session => _jsxs("div", { className: "dsh-partner-memory-session", children: [_jsxs("span", { children: [_jsx("strong", { children: session.kind === 'local' ? '本地对话' : `渠道联系人 · ${session.userId.slice(-6)}` }), _jsx("small", { children: session.archived ? '已归档' : '可继续对话' })] }), _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(() => session.archived ? renewSession(session.id) : openSession(session.id, session.sessionId), session.archived ? '新会话已创建' : '会话已打开'); }, children: session.archived ? '新建会话' : '打开会话' })] }, session.id)), !sessions.length && _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(() => startSession(companion.id), '会话已创建'); }, children: "\u5F00\u59CB\u5BF9\u8BDD" })] })] }), settings && _jsx(AutomationSettings, { companion: companion, kind: "memory", close: () => setSettings(false), onChanged: async () => { await onChanged(); await reload(); } })] });
57
+ return _jsxs("div", { className: "dsh-partner-memory-page", children: [_jsx(WorkspaceHero, { eyebrow: "MEMORY & CONTEXT", title: "\u8BB0\u5FC6\u5E93", detail: "\u957F\u671F\u8BB0\u5FC6\u4FDD\u5B58\u4E8B\u5B9E\u4E0E\u7EA6\u5B9A\uFF0C\u5F53\u524D\u76F8\u5904\u72B6\u6001\u63A5\u7EED\u8BDD\u9898\uFF1B\u505A\u68A6\u662F\u72EC\u7ACB\u7684\u8054\u60F3\uFF0C\u4E0D\u4F1A\u6539\u5199\u771F\u5B9E\u7ECF\u5386\u3002", actions: _jsx("button", { type: "button", onClick: () => setSettings(true), children: "\u8BB0\u5FC6\u8BBE\u7F6E" }) }), _jsxs("div", { className: "dsh-partner-memory-context", children: [_jsxs("label", { children: [_jsx("span", { children: "\u8BB0\u5FC6\u8303\u56F4" }), _jsxs("select", { "aria-label": "\u8BB0\u5FC6\u8303\u56F4", disabled: stateEditing, value: scopeId, onChange: event => { setScope(event.target.value); setError(undefined); setNotice(undefined); }, children: [!scopes.length && _jsx("option", { value: scopeId, children: scopeId ? '统一会话记忆' : '暂无记忆' }), scopes.map(profile => _jsx("option", { value: profile.scopeId, children: profile.label }, profile.scopeId))] })] }), _jsx("span", { className: "dsh-partner-memory-badge", children: companion.automation.memory.enabled ? '学习已开启' : '学习已暂停' }), _jsx("button", { type: "button", "aria-label": "\u5237\u65B0\u8BB0\u5FC6", disabled: collection.loading || layers.loading, onClick: () => { void reload(); }, children: _jsx(IconRefreshOutline16, { size: 16 }) })] }), (error || collection.error || layers.error) && _jsx(WorkspaceNotice, { children: error || collection.error || layers.error }), notice && _jsx(WorkspaceNotice, { kind: "success", children: notice }), _jsx(CharacterMemoryEditor, { companionId: companion.id, scopeId: scopeId, enabled: companion.automation.memory.enabled, roleEnabled: companion.characterCard?.enabled === true, onEditingChange: setStateEditing }, `${companion.id}:${scopeId}`), !!layers.data?.jobs.length && _jsxs("details", { className: "dsh-partner-memory-jobs", children: [_jsxs("summary", { children: [layers.data.jobCount ?? layers.data.jobs.length, " \u9879\u5C1A\u672A\u6574\u7406 \u00B7 ", retries, " \u9879\u5931\u8D25\u91CD\u8BD5", _jsx("small", { children: "\u539F\u59CB\u5BF9\u8BDD\u5DF2\u4FDD\u5B58\uFF0C\u4E0D\u5F71\u54CD\u7EE7\u7EED\u804A\u5929" })] }), _jsxs("div", { children: [layers.data.jobs.slice(0, showAllJobs ? 100 : 10).map(job => _jsxs("div", { children: [_jsxs("span", { children: [job.at && _jsx("small", { children: new Date(job.at).toLocaleString() }), job.status === 'processing' ? '正在整理' : job.status === 'retrying' ? `已失败 ${job.attempts} 次 · 下次 ${new Date(job.nextAt).toLocaleTimeString()}` : '等待执行,无需重复提交', _jsx(MemoryJobFeedback, { status: job.status, ...(job.error ? { error: job.error } : {}) }), job.attempts >= 3 && job.status === 'retrying' && _jsx("small", { children: "\u9000\u907F\u671F\u95F4\u5141\u8BB8\u540E\u7EED\u4EFB\u52A1\u7EE7\u7EED\u6574\u7406" })] }), job.status === 'retrying' && _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(async () => { await api(`${base}/memory/jobs/${encodeURIComponent(job.id)}?${new URLSearchParams({ scopeId })}`, { method: 'POST' }); }, '已安排重试,当前执行结束后处理'); }, children: "\u91CD\u65B0\u6392\u961F" })] }, job.id)), layers.data.jobs.length > 10 && _jsx("button", { type: "button", onClick: () => setShowAllJobs(!showAllJobs), children: showAllJobs ? '收起' : '显示更多任务' }), (layers.data.jobCount ?? 0) > 100 && _jsx("p", { children: "\u4EC5\u5C55\u793A\u6700\u65E9100\u9879\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u8865\u5145\u540E\u7EED\u4EFB\u52A1\u3002" })] })] }), !collection.data ? _jsx(CollectionEmpty, { title: collection.error ? '记忆读取失败' : '正在读取记忆', action: collection.error ? _jsx("button", { type: "button", onClick: () => { void reload(); }, children: "\u91CD\u8BD5" }) : undefined }) : _jsx(MemoryLibrary, { companionId: companion.id, scopeId: scopeId, collection: collection.data, layers: layers.data, enabled: companion.automation.memory.enabled, changed: reload }, scopeId), _jsxs("details", { className: "dsh-partner-memory-record is-sessions", children: [_jsxs("summary", { children: ["\u4F19\u4F34\u4F1A\u8BDD ", _jsx("small", { children: sessions.length })] }), _jsxs("div", { children: [sessions.map(session => _jsxs("div", { className: "dsh-partner-memory-session", children: [_jsxs("span", { children: [_jsx("strong", { children: session.kind === 'local' ? '本地对话' : `渠道联系人 · ${session.userId.slice(-6)}` }), _jsx("small", { children: session.archived ? '已归档' : '可继续对话' })] }), _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(() => session.archived ? renewSession(session.id) : openSession(session.id, session.sessionId), session.archived ? '新会话已创建' : '会话已打开'); }, children: session.archived ? '新建会话' : '打开会话' })] }, session.id)), !sessions.length && _jsx("button", { type: "button", disabled: busy, onClick: () => { void run(() => startSession(companion.id), '会话已创建'); }, children: "\u5F00\u59CB\u5BF9\u8BDD" })] })] }), settings && _jsx(AutomationSettings, { companion: companion, kind: "memory", close: () => setSettings(false), onChanged: async () => { await onChanged(); await reload(); } })] });
56
58
  }
57
59
  //# sourceMappingURL=memory-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-panel.js","sourceRoot":"","sources":["../../../src/ui/memory/memory-panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-panel.js","sourceRoot":"","sources":["../../../src/ui/memory/memory-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { PERSONA_TEMPLATES } from '../character/persona-templates.js';
2
+ export declare function PersonaTemplate({ section }: {
3
+ section: keyof typeof PERSONA_TEMPLATES;
4
+ }): JSX.Element;
5
+ //# sourceMappingURL=persona-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-template.d.ts","sourceRoot":"","sources":["../../src/ui/persona-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,OAAO,iBAAiB,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAGrG"}
@@ -0,0 +1,7 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { PERSONA_TEMPLATES } from '../character/persona-templates.js';
3
+ export function PersonaTemplate({ section }) {
4
+ const template = PERSONA_TEMPLATES[section];
5
+ return _jsxs("details", { className: "dsh-partner-settings-advanced dsh-partner-persona-template", children: [_jsxs("summary", { children: [template.title, "\u53C2\u8003\u6A21\u677F"] }), _jsx("p", { children: template.purpose }), _jsx("pre", { children: template.text }), _jsx("small", { children: "\u9996\u6B21\u521B\u5EFA\u6216\u660E\u786E\u8981\u6C42\u53C2\u8003\u65F6\u4F7F\u7528\uFF1B\u65E5\u5E38\u4FEE\u6539\u3001\u81EA\u4E3B\u4F18\u5316\u65E0\u9700\u5957\u7528\u3002\u9875\u9762\u4E0E AI \u5171\u7528\u8FD9\u4EFD\u53C2\u8003\u3002" })] });
6
+ }
7
+ //# sourceMappingURL=persona-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-template.js","sourceRoot":"","sources":["../../src/ui/persona-template.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAA+C;IACtF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,mBAAS,SAAS,EAAC,4DAA4D,aAAC,8BAAU,QAAQ,CAAC,KAAK,gCAAe,EAAA,sBAAI,QAAQ,CAAC,OAAO,GAAK,EAAA,wBAAM,QAAQ,CAAC,IAAI,GAAO,EAAA,6QAA0D,IAAU,CAAA;AACvP,CAAC"}
@@ -2,23 +2,23 @@ import type { PushChannelView } from '../notifications/push-domain.js';
2
2
  export declare function pushDraft(channel: PushChannelView): {
3
3
  targets: {
4
4
  key: string;
5
- enabled: boolean;
6
- id: string;
7
5
  name: string;
6
+ id: string;
7
+ enabled: boolean;
8
8
  configured: boolean;
9
9
  }[];
10
- enabled: boolean;
10
+ name: string;
11
11
  id: string;
12
- content: "summary" | "title";
13
- revision: number;
14
12
  createdAt: number;
15
13
  updatedAt: number;
16
- companionId: string;
17
- name: string;
14
+ enabled: boolean;
15
+ content: "summary" | "title";
18
16
  platform: "bark";
17
+ revision: number;
18
+ companionId: string;
19
+ group: string;
19
20
  baseUrl: string;
20
21
  notifyProblems: boolean;
21
- group: string;
22
22
  sound: string;
23
23
  openUrl: string;
24
24
  pending: number;
@@ -0,0 +1,9 @@
1
+ import { type ChannelView } from '../client-api.js';
2
+ import type { QqSettings } from '../channels/qq/settings.js';
3
+ export declare function QqCapabilitySettings({ channel, policy, change, busy }: {
4
+ channel: ChannelView;
5
+ policy: QqSettings;
6
+ change(patch: Partial<QqSettings>): void;
7
+ busy: boolean;
8
+ }): JSX.Element;
9
+ //# sourceMappingURL=qq-capability-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qq-capability-settings.d.ts","sourceRoot":"","sources":["../../src/ui/qq-capability-settings.tsx"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAErD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAA;AAE1D,wBAAgB,oBAAoB,CAAC,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,EAAC;IAAC,OAAO,EAAC,WAAW,CAAC;IAAA,MAAM,EAAC,UAAU,CAAC;IAAA,MAAM,CAAC,KAAK,EAAC,OAAO,CAAC,UAAU,CAAC,GAAE,IAAI,CAAC;IAAA,IAAI,EAAC,OAAO,CAAA;CAAC,GAAE,GAAG,CAAC,OAAO,CAgBzK"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { api } from '../client-api.js';
4
+ import { QQ_ACTIONS, QQ_ACTION_CATEGORIES } from '../channels/qq/action-catalog.js';
5
+ export function QqCapabilitySettings({ channel, policy, change, busy }) {
6
+ const [category, setCategory] = useState(''), [group, setGroup] = useState(policy.groupIds[0] ?? ''), [loading, setLoading] = useState(false), [error, setError] = useState('');
7
+ const [voices, setVoices] = useState([]);
8
+ const selected = QQ_ACTION_CATEGORIES.find(c => c.id === category);
9
+ const effects = { read: '读取', write: '对外操作', destructive: '管理 / 删除' };
10
+ const load = async () => { setLoading(true); setError(''); try {
11
+ const rows = await api(`/channels/${channel.id}/qq/voices?groupId=${encodeURIComponent(group)}`);
12
+ if (!Array.isArray(rows))
13
+ throw Error('未取得音色目录');
14
+ setVoices(rows.flatMap(r => Array.isArray(r?.characters) ? r.characters.filter((v) => typeof v.character_id === 'string' && typeof v.character_name === 'string').map((v) => ({ id: v.character_id, name: v.character_name, category: String(r.type ?? '') })) : []));
15
+ }
16
+ catch {
17
+ setError('读取音色失败,请确认渠道在线且所选群已保存。');
18
+ }
19
+ finally {
20
+ setLoading(false);
21
+ } };
22
+ return _jsxs("div", { className: "dsh-partner-qq-pane", children: [selected ? _jsxs(_Fragment, { children: [_jsxs("nav", { className: "dsh-partner-qq-breadcrumb", children: [_jsx("button", { type: "button", onClick: () => setCategory(''), children: "\u2039 \u79C1\u6709\u80FD\u529B" }), _jsx("span", { children: "/" }), _jsx("strong", { children: selected.title })] }), _jsxs("p", { className: "dsh-partner-qq-hint", children: [selected.description, "\u3002\u5F00\u5173\u4FDD\u5B58\u540E\u751F\u6548\uFF0C\u4F19\u4F34\u53EA\u80FD\u4F7F\u7528\u5DF2\u5F00\u542F\u7684\u64CD\u4F5C\u3002"] })] }) : _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-partner-qq-toggle", children: [_jsxs("span", { children: [_jsx("strong", { children: "\u542F\u7528 QQ \u79C1\u6709\u80FD\u529B" }), _jsx("small", { children: "\u4EC5\u5F52\u5C5E\u8D26\u53F7\u7684\u8BF7\u6C42\u3001\u5DF2\u6388\u6743\u4EFB\u52A1\u548C\u7CFB\u7EDF\u81EA\u4E3B\u6D3B\u52A8\u53EF\u8C03\u7528\uFF1B\u672A\u5F52\u5C5E\u8054\u7CFB\u4EBA\u4E0D\u80FD\u8C03\u7528\u3002\u6587\u5B57\u3001\u8868\u60C5\u4E0E\u5F53\u524D\u4F1A\u8BDD\u8BED\u97F3\u5728\u300C\u804A\u5929\u56DE\u590D\u300D\u72EC\u7ACB\u8BBE\u7F6E\u3002" })] }), _jsxs("div", { children: [_jsx("button", { type: "button", role: "switch", className: "dsh-partner-switch", "aria-label": "\u542F\u7528 QQ \u79C1\u6709\u80FD\u529B", "aria-checked": policy.autonomousActions, "data-on": policy.autonomousActions, disabled: busy, onClick: () => change({ autonomousActions: !policy.autonomousActions }), children: _jsx("i", {}) }), _jsx("small", { children: policy.autonomousActions ? '已开启' : '已关闭' })] })] }), _jsx("p", { className: "dsh-partner-qq-hint", children: "\u5148\u5728\u8BBF\u95EE\u6743\u9650\u4E2D\u586B\u5199\u5F52\u5C5E QQ \u53F7\uFF0C\u518D\u6309\u5206\u7C7B\u5F00\u542F\u5177\u4F53\u80FD\u529B\u3002\u7CFB\u7EDF\u81EA\u4E3B\u6D3B\u52A8\u65E0\u9700\u626E\u6210\u5F52\u5C5E\u8D26\u53F7\uFF0C\u4F46\u540C\u6837\u53D7\u8FD9\u4E9B\u5F00\u5173\u9650\u5236\u3002\u804A\u5929\u548C\u7FA4\u64CD\u4F5C\u6CBF\u7528\u5DF2\u6388\u6743\u8054\u7CFB\u4EBA\u4E0E\u5DF2\u63A5\u5165\u7FA4\uFF1B\u7A7A\u95F4\u4F7F\u7528\u6B64 QQ \u8D26\u53F7\u53EF\u8BBF\u95EE\u7684\u52A8\u6001\u3002\u7FA4\u7BA1\u7406\u4ECD\u9700\u8D26\u53F7\u5177\u6709\u76F8\u5E94\u6743\u9650\u3002" })] }), !policy.autonomousActions && _jsx("p", { className: "dsh-partner-qq-hint", children: "\u603B\u5F00\u5173\u5DF2\u5173\u95ED\uFF1B\u53EF\u4EE5\u9884\u5148\u914D\u7F6E\uFF0C\u5F00\u542F\u603B\u5F00\u5173\u5E76\u4FDD\u5B58\u540E\u624D\u4F1A\u6267\u884C\u3002" }), !selected ? QQ_ACTION_CATEGORIES.map(c => { const actions = QQ_ACTIONS.filter(a => a.category === c.id); return _jsxs("button", { type: "button", className: "dsh-partner-qq-entry", disabled: busy, onClick: () => setCategory(c.id), children: [_jsx("span", { className: "dsh-partner-qq-glyph", "aria-hidden": "true", children: actions.filter(a => policy.enabledActions.includes(a.id)).length }), _jsxs("span", { children: [_jsx("strong", { children: c.title }), _jsx("small", { children: c.description })] }), _jsxs("em", { children: [actions.length, " \u9879"] }), _jsx("span", { "aria-hidden": "true", children: "\u203A" })] }, c.id); }) : _jsxs(_Fragment, { children: [category === 'space' && _jsxs("label", { className: "dsh-partner-qq-field", children: [_jsx("span", { children: "\u65B0\u8BF4\u8BF4\u9ED8\u8BA4\u53EF\u89C1\u8303\u56F4" }), _jsxs("select", { value: policy.qzoneVisibility, disabled: busy, onChange: e => change({ qzoneVisibility: Number(e.target.value) }), children: [_jsx("option", { value: 4, children: "\u597D\u53CB\u53EF\u89C1" }), _jsx("option", { value: 64, children: "\u4EC5\u81EA\u5DF1\u53EF\u89C1" }), _jsx("option", { value: 1, children: "\u6240\u6709\u4EBA\u53EF\u89C1" })] }), _jsx("small", { children: "\u4F19\u4F34\u672A\u6307\u5B9A\u8303\u56F4\u65F6\u4F7F\u7528\u6B64\u9009\u9879\uFF1B\u660E\u786E\u6307\u5B9A\u65F6\u53EF\u9009\u62E9\u5176\u4ED6\u8303\u56F4\u3002" })] }), category === 'voice' && _jsxs(_Fragment, { children: [_jsx("p", { className: "dsh-partner-qq-hint", children: "\u8FD9\u91CC\u662F\u5F52\u5C5E\u8D26\u53F7\u4E0E\u81EA\u4E3B\u6267\u884C\u4F7F\u7528\u7684\u9AD8\u7EA7\u8BED\u97F3\u64CD\u4F5C\uFF0C\u53EF\u8BFB\u53D6\u5DE5\u4F5C\u76EE\u5F55\u97F3\u9891\u3001\u9009\u62E9\u5176\u4ED6\u5DF2\u6388\u6743\u63A5\u6536\u4EBA\u3002\u666E\u901A\u8054\u7CFB\u4EBA\u5411\u5F53\u524D\u4F1A\u8BDD\u56DE\u590D\u8BED\u97F3\uFF0C\u8BF7\u5728\u300C\u8BED\u97F3\u56DE\u590D\u300D\u914D\u7F6E\u3002" }), _jsxs("label", { className: "dsh-partner-qq-field", children: [_jsx("span", { children: "\u8BFB\u53D6\u97F3\u8272\u7684\u7FA4" }), _jsxs("select", { value: group, disabled: busy || loading, onChange: e => { setGroup(e.target.value); setVoices([]); }, children: [_jsx("option", { value: "", children: "\u8BF7\u9009\u62E9" }), policy.groupIds.map(id => _jsx("option", { value: id, children: id }, id))] })] }), _jsx("div", { className: "dsh-partner-qq-actions", children: _jsx("button", { type: "button", disabled: busy || loading || !group, onClick: () => void load(), children: loading ? '读取中…' : '读取 QQ 音色' }) }), _jsxs("label", { className: "dsh-partner-qq-field", children: [_jsx("span", { children: "\u9ED8\u8BA4\u97F3\u8272" }), _jsxs("select", { disabled: busy, value: policy.voiceCharacter, onChange: e => change({ voiceCharacter: e.target.value }), children: [_jsx("option", { value: "", children: "\u7531\u4F19\u4F34\u6309\u573A\u666F\u9009\u62E9" }), policy.voiceCharacter && !voices.some(v => v.id === policy.voiceCharacter) && _jsxs("option", { value: policy.voiceCharacter, children: ["\u5DF2\u4FDD\u5B58\u97F3\u8272 \u00B7 ", policy.voiceCharacter] }), voices.map(v => _jsxs("option", { value: v.id, children: [v.category, " \u00B7 ", v.name] }, v.id))] })] }), error && _jsx("p", { role: "alert", children: error })] }), _jsx("div", { className: "dsh-partner-qq-capabilities", children: QQ_ACTIONS.filter(a => a.category === category).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.description !== a.title ? a.description : a.effect === 'read' ? '获取资料供伙伴判断使用' : a.effect === 'destructive' ? '允许伙伴自主执行此项管理操作' : '允许伙伴按场景自主使用' }), _jsx("code", { children: a.id })] }), _jsx("em", { "data-effect": a.effect, children: effects[a.effect] })] }, a.id)) })] }), !selected && !!channel.qqActivity?.length && _jsxs("details", { className: "dsh-partner-qq-advanced", children: [_jsx("summary", { children: "\u6700\u8FD1\u64CD\u4F5C\u8BB0\u5F55" }), _jsx("div", { className: "dsh-partner-qq-audit", children: channel.qqActivity.slice(-20).reverse().map(a => _jsxs("div", { children: [_jsx("span", { children: QQ_ACTIONS.find(op => op.id === a.action)?.title ?? a.action }), _jsxs("small", { children: [new Date(a.at).toLocaleString(), " \u00B7 ", a.status === 'confirmed' ? '接口已确认' : a.status === 'pending' ? '已提交,等待确认' : '结果未知,不会自动重发'] })] }, a.id)) })] })] });
23
+ }
24
+ //# sourceMappingURL=qq-capability-settings.js.map