@downcity/plugins 1.0.216 → 1.0.233

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 (702) hide show
  1. package/bin/chat/Action.d.ts +51 -51
  2. package/bin/chat/Action.d.ts.map +1 -1
  3. package/bin/chat/Action.js +109 -108
  4. package/bin/chat/Action.js.map +1 -1
  5. package/bin/chat/ChatPlugin.d.ts +7 -7
  6. package/bin/chat/ChatPlugin.d.ts.map +1 -1
  7. package/bin/chat/ChatPlugin.js +4 -4
  8. package/bin/chat/ChatPlugin.js.map +1 -1
  9. package/bin/chat/Index.d.ts +3 -0
  10. package/bin/chat/Index.d.ts.map +1 -1
  11. package/bin/chat/Index.js +1 -0
  12. package/bin/chat/Index.js.map +1 -1
  13. package/bin/chat/PROMPT.direct.d.ts +1 -1
  14. package/bin/chat/PROMPT.direct.d.ts.map +1 -1
  15. package/bin/chat/PROMPT.direct.js +1 -1
  16. package/bin/chat/PROMPT.direct.js.map +1 -1
  17. package/bin/chat/access/ChatAccessActions.js +6 -6
  18. package/bin/chat/access/ChatAccessActions.js.map +1 -1
  19. package/bin/chat/access/ChatAccessRuntime.d.ts +4 -4
  20. package/bin/chat/access/ChatAccessRuntime.d.ts.map +1 -1
  21. package/bin/chat/access/ChatAccessRuntime.js +1 -1
  22. package/bin/chat/access/ChatAccessRuntime.js.map +1 -1
  23. package/bin/chat/access/ChatAccessStore.js +5 -5
  24. package/bin/chat/access/ChatAccessStore.js.map +1 -1
  25. package/bin/chat/channels/BaseChatChannel.d.ts +17 -17
  26. package/bin/chat/channels/BaseChatChannel.d.ts.map +1 -1
  27. package/bin/chat/channels/BaseChatChannel.js +19 -19
  28. package/bin/chat/channels/BaseChatChannel.js.map +1 -1
  29. package/bin/chat/channels/BaseChatChannelQueue.d.ts +6 -6
  30. package/bin/chat/channels/BaseChatChannelQueue.d.ts.map +1 -1
  31. package/bin/chat/channels/BaseChatChannelQueue.js +32 -32
  32. package/bin/chat/channels/BaseChatChannelQueue.js.map +1 -1
  33. package/bin/chat/channels/BaseChatChannelSupport.d.ts +14 -14
  34. package/bin/chat/channels/BaseChatChannelSupport.d.ts.map +1 -1
  35. package/bin/chat/channels/BaseChatChannelSupport.js +13 -13
  36. package/bin/chat/channels/BaseChatChannelSupport.js.map +1 -1
  37. package/bin/chat/channels/RuntimeChannel.d.ts +23 -28
  38. package/bin/chat/channels/RuntimeChannel.d.ts.map +1 -1
  39. package/bin/chat/channels/RuntimeChannel.js +39 -57
  40. package/bin/chat/channels/RuntimeChannel.js.map +1 -1
  41. package/bin/chat/channels/feishu/Feishu.d.ts +7 -7
  42. package/bin/chat/channels/feishu/Feishu.d.ts.map +1 -1
  43. package/bin/chat/channels/feishu/Feishu.js +31 -31
  44. package/bin/chat/channels/feishu/Feishu.js.map +1 -1
  45. package/bin/chat/channels/feishu/FeishuInbound.js +3 -3
  46. package/bin/chat/channels/feishu/FeishuInbound.js.map +1 -1
  47. package/bin/chat/channels/feishu/FeishuMessageHandler.d.ts +10 -10
  48. package/bin/chat/channels/feishu/FeishuMessageHandler.d.ts.map +1 -1
  49. package/bin/chat/channels/feishu/FeishuMessageHandler.js +17 -17
  50. package/bin/chat/channels/feishu/FeishuMessageHandler.js.map +1 -1
  51. package/bin/chat/channels/feishu/FeishuPlatformClient.d.ts +6 -6
  52. package/bin/chat/channels/feishu/FeishuPlatformClient.d.ts.map +1 -1
  53. package/bin/chat/channels/feishu/FeishuPlatformClient.js +9 -9
  54. package/bin/chat/channels/feishu/FeishuPlatformClient.js.map +1 -1
  55. package/bin/chat/channels/feishu/FeishuPlatformLookup.d.ts +1 -1
  56. package/bin/chat/channels/feishu/FeishuPlatformLookup.d.ts.map +1 -1
  57. package/bin/chat/channels/feishu/FeishuPlatformLookup.js +6 -6
  58. package/bin/chat/channels/feishu/FeishuPlatformLookup.js.map +1 -1
  59. package/bin/chat/channels/feishu/FeishuPlatformMessaging.d.ts +2 -2
  60. package/bin/chat/channels/feishu/FeishuPlatformMessaging.d.ts.map +1 -1
  61. package/bin/chat/channels/feishu/FeishuPlatformMessaging.js +7 -7
  62. package/bin/chat/channels/feishu/FeishuPlatformMessaging.js.map +1 -1
  63. package/bin/chat/channels/feishu/InboundAttachment.d.ts +1 -1
  64. package/bin/chat/channels/feishu/InboundAttachment.d.ts.map +1 -1
  65. package/bin/chat/channels/feishu/InboundAttachment.js +5 -5
  66. package/bin/chat/channels/feishu/InboundAttachment.js.map +1 -1
  67. package/bin/chat/channels/feishu/PostMessage.js +8 -8
  68. package/bin/chat/channels/feishu/PostMessage.js.map +1 -1
  69. package/bin/chat/channels/feishu/ReplyContext.d.ts +1 -1
  70. package/bin/chat/channels/feishu/ReplyContext.d.ts.map +1 -1
  71. package/bin/chat/channels/feishu/ReplyContext.js +2 -2
  72. package/bin/chat/channels/feishu/ReplyContext.js.map +1 -1
  73. package/bin/chat/channels/feishu/Shared.js +3 -3
  74. package/bin/chat/channels/feishu/Shared.js.map +1 -1
  75. package/bin/chat/channels/qq/PROMPT.direct.d.ts +1 -1
  76. package/bin/chat/channels/qq/PROMPT.direct.d.ts.map +1 -1
  77. package/bin/chat/channels/qq/PROMPT.direct.js +1 -1
  78. package/bin/chat/channels/qq/PROMPT.direct.js.map +1 -1
  79. package/bin/chat/channels/qq/QQ.d.ts +3 -3
  80. package/bin/chat/channels/qq/QQ.d.ts.map +1 -1
  81. package/bin/chat/channels/qq/QQ.js +20 -20
  82. package/bin/chat/channels/qq/QQ.js.map +1 -1
  83. package/bin/chat/channels/qq/QQEventCapture.d.ts +1 -1
  84. package/bin/chat/channels/qq/QQEventCapture.d.ts.map +1 -1
  85. package/bin/chat/channels/qq/QQEventCapture.js +3 -3
  86. package/bin/chat/channels/qq/QQEventCapture.js.map +1 -1
  87. package/bin/chat/channels/qq/QQGatewayAuth.d.ts +1 -1
  88. package/bin/chat/channels/qq/QQGatewayAuth.d.ts.map +1 -1
  89. package/bin/chat/channels/qq/QQGatewayClient.d.ts +2 -2
  90. package/bin/chat/channels/qq/QQGatewayClient.d.ts.map +1 -1
  91. package/bin/chat/channels/qq/QQGatewayClient.js +11 -11
  92. package/bin/chat/channels/qq/QQGatewayClient.js.map +1 -1
  93. package/bin/chat/channels/qq/QQGatewayConnection.d.ts +1 -1
  94. package/bin/chat/channels/qq/QQGatewayConnection.d.ts.map +1 -1
  95. package/bin/chat/channels/qq/QQGatewaySend.d.ts +2 -2
  96. package/bin/chat/channels/qq/QQGatewaySend.d.ts.map +1 -1
  97. package/bin/chat/channels/qq/QQGatewaySend.js +3 -3
  98. package/bin/chat/channels/qq/QQGatewaySend.js.map +1 -1
  99. package/bin/chat/channels/qq/QQInbound.js +5 -5
  100. package/bin/chat/channels/qq/QQInbound.js.map +1 -1
  101. package/bin/chat/channels/qq/QQInboundDedupe.d.ts +2 -2
  102. package/bin/chat/channels/qq/QQInboundDedupe.d.ts.map +1 -1
  103. package/bin/chat/channels/qq/QQInboundDedupe.js +5 -5
  104. package/bin/chat/channels/qq/QQInboundDedupe.js.map +1 -1
  105. package/bin/chat/channels/qq/QQMessageHandler.d.ts +9 -9
  106. package/bin/chat/channels/qq/QQMessageHandler.d.ts.map +1 -1
  107. package/bin/chat/channels/qq/QQMessageHandler.js +34 -34
  108. package/bin/chat/channels/qq/QQMessageHandler.js.map +1 -1
  109. package/bin/chat/channels/qq/QQSendSupport.js +2 -2
  110. package/bin/chat/channels/qq/QQSendSupport.js.map +1 -1
  111. package/bin/chat/channels/qq/QQSupport.d.ts +5 -5
  112. package/bin/chat/channels/qq/QQSupport.d.ts.map +1 -1
  113. package/bin/chat/channels/qq/QQSupport.js +5 -5
  114. package/bin/chat/channels/qq/QQSupport.js.map +1 -1
  115. package/bin/chat/channels/qq/types/QqChannel.d.ts +1 -1
  116. package/bin/chat/channels/qq/types/QqChannel.d.ts.map +1 -1
  117. package/bin/chat/channels/telegram/ApiClient.d.ts +2 -2
  118. package/bin/chat/channels/telegram/ApiClient.d.ts.map +1 -1
  119. package/bin/chat/channels/telegram/ApiClient.js +6 -6
  120. package/bin/chat/channels/telegram/ApiClient.js.map +1 -1
  121. package/bin/chat/channels/telegram/Bot.d.ts +4 -4
  122. package/bin/chat/channels/telegram/Bot.d.ts.map +1 -1
  123. package/bin/chat/channels/telegram/Bot.js +14 -14
  124. package/bin/chat/channels/telegram/Bot.js.map +1 -1
  125. package/bin/chat/channels/telegram/BotInfo.js +1 -1
  126. package/bin/chat/channels/telegram/BotInfo.js.map +1 -1
  127. package/bin/chat/channels/telegram/ReplyContext.js +3 -3
  128. package/bin/chat/channels/telegram/ReplyContext.js.map +1 -1
  129. package/bin/chat/channels/telegram/Shared.js +3 -3
  130. package/bin/chat/channels/telegram/Shared.js.map +1 -1
  131. package/bin/chat/channels/telegram/StateStore.d.ts +1 -1
  132. package/bin/chat/channels/telegram/StateStore.d.ts.map +1 -1
  133. package/bin/chat/channels/telegram/StateStore.js +2 -2
  134. package/bin/chat/channels/telegram/StateStore.js.map +1 -1
  135. package/bin/chat/channels/telegram/TelegramInbound.d.ts +3 -3
  136. package/bin/chat/channels/telegram/TelegramInbound.d.ts.map +1 -1
  137. package/bin/chat/channels/telegram/TelegramInbound.js +4 -4
  138. package/bin/chat/channels/telegram/TelegramInbound.js.map +1 -1
  139. package/bin/chat/channels/telegram/TelegramMessageHandler.d.ts +8 -8
  140. package/bin/chat/channels/telegram/TelegramMessageHandler.d.ts.map +1 -1
  141. package/bin/chat/channels/telegram/TelegramMessageHandler.js +25 -25
  142. package/bin/chat/channels/telegram/TelegramMessageHandler.js.map +1 -1
  143. package/bin/chat/channels/telegram/TelegramPendingUpdates.d.ts +2 -2
  144. package/bin/chat/channels/telegram/TelegramPendingUpdates.d.ts.map +1 -1
  145. package/bin/chat/channels/telegram/TelegramPendingUpdates.js +7 -7
  146. package/bin/chat/channels/telegram/TelegramPendingUpdates.js.map +1 -1
  147. package/bin/chat/channels/telegram/TelegramPlatformClient.d.ts +4 -4
  148. package/bin/chat/channels/telegram/TelegramPlatformClient.d.ts.map +1 -1
  149. package/bin/chat/channels/telegram/TelegramPlatformClient.js +7 -7
  150. package/bin/chat/channels/telegram/TelegramPlatformClient.js.map +1 -1
  151. package/bin/chat/config/ChatPluginConfig.d.ts +67 -0
  152. package/bin/chat/config/ChatPluginConfig.d.ts.map +1 -0
  153. package/bin/chat/config/ChatPluginConfig.js +237 -0
  154. package/bin/chat/config/ChatPluginConfig.js.map +1 -0
  155. package/bin/chat/runtime/ChannelContextStore.d.ts +21 -21
  156. package/bin/chat/runtime/ChannelContextStore.d.ts.map +1 -1
  157. package/bin/chat/runtime/ChannelContextStore.js +74 -74
  158. package/bin/chat/runtime/ChannelContextStore.js.map +1 -1
  159. package/bin/chat/runtime/ChatActionExecution.d.ts +23 -23
  160. package/bin/chat/runtime/ChatActionExecution.d.ts.map +1 -1
  161. package/bin/chat/runtime/ChatActionExecution.js +70 -70
  162. package/bin/chat/runtime/ChatActionExecution.js.map +1 -1
  163. package/bin/chat/runtime/ChatActionInput.js +19 -19
  164. package/bin/chat/runtime/ChatActionInput.js.map +1 -1
  165. package/bin/chat/runtime/ChatChannelActions.d.ts +4 -4
  166. package/bin/chat/runtime/ChatChannelActions.d.ts.map +1 -1
  167. package/bin/chat/runtime/ChatChannelConfig.d.ts +4 -4
  168. package/bin/chat/runtime/ChatChannelConfig.d.ts.map +1 -1
  169. package/bin/chat/runtime/ChatChannelConfig.js +9 -9
  170. package/bin/chat/runtime/ChatChannelConfig.js.map +1 -1
  171. package/bin/chat/runtime/ChatChannelCore.d.ts +11 -12
  172. package/bin/chat/runtime/ChatChannelCore.d.ts.map +1 -1
  173. package/bin/chat/runtime/ChatChannelCore.js +5 -17
  174. package/bin/chat/runtime/ChatChannelCore.js.map +1 -1
  175. package/bin/chat/runtime/ChatChannelLifecycle.d.ts +3 -3
  176. package/bin/chat/runtime/ChatChannelLifecycle.d.ts.map +1 -1
  177. package/bin/chat/runtime/ChatChannelLifecycle.js +5 -5
  178. package/bin/chat/runtime/ChatChannelLifecycle.js.map +1 -1
  179. package/bin/chat/runtime/ChatHistoryStore.d.ts +11 -11
  180. package/bin/chat/runtime/ChatHistoryStore.d.ts.map +1 -1
  181. package/bin/chat/runtime/ChatHistoryStore.js +26 -26
  182. package/bin/chat/runtime/ChatHistoryStore.js.map +1 -1
  183. package/bin/chat/runtime/ChatIngressStore.d.ts +4 -4
  184. package/bin/chat/runtime/ChatIngressStore.d.ts.map +1 -1
  185. package/bin/chat/runtime/ChatIngressStore.js +2 -2
  186. package/bin/chat/runtime/ChatIngressStore.js.map +1 -1
  187. package/bin/chat/runtime/ChatMetaStore.d.ts +19 -19
  188. package/bin/chat/runtime/ChatMetaStore.d.ts.map +1 -1
  189. package/bin/chat/runtime/ChatMetaStore.js +27 -27
  190. package/bin/chat/runtime/ChatMetaStore.js.map +1 -1
  191. package/bin/chat/runtime/ChatPluginActionRegistry.d.ts.map +1 -1
  192. package/bin/chat/runtime/ChatPluginActionRegistry.js +53 -59
  193. package/bin/chat/runtime/ChatPluginActionRegistry.js.map +1 -1
  194. package/bin/chat/runtime/ChatPluginSystem.d.ts +4 -4
  195. package/bin/chat/runtime/ChatPluginSystem.d.ts.map +1 -1
  196. package/bin/chat/runtime/ChatPluginSystem.js +5 -5
  197. package/bin/chat/runtime/ChatPluginSystem.js.map +1 -1
  198. package/bin/chat/runtime/ChatQueueReplyDispatch.d.ts +6 -6
  199. package/bin/chat/runtime/ChatQueueReplyDispatch.d.ts.map +1 -1
  200. package/bin/chat/runtime/ChatQueueReplyDispatch.js +41 -41
  201. package/bin/chat/runtime/ChatQueueReplyDispatch.js.map +1 -1
  202. package/bin/chat/runtime/ChatQueueStore.d.ts +3 -3
  203. package/bin/chat/runtime/ChatQueueStore.d.ts.map +1 -1
  204. package/bin/chat/runtime/ChatQueueStore.js +2 -2
  205. package/bin/chat/runtime/ChatQueueStore.js.map +1 -1
  206. package/bin/chat/runtime/ChatQueueWorker.d.ts +2 -2
  207. package/bin/chat/runtime/ChatQueueWorker.d.ts.map +1 -1
  208. package/bin/chat/runtime/ChatQueueWorker.js +30 -32
  209. package/bin/chat/runtime/ChatQueueWorker.js.map +1 -1
  210. package/bin/chat/runtime/ChatQueueWorkerSupport.d.ts +1 -1
  211. package/bin/chat/runtime/ChatQueueWorkerSupport.js +15 -15
  212. package/bin/chat/runtime/ChatQueueWorkerSupport.js.map +1 -1
  213. package/bin/chat/runtime/ChatSendActionInput.js +51 -51
  214. package/bin/chat/runtime/ChatSendActionInput.js.map +1 -1
  215. package/bin/chat/runtime/ChatSendMetadata.d.ts +1 -1
  216. package/bin/chat/runtime/ChatSendMetadata.js +12 -12
  217. package/bin/chat/runtime/ChatSendMetadata.js.map +1 -1
  218. package/bin/chat/runtime/ChatSendRegistry.d.ts +1 -1
  219. package/bin/chat/runtime/ChatSessionDelete.d.ts +7 -7
  220. package/bin/chat/runtime/ChatSessionDelete.d.ts.map +1 -1
  221. package/bin/chat/runtime/ChatSessionDelete.js +15 -15
  222. package/bin/chat/runtime/ChatSessionDelete.js.map +1 -1
  223. package/bin/chat/runtime/ChatStorage.d.ts +1 -1
  224. package/bin/chat/runtime/ChatStorage.js +3 -3
  225. package/bin/chat/runtime/ChatStorage.js.map +1 -1
  226. package/bin/chat/runtime/ChatkeySend.d.ts +21 -21
  227. package/bin/chat/runtime/ChatkeySend.d.ts.map +1 -1
  228. package/bin/chat/runtime/ChatkeySend.js +33 -33
  229. package/bin/chat/runtime/ChatkeySend.js.map +1 -1
  230. package/bin/chat/runtime/DirectDispatchParser.d.ts +2 -2
  231. package/bin/chat/runtime/DirectDispatchParser.js +20 -20
  232. package/bin/chat/runtime/DirectDispatchParser.js.map +1 -1
  233. package/bin/chat/runtime/EnqueueDispatch.d.ts +3 -3
  234. package/bin/chat/runtime/EnqueueDispatch.d.ts.map +1 -1
  235. package/bin/chat/runtime/InboundAugment.d.ts +3 -3
  236. package/bin/chat/runtime/InboundAugment.d.ts.map +1 -1
  237. package/bin/chat/runtime/InboundAugment.js +6 -6
  238. package/bin/chat/runtime/InboundAugment.js.map +1 -1
  239. package/bin/chat/runtime/QueuedUserMessage.js +5 -5
  240. package/bin/chat/runtime/QueuedUserMessage.js.map +1 -1
  241. package/bin/chat/runtime/ReplyContextFormatter.js +7 -7
  242. package/bin/chat/runtime/ReplyContextFormatter.js.map +1 -1
  243. package/bin/chat/runtime/ReplyDispatch.d.ts +7 -7
  244. package/bin/chat/runtime/ReplyDispatch.d.ts.map +1 -1
  245. package/bin/chat/runtime/ReplyDispatch.js +3 -3
  246. package/bin/chat/runtime/ReplyDispatch.js.map +1 -1
  247. package/bin/chat/runtime/SystemPrompt.d.ts +4 -4
  248. package/bin/chat/runtime/SystemPrompt.d.ts.map +1 -1
  249. package/bin/chat/runtime/SystemPrompt.js +10 -10
  250. package/bin/chat/runtime/SystemPrompt.js.map +1 -1
  251. package/bin/chat/types/ChannelContext.d.ts +11 -11
  252. package/bin/chat/types/ChannelContext.d.ts.map +1 -1
  253. package/bin/chat/types/ChannelContext.js +2 -2
  254. package/bin/chat/types/ChatCommand.d.ts +31 -31
  255. package/bin/chat/types/ChatCommand.d.ts.map +1 -1
  256. package/bin/chat/types/ChatDispatcher.d.ts +3 -3
  257. package/bin/chat/types/ChatDispatcher.d.ts.map +1 -1
  258. package/bin/chat/types/ChatHistory.d.ts +2 -2
  259. package/bin/chat/types/ChatHistory.d.ts.map +1 -1
  260. package/bin/chat/types/ChatMeta.d.ts +4 -4
  261. package/bin/chat/types/ChatMeta.d.ts.map +1 -1
  262. package/bin/chat/types/ChatMeta.js +1 -1
  263. package/bin/chat/types/ChatPlugin.d.ts +9 -9
  264. package/bin/chat/types/ChatPlugin.d.ts.map +1 -1
  265. package/bin/chat/types/ChatPluginActionPayload.d.ts +13 -13
  266. package/bin/chat/types/ChatPluginActionPayload.d.ts.map +1 -1
  267. package/bin/chat/types/ChatPluginOptions.d.ts +6 -6
  268. package/bin/chat/types/ChatPluginOptions.d.ts.map +1 -1
  269. package/bin/chat/types/ChatPluginResource.d.ts +68 -0
  270. package/bin/chat/types/ChatPluginResource.d.ts.map +1 -0
  271. package/bin/chat/types/ChatPluginResource.js +10 -0
  272. package/bin/chat/types/ChatPluginResource.js.map +1 -0
  273. package/bin/chat/types/ChatPromptContext.d.ts +8 -8
  274. package/bin/chat/types/ChatPromptContext.d.ts.map +1 -1
  275. package/bin/chat/types/ChatQueue.d.ts +2 -2
  276. package/bin/chat/types/ChatQueue.d.ts.map +1 -1
  277. package/bin/chat/types/ChatQueueWorker.d.ts +3 -3
  278. package/bin/chat/types/ChatQueueWorker.d.ts.map +1 -1
  279. package/bin/chat/types/ChatRuntimeAccount.d.ts +39 -0
  280. package/bin/chat/types/ChatRuntimeAccount.d.ts.map +1 -0
  281. package/bin/chat/types/ChatRuntimeAccount.js +10 -0
  282. package/bin/chat/types/ChatRuntimeAccount.js.map +1 -0
  283. package/bin/chat/types/DirectDispatch.d.ts +13 -13
  284. package/bin/chat/types/DirectDispatch.d.ts.map +1 -1
  285. package/bin/chat/types/DirectDispatch.js +1 -1
  286. package/bin/chat/types/FeishuInboundAttachment.d.ts +1 -1
  287. package/bin/chat/types/FeishuInboundAttachment.d.ts.map +1 -1
  288. package/bin/chat/types/QqInboundDedupe.d.ts +1 -1
  289. package/bin/chat/types/QqInboundDedupe.d.ts.map +1 -1
  290. package/bin/chat/types/ReplyContext.d.ts +1 -1
  291. package/bin/chat/types/ReplyContext.d.ts.map +1 -1
  292. package/bin/chat.d.ts +4 -3
  293. package/bin/chat.d.ts.map +1 -1
  294. package/bin/chat.js +2 -2
  295. package/bin/chat.js.map +1 -1
  296. package/bin/contact/Action.d.ts +11 -11
  297. package/bin/contact/Action.d.ts.map +1 -1
  298. package/bin/contact/Action.js +27 -27
  299. package/bin/contact/Action.js.map +1 -1
  300. package/bin/contact/ContactPlugin.js +33 -33
  301. package/bin/contact/ContactPlugin.js.map +1 -1
  302. package/bin/contact/runtime/ChatRuntime.d.ts +2 -2
  303. package/bin/contact/runtime/ChatRuntime.d.ts.map +1 -1
  304. package/bin/contact/runtime/ChatRuntime.js +8 -23
  305. package/bin/contact/runtime/ChatRuntime.js.map +1 -1
  306. package/bin/contact/runtime/ContactStore.d.ts +8 -8
  307. package/bin/contact/runtime/ContactStore.d.ts.map +1 -1
  308. package/bin/contact/runtime/ContactStore.js +24 -24
  309. package/bin/contact/runtime/ContactStore.js.map +1 -1
  310. package/bin/contact/runtime/InboxStore.d.ts +6 -6
  311. package/bin/contact/runtime/InboxStore.d.ts.map +1 -1
  312. package/bin/contact/runtime/InboxStore.js +16 -16
  313. package/bin/contact/runtime/InboxStore.js.map +1 -1
  314. package/bin/contact/runtime/LinkApproval.js +17 -17
  315. package/bin/contact/runtime/LinkApproval.js.map +1 -1
  316. package/bin/contact/runtime/LinkCode.d.ts +1 -1
  317. package/bin/contact/runtime/LinkCode.d.ts.map +1 -1
  318. package/bin/contact/runtime/LinkCode.js +6 -6
  319. package/bin/contact/runtime/LinkCode.js.map +1 -1
  320. package/bin/contact/runtime/LinkStore.d.ts +2 -2
  321. package/bin/contact/runtime/LinkStore.d.ts.map +1 -1
  322. package/bin/contact/runtime/LinkStore.js +7 -7
  323. package/bin/contact/runtime/LinkStore.js.map +1 -1
  324. package/bin/contact/runtime/Paths.d.ts +14 -14
  325. package/bin/contact/runtime/Paths.d.ts.map +1 -1
  326. package/bin/contact/runtime/Paths.js +28 -28
  327. package/bin/contact/runtime/Paths.js.map +1 -1
  328. package/bin/contact/runtime/RemoteClient.d.ts +1 -1
  329. package/bin/contact/runtime/RemoteClient.js +18 -18
  330. package/bin/contact/runtime/RemoteClient.js.map +1 -1
  331. package/bin/contact/runtime/ShareBundle.d.ts +3 -3
  332. package/bin/contact/runtime/ShareBundle.d.ts.map +1 -1
  333. package/bin/contact/runtime/ShareBundle.js +5 -5
  334. package/bin/contact/runtime/ShareBundle.js.map +1 -1
  335. package/bin/contact/types/Contact.d.ts +2 -2
  336. package/bin/contact/types/Contact.d.ts.map +1 -1
  337. package/bin/contact/types/ContactApproval.d.ts +2 -2
  338. package/bin/contact/types/ContactApproval.d.ts.map +1 -1
  339. package/bin/contact/types/ContactChat.d.ts +1 -1
  340. package/bin/contact/types/ContactChat.d.ts.map +1 -1
  341. package/bin/contact/types/ContactLink.d.ts +4 -4
  342. package/bin/contact/types/ContactLink.d.ts.map +1 -1
  343. package/bin/image/ImagePlugin.d.ts +3 -3
  344. package/bin/image/ImagePlugin.d.ts.map +1 -1
  345. package/bin/image/ImagePlugin.js +25 -10
  346. package/bin/image/ImagePlugin.js.map +1 -1
  347. package/bin/image/types/ImagePlugin.d.ts +3 -3
  348. package/bin/image/types/ImagePlugin.d.ts.map +1 -1
  349. package/bin/image/types/ImagePlugin.js +1 -1
  350. package/bin/memory/Action.d.ts +7 -7
  351. package/bin/memory/Action.d.ts.map +1 -1
  352. package/bin/memory/Action.js +11 -11
  353. package/bin/memory/Action.js.map +1 -1
  354. package/bin/memory/MemoryPlugin.d.ts +3 -3
  355. package/bin/memory/MemoryPlugin.d.ts.map +1 -1
  356. package/bin/memory/MemoryPlugin.js +21 -21
  357. package/bin/memory/MemoryPlugin.js.map +1 -1
  358. package/bin/memory/runtime/Search.d.ts +3 -3
  359. package/bin/memory/runtime/Search.d.ts.map +1 -1
  360. package/bin/memory/runtime/Search.js +2 -2
  361. package/bin/memory/runtime/Search.js.map +1 -1
  362. package/bin/memory/runtime/Store.d.ts +2 -2
  363. package/bin/memory/runtime/Store.d.ts.map +1 -1
  364. package/bin/memory/runtime/Store.js +1 -1
  365. package/bin/memory/runtime/Store.js.map +1 -1
  366. package/bin/memory/runtime/SystemProvider.d.ts +3 -3
  367. package/bin/memory/runtime/SystemProvider.d.ts.map +1 -1
  368. package/bin/memory/runtime/SystemProvider.js +1 -1
  369. package/bin/memory/runtime/SystemProvider.js.map +1 -1
  370. package/bin/memory/runtime/Writer.d.ts +8 -8
  371. package/bin/memory/runtime/Writer.d.ts.map +1 -1
  372. package/bin/memory/runtime/Writer.js +14 -14
  373. package/bin/memory/runtime/Writer.js.map +1 -1
  374. package/bin/memory/types/Memory.d.ts +3 -3
  375. package/bin/memory/types/Memory.d.ts.map +1 -1
  376. package/bin/skill/Action.d.ts +4 -4
  377. package/bin/skill/Action.d.ts.map +1 -1
  378. package/bin/skill/Action.js +9 -9
  379. package/bin/skill/Action.js.map +1 -1
  380. package/bin/skill/Plugin.js +16 -16
  381. package/bin/skill/Plugin.js.map +1 -1
  382. package/bin/skill/runtime/Discovery.d.ts +2 -2
  383. package/bin/skill/runtime/Discovery.d.ts.map +1 -1
  384. package/bin/skill/runtime/Discovery.js +3 -3
  385. package/bin/skill/runtime/Discovery.js.map +1 -1
  386. package/bin/skill/runtime/Paths.d.ts +1 -1
  387. package/bin/skill/runtime/Paths.d.ts.map +1 -1
  388. package/bin/skill/runtime/Paths.js +6 -6
  389. package/bin/skill/runtime/Paths.js.map +1 -1
  390. package/bin/skill/runtime/Store.d.ts +3 -3
  391. package/bin/skill/runtime/Store.d.ts.map +1 -1
  392. package/bin/skill/runtime/Store.js +19 -19
  393. package/bin/skill/runtime/Store.js.map +1 -1
  394. package/bin/skill/runtime/SystemProvider.d.ts +2 -2
  395. package/bin/skill/runtime/SystemProvider.d.ts.map +1 -1
  396. package/bin/skill/runtime/SystemProvider.js +4 -4
  397. package/bin/skill/runtime/SystemProvider.js.map +1 -1
  398. package/bin/skill/runtime/Types.d.ts +3 -3
  399. package/bin/skill/runtime/Types.d.ts.map +1 -1
  400. package/bin/sound/Plugin.d.ts +5 -5
  401. package/bin/sound/Plugin.d.ts.map +1 -1
  402. package/bin/sound/Plugin.js +23 -11
  403. package/bin/sound/Plugin.js.map +1 -1
  404. package/bin/task/Action.d.ts +10 -10
  405. package/bin/task/Action.d.ts.map +1 -1
  406. package/bin/task/Action.js +31 -31
  407. package/bin/task/Action.js.map +1 -1
  408. package/bin/task/PROMPT.d.ts +1 -1
  409. package/bin/task/PROMPT.d.ts.map +1 -1
  410. package/bin/task/PROMPT.js +1 -1
  411. package/bin/task/PROMPT.js.map +1 -1
  412. package/bin/task/Scheduler.d.ts +2 -2
  413. package/bin/task/Scheduler.d.ts.map +1 -1
  414. package/bin/task/Scheduler.js +8 -8
  415. package/bin/task/Scheduler.js.map +1 -1
  416. package/bin/task/TaskPlugin.d.ts +3 -3
  417. package/bin/task/TaskPlugin.d.ts.map +1 -1
  418. package/bin/task/TaskPlugin.js +23 -20
  419. package/bin/task/TaskPlugin.js.map +1 -1
  420. package/bin/task/runtime/Model.d.ts +2 -2
  421. package/bin/task/runtime/Model.d.ts.map +1 -1
  422. package/bin/task/runtime/Model.js +11 -11
  423. package/bin/task/runtime/Model.js.map +1 -1
  424. package/bin/task/runtime/Paths.d.ts +6 -6
  425. package/bin/task/runtime/Paths.d.ts.map +1 -1
  426. package/bin/task/runtime/Paths.js +11 -11
  427. package/bin/task/runtime/Paths.js.map +1 -1
  428. package/bin/task/runtime/Runner.d.ts +4 -4
  429. package/bin/task/runtime/Runner.d.ts.map +1 -1
  430. package/bin/task/runtime/Runner.js +17 -17
  431. package/bin/task/runtime/Runner.js.map +1 -1
  432. package/bin/task/runtime/Store.d.ts +7 -7
  433. package/bin/task/runtime/Store.d.ts.map +1 -1
  434. package/bin/task/runtime/Store.js +15 -15
  435. package/bin/task/runtime/Store.js.map +1 -1
  436. package/bin/task/runtime/TaskActionExecution.d.ts +12 -12
  437. package/bin/task/runtime/TaskActionExecution.d.ts.map +1 -1
  438. package/bin/task/runtime/TaskActionExecution.js +7 -7
  439. package/bin/task/runtime/TaskActionExecution.js.map +1 -1
  440. package/bin/task/runtime/TaskActionInput.js +10 -10
  441. package/bin/task/runtime/TaskActionInput.js.map +1 -1
  442. package/bin/task/runtime/TaskPluginActionRegistry.js +26 -26
  443. package/bin/task/runtime/TaskPluginActionRegistry.js.map +1 -1
  444. package/bin/task/runtime/TaskRunArtifacts.js +4 -4
  445. package/bin/task/runtime/TaskRunArtifacts.js.map +1 -1
  446. package/bin/task/runtime/TaskRunChatDispatch.d.ts +2 -2
  447. package/bin/task/runtime/TaskRunChatDispatch.d.ts.map +1 -1
  448. package/bin/task/runtime/TaskRunChatDispatch.js +7 -7
  449. package/bin/task/runtime/TaskRunChatDispatch.js.map +1 -1
  450. package/bin/task/runtime/TaskRunnerProgress.js +1 -1
  451. package/bin/task/runtime/TaskRunnerProgress.js.map +1 -1
  452. package/bin/task/runtime/TaskRunnerRound.d.ts +7 -7
  453. package/bin/task/runtime/TaskRunnerRound.d.ts.map +1 -1
  454. package/bin/task/runtime/TaskRunnerRound.js +34 -38
  455. package/bin/task/runtime/TaskRunnerRound.js.map +1 -1
  456. package/bin/task/runtime/TaskRunnerScript.d.ts +4 -4
  457. package/bin/task/runtime/TaskRunnerScript.d.ts.map +1 -1
  458. package/bin/task/runtime/TaskRunnerScript.js +1 -1
  459. package/bin/task/runtime/TaskRunnerScript.js.map +1 -1
  460. package/bin/task/runtime/TaskRunnerSession.d.ts +8 -8
  461. package/bin/task/runtime/TaskRunnerSession.d.ts.map +1 -1
  462. package/bin/task/runtime/TaskRunnerSession.js +52 -39
  463. package/bin/task/runtime/TaskRunnerSession.js.map +1 -1
  464. package/bin/task/runtime/TaskRunnerTypes.d.ts +5 -5
  465. package/bin/task/runtime/TaskRunnerTypes.d.ts.map +1 -1
  466. package/bin/task/types/Task.d.ts +4 -4
  467. package/bin/task/types/Task.d.ts.map +1 -1
  468. package/bin/task/types/TaskCommand.d.ts +3 -3
  469. package/bin/task/types/TaskCommand.d.ts.map +1 -1
  470. package/bin/web/Plugin.d.ts +2 -2
  471. package/bin/web/Plugin.d.ts.map +1 -1
  472. package/bin/web/Plugin.js +3 -3
  473. package/bin/web/Plugin.js.map +1 -1
  474. package/bin/workboard/Plugin.d.ts.map +1 -1
  475. package/bin/workboard/Plugin.js +6 -7
  476. package/bin/workboard/Plugin.js.map +1 -1
  477. package/bin/workboard/runtime/Collector.d.ts +2 -2
  478. package/bin/workboard/runtime/Collector.d.ts.map +1 -1
  479. package/bin/workboard/runtime/Collector.js +4 -4
  480. package/bin/workboard/runtime/Collector.js.map +1 -1
  481. package/bin/workboard/runtime/Normalizer.d.ts +3 -3
  482. package/bin/workboard/runtime/Normalizer.d.ts.map +1 -1
  483. package/bin/workboard/runtime/Normalizer.js +11 -11
  484. package/bin/workboard/runtime/Normalizer.js.map +1 -1
  485. package/bin/workboard/runtime/SessionSummary.d.ts +5 -5
  486. package/bin/workboard/runtime/SessionSummary.d.ts.map +1 -1
  487. package/bin/workboard/runtime/SessionSummary.js +4 -4
  488. package/bin/workboard/runtime/SessionSummary.js.map +1 -1
  489. package/bin/workboard/runtime/Store.d.ts +5 -5
  490. package/bin/workboard/runtime/Store.d.ts.map +1 -1
  491. package/bin/workboard/runtime/Store.js.map +1 -1
  492. package/bin/workboard/types/Workboard.d.ts +2 -2
  493. package/bin/workboard/types/Workboard.d.ts.map +1 -1
  494. package/bin/workboard/types/Workboard.js +1 -1
  495. package/package.json +3 -3
  496. package/scripts/chat-access.test.mjs +2 -2
  497. package/scripts/chat-channel-config.test.mjs +25 -3
  498. package/scripts/chat-storage.test.mjs +7 -7
  499. package/scripts/skill-plugin.test.mjs +4 -4
  500. package/scripts/sound-plugin.test.mjs +12 -8
  501. package/scripts/web-plugin.test.mjs +4 -4
  502. package/src/chat/Action.ts +154 -153
  503. package/src/chat/ChatPlugin.ts +12 -12
  504. package/src/chat/Index.ts +12 -0
  505. package/src/chat/PROMPT.direct.ts +1 -1
  506. package/src/chat/access/ChatAccessActions.ts +6 -6
  507. package/src/chat/access/ChatAccessRuntime.ts +5 -5
  508. package/src/chat/access/ChatAccessStore.ts +5 -5
  509. package/src/chat/channels/BaseChatChannel.ts +32 -32
  510. package/src/chat/channels/BaseChatChannelQueue.ts +38 -38
  511. package/src/chat/channels/BaseChatChannelSupport.ts +25 -25
  512. package/src/chat/channels/RuntimeChannel.ts +53 -74
  513. package/src/chat/channels/feishu/Feishu.ts +35 -35
  514. package/src/chat/channels/feishu/FeishuInbound.ts +3 -3
  515. package/src/chat/channels/feishu/FeishuMessageHandler.ts +29 -29
  516. package/src/chat/channels/feishu/FeishuPlatformClient.ts +15 -15
  517. package/src/chat/channels/feishu/FeishuPlatformLookup.ts +7 -7
  518. package/src/chat/channels/feishu/FeishuPlatformMessaging.ts +7 -7
  519. package/src/chat/channels/feishu/InboundAttachment.ts +6 -6
  520. package/src/chat/channels/feishu/PostMessage.ts +8 -8
  521. package/src/chat/channels/feishu/ReplyContext.ts +3 -3
  522. package/src/chat/channels/feishu/Shared.ts +3 -3
  523. package/src/chat/channels/qq/PROMPT.direct.ts +1 -1
  524. package/src/chat/channels/qq/QQ.ts +26 -26
  525. package/src/chat/channels/qq/QQEventCapture.ts +3 -3
  526. package/src/chat/channels/qq/QQGatewayAuth.ts +1 -1
  527. package/src/chat/channels/qq/QQGatewayClient.ts +12 -12
  528. package/src/chat/channels/qq/QQGatewayConnection.ts +1 -1
  529. package/src/chat/channels/qq/QQGatewaySend.ts +6 -6
  530. package/src/chat/channels/qq/QQInbound.ts +5 -5
  531. package/src/chat/channels/qq/QQInboundDedupe.ts +6 -6
  532. package/src/chat/channels/qq/QQMessageHandler.ts +43 -43
  533. package/src/chat/channels/qq/QQSendSupport.ts +2 -2
  534. package/src/chat/channels/qq/QQSupport.ts +10 -10
  535. package/src/chat/channels/qq/types/QqChannel.ts +1 -1
  536. package/src/chat/channels/telegram/ApiClient.ts +7 -7
  537. package/src/chat/channels/telegram/Bot.ts +17 -17
  538. package/src/chat/channels/telegram/BotInfo.ts +1 -1
  539. package/src/chat/channels/telegram/ReplyContext.ts +3 -3
  540. package/src/chat/channels/telegram/Shared.ts +3 -3
  541. package/src/chat/channels/telegram/StateStore.ts +2 -2
  542. package/src/chat/channels/telegram/TelegramInbound.ts +4 -4
  543. package/src/chat/channels/telegram/TelegramMessageHandler.ts +35 -35
  544. package/src/chat/channels/telegram/TelegramPendingUpdates.ts +9 -9
  545. package/src/chat/channels/telegram/TelegramPlatformClient.ts +11 -11
  546. package/src/chat/config/ChatPluginConfig.ts +266 -0
  547. package/src/chat/runtime/ChannelContextStore.ts +88 -88
  548. package/src/chat/runtime/ChatActionExecution.ts +87 -87
  549. package/src/chat/runtime/ChatActionInput.ts +19 -19
  550. package/src/chat/runtime/ChatChannelActions.ts +4 -4
  551. package/src/chat/runtime/ChatChannelConfig.ts +14 -14
  552. package/src/chat/runtime/ChatChannelCore.ts +17 -26
  553. package/src/chat/runtime/ChatChannelLifecycle.ts +12 -12
  554. package/src/chat/runtime/ChatHistoryStore.ts +39 -39
  555. package/src/chat/runtime/ChatIngressStore.ts +6 -6
  556. package/src/chat/runtime/ChatMetaStore.ts +37 -37
  557. package/src/chat/runtime/ChatPluginActionRegistry.ts +56 -62
  558. package/src/chat/runtime/ChatPluginSystem.ts +9 -9
  559. package/src/chat/runtime/ChatQueueReplyDispatch.ts +47 -47
  560. package/src/chat/runtime/ChatQueueStore.ts +4 -4
  561. package/src/chat/runtime/ChatQueueWorker.ts +38 -44
  562. package/src/chat/runtime/ChatQueueWorkerSupport.ts +18 -18
  563. package/src/chat/runtime/ChatSendActionInput.ts +53 -53
  564. package/src/chat/runtime/ChatSendMetadata.ts +15 -15
  565. package/src/chat/runtime/ChatSendRegistry.ts +1 -1
  566. package/src/chat/runtime/ChatSessionDelete.ts +19 -19
  567. package/src/chat/runtime/ChatStorage.ts +3 -3
  568. package/src/chat/runtime/ChatkeySend.ts +43 -43
  569. package/src/chat/runtime/DirectDispatchParser.ts +21 -21
  570. package/src/chat/runtime/EnqueueDispatch.ts +3 -3
  571. package/src/chat/runtime/InboundAugment.ts +8 -8
  572. package/src/chat/runtime/QueuedUserMessage.ts +6 -6
  573. package/src/chat/runtime/ReplyContextFormatter.ts +6 -6
  574. package/src/chat/runtime/ReplyDispatch.ts +9 -9
  575. package/src/chat/runtime/SystemPrompt.ts +14 -14
  576. package/src/chat/types/ChannelContext.ts +11 -11
  577. package/src/chat/types/ChatCommand.ts +31 -31
  578. package/src/chat/types/ChatDispatcher.ts +3 -3
  579. package/src/chat/types/ChatHistory.ts +2 -2
  580. package/src/chat/types/ChatMeta.ts +4 -4
  581. package/src/chat/types/ChatPlugin.ts +9 -9
  582. package/src/chat/types/ChatPluginActionPayload.ts +13 -13
  583. package/src/chat/types/ChatPluginOptions.ts +6 -6
  584. package/src/chat/types/ChatPluginResource.ts +95 -0
  585. package/src/chat/types/ChatPromptContext.ts +8 -8
  586. package/src/chat/types/ChatQueue.ts +2 -2
  587. package/src/chat/types/ChatQueueWorker.ts +3 -3
  588. package/src/chat/types/ChatRuntimeAccount.ts +52 -0
  589. package/src/chat/types/DirectDispatch.ts +13 -13
  590. package/src/chat/types/FeishuInboundAttachment.ts +1 -1
  591. package/src/chat/types/QqInboundDedupe.ts +1 -1
  592. package/src/chat/types/ReplyContext.ts +1 -1
  593. package/src/chat.ts +13 -3
  594. package/src/contact/Action.ts +40 -40
  595. package/src/contact/ContactPlugin.ts +49 -49
  596. package/src/contact/runtime/ChatRuntime.ts +10 -26
  597. package/src/contact/runtime/ContactStore.ts +24 -24
  598. package/src/contact/runtime/InboxStore.ts +16 -16
  599. package/src/contact/runtime/LinkApproval.ts +19 -19
  600. package/src/contact/runtime/LinkCode.ts +7 -7
  601. package/src/contact/runtime/LinkStore.ts +7 -7
  602. package/src/contact/runtime/Paths.ts +28 -28
  603. package/src/contact/runtime/RemoteClient.ts +19 -19
  604. package/src/contact/runtime/ShareBundle.ts +8 -8
  605. package/src/contact/types/Contact.ts +2 -2
  606. package/src/contact/types/ContactApproval.ts +2 -2
  607. package/src/contact/types/ContactChat.ts +1 -1
  608. package/src/contact/types/ContactLink.ts +4 -4
  609. package/src/image/ImagePlugin.ts +32 -16
  610. package/src/image/types/ImagePlugin.ts +3 -3
  611. package/src/memory/Action.ts +18 -18
  612. package/src/memory/MemoryPlugin.ts +25 -25
  613. package/src/memory/runtime/Search.ts +6 -6
  614. package/src/memory/runtime/Store.ts +3 -3
  615. package/src/memory/runtime/SystemProvider.ts +4 -4
  616. package/src/memory/runtime/Writer.ts +24 -24
  617. package/src/memory/types/Memory.ts +3 -3
  618. package/src/skill/Action.ts +10 -10
  619. package/src/skill/Plugin.ts +16 -16
  620. package/src/skill/runtime/Discovery.ts +3 -3
  621. package/src/skill/runtime/Paths.ts +6 -6
  622. package/src/skill/runtime/Store.ts +19 -19
  623. package/src/skill/runtime/SystemProvider.ts +5 -5
  624. package/src/skill/runtime/Types.ts +3 -3
  625. package/src/sound/Plugin.ts +31 -18
  626. package/src/task/Action.ts +40 -40
  627. package/src/task/PROMPT.ts +1 -1
  628. package/src/task/Scheduler.ts +10 -10
  629. package/src/task/TaskPlugin.ts +32 -30
  630. package/src/task/runtime/Model.ts +12 -12
  631. package/src/task/runtime/Paths.ts +11 -11
  632. package/src/task/runtime/Runner.ts +21 -21
  633. package/src/task/runtime/Store.ts +21 -21
  634. package/src/task/runtime/TaskActionExecution.ts +19 -19
  635. package/src/task/runtime/TaskActionInput.ts +10 -10
  636. package/src/task/runtime/TaskPluginActionRegistry.ts +27 -27
  637. package/src/task/runtime/TaskRunArtifacts.ts +4 -4
  638. package/src/task/runtime/TaskRunChatDispatch.ts +9 -9
  639. package/src/task/runtime/TaskRunnerProgress.ts +1 -1
  640. package/src/task/runtime/TaskRunnerRound.ts +47 -42
  641. package/src/task/runtime/TaskRunnerScript.ts +5 -5
  642. package/src/task/runtime/TaskRunnerSession.ts +58 -46
  643. package/src/task/runtime/TaskRunnerTypes.ts +5 -5
  644. package/src/task/types/Task.ts +4 -4
  645. package/src/task/types/TaskCommand.ts +3 -3
  646. package/src/web/Plugin.ts +5 -5
  647. package/src/workboard/Plugin.ts +8 -9
  648. package/src/workboard/runtime/Collector.ts +6 -6
  649. package/src/workboard/runtime/Normalizer.ts +14 -14
  650. package/src/workboard/runtime/SessionSummary.ts +9 -9
  651. package/src/workboard/runtime/Store.ts +6 -6
  652. package/src/workboard/types/Workboard.ts +2 -2
  653. package/bin/chat/accounts/ChannelAccountManager.d.ts +0 -61
  654. package/bin/chat/accounts/ChannelAccountManager.d.ts.map +0 -1
  655. package/bin/chat/accounts/ChannelAccountManager.js +0 -264
  656. package/bin/chat/accounts/ChannelAccountManager.js.map +0 -1
  657. package/bin/chat/accounts/Crypto.d.ts +0 -20
  658. package/bin/chat/accounts/Crypto.d.ts.map +0 -1
  659. package/bin/chat/accounts/Crypto.js +0 -75
  660. package/bin/chat/accounts/Crypto.js.map +0 -1
  661. package/bin/chat/accounts/Store.d.ts +0 -38
  662. package/bin/chat/accounts/Store.d.ts.map +0 -1
  663. package/bin/chat/accounts/Store.js +0 -220
  664. package/bin/chat/accounts/Store.js.map +0 -1
  665. package/bin/chat/channels/Configuration.d.ts +0 -27
  666. package/bin/chat/channels/Configuration.d.ts.map +0 -1
  667. package/bin/chat/channels/Configuration.js +0 -19
  668. package/bin/chat/channels/Configuration.js.map +0 -1
  669. package/bin/chat/channels/ConfigurationRegistry.d.ts +0 -18
  670. package/bin/chat/channels/ConfigurationRegistry.d.ts.map +0 -1
  671. package/bin/chat/channels/ConfigurationRegistry.js +0 -31
  672. package/bin/chat/channels/ConfigurationRegistry.js.map +0 -1
  673. package/bin/chat/channels/feishu/Configuration.d.ts +0 -17
  674. package/bin/chat/channels/feishu/Configuration.d.ts.map +0 -1
  675. package/bin/chat/channels/feishu/Configuration.js +0 -59
  676. package/bin/chat/channels/feishu/Configuration.js.map +0 -1
  677. package/bin/chat/channels/qq/Configuration.d.ts +0 -17
  678. package/bin/chat/channels/qq/Configuration.d.ts.map +0 -1
  679. package/bin/chat/channels/qq/Configuration.js +0 -59
  680. package/bin/chat/channels/qq/Configuration.js.map +0 -1
  681. package/bin/chat/channels/telegram/Configuration.d.ts +0 -17
  682. package/bin/chat/channels/telegram/Configuration.d.ts.map +0 -1
  683. package/bin/chat/channels/telegram/Configuration.js +0 -59
  684. package/bin/chat/channels/telegram/Configuration.js.map +0 -1
  685. package/bin/chat/types/ChannelAccount.d.ts +0 -226
  686. package/bin/chat/types/ChannelAccount.d.ts.map +0 -1
  687. package/bin/chat/types/ChannelAccount.js +0 -9
  688. package/bin/chat/types/ChannelAccount.js.map +0 -1
  689. package/bin/chat/types/ChannelConfiguration.d.ts +0 -146
  690. package/bin/chat/types/ChannelConfiguration.d.ts.map +0 -1
  691. package/bin/chat/types/ChannelConfiguration.js +0 -9
  692. package/bin/chat/types/ChannelConfiguration.js.map +0 -1
  693. package/src/chat/accounts/ChannelAccountManager.ts +0 -314
  694. package/src/chat/accounts/Crypto.ts +0 -83
  695. package/src/chat/accounts/Store.ts +0 -287
  696. package/src/chat/channels/Configuration.ts +0 -35
  697. package/src/chat/channels/ConfigurationRegistry.ts +0 -43
  698. package/src/chat/channels/feishu/Configuration.ts +0 -65
  699. package/src/chat/channels/qq/Configuration.ts +0 -64
  700. package/src/chat/channels/telegram/Configuration.ts +0 -65
  701. package/src/chat/types/ChannelAccount.ts +0 -232
  702. package/src/chat/types/ChannelConfiguration.ts +0 -160
@@ -9,7 +9,7 @@
9
9
 
10
10
  import path from "path";
11
11
  import type { Logger } from "@downcity/agent";
12
- import type { AgentContext } from "@downcity/agent";
12
+ import type { PluginContext } from "@downcity/agent";
13
13
  import type { JsonObject } from "@downcity/agent";
14
14
  import type {
15
15
  IncomingChatAccessParams,
@@ -24,7 +24,7 @@ import {
24
24
  augmentChatInboundInput,
25
25
  buildChatInboundText,
26
26
  } from "@/chat/runtime/InboundAugment.js";
27
- import { renderChatMessageFileTag } from "@downcity/agent";
27
+ import { render_chat_message_file_tag } from "@downcity/agent";
28
28
  import { extractTelegramReplyContext } from "./ReplyContext.js";
29
29
  import {
30
30
  getActorName,
@@ -58,7 +58,7 @@ export interface TelegramMessagePlatform {
58
58
  */
59
59
  sendInboundAckReaction(params: {
60
60
  chatId: string;
61
- messageId?: number;
61
+ message_id?: number;
62
62
  emoji: string;
63
63
  }): Promise<void>;
64
64
  /**
@@ -72,8 +72,8 @@ export interface TelegramMessagePlatform {
72
72
  */
73
73
  export type TelegramMessageAuditWriter = (params: {
74
74
  chatId: string;
75
- messageId?: string;
76
- userId?: string;
75
+ message_id?: string;
76
+ user_id?: string;
77
77
  text: string;
78
78
  meta?: ChannelUserMessageMeta;
79
79
  }) => Promise<void>;
@@ -86,7 +86,7 @@ export type TelegramMessageExecutor = (params: {
86
86
  instructions: string;
87
87
  from?: TelegramUser;
88
88
  chatTitle?: string;
89
- messageId?: string;
89
+ message_id?: string;
90
90
  chatType?: NonNullable<TelegramUpdate["message"]>["chat"]["type"];
91
91
  messageThreadId?: number;
92
92
  receivedAt?: string;
@@ -110,7 +110,7 @@ export interface TelegramMessageHandlerOptions {
110
110
  /**
111
111
  * 当前 agent context。
112
112
  */
113
- context: AgentContext;
113
+ context: PluginContext;
114
114
  /**
115
115
  * 项目根目录。
116
116
  */
@@ -149,9 +149,9 @@ export interface TelegramMessageHandlerOptions {
149
149
  */
150
150
  enqueueAuditMessage: TelegramMessageAuditWriter;
151
151
  /**
152
- * 按 chatKey 串行执行。
152
+ * 按 chat_key 串行执行。
153
153
  */
154
- runInChat(chatKey: string, fn: () => Promise<void>): Promise<void>;
154
+ runInChat(chat_key: string, fn: () => Promise<void>): Promise<void>;
155
155
  /**
156
156
  * 命令处理。
157
157
  */
@@ -180,7 +180,7 @@ export async function handleTelegramMessage(
180
180
  : "";
181
181
  const entities = message.entities || message.caption_entities;
182
182
  const hasIncomingAttachment = hasTelegramIncomingAttachment(message);
183
- const messageId =
183
+ const message_id =
184
184
  typeof message.message_id === "number" ? String(message.message_id) : undefined;
185
185
  const receivedAt =
186
186
  typeof message.date === "number" && Number.isFinite(message.date)
@@ -198,13 +198,13 @@ export async function handleTelegramMessage(
198
198
  const actorName = getActorName(from);
199
199
  const chatTitle = getTelegramChatTitle(message.chat);
200
200
  const isGroup = isTelegramGroupChat(message.chat.type);
201
- const chatKey = buildTelegramChatKey(chatId, messageThreadId);
201
+ const chat_key = buildTelegramChatKey(chatId, messageThreadId);
202
202
 
203
203
  if (!actorId) {
204
- options.logger.warn("Telegram 消息缺少发送者 userId,已忽略", {
204
+ options.logger.warn("Telegram 消息缺少发送者 user_id,已忽略", {
205
205
  chatId,
206
206
  chatType: message.chat.type,
207
- messageId,
207
+ message_id,
208
208
  messageThreadId,
209
209
  hasFrom: !!from,
210
210
  });
@@ -215,7 +215,7 @@ export async function handleTelegramMessage(
215
215
  chatId,
216
216
  chatType: message.chat.type,
217
217
  chatTitle,
218
- userId: actorId,
218
+ user_id: actorId,
219
219
  username: actorName,
220
220
  });
221
221
  if (!access_result.allowed) {
@@ -237,8 +237,8 @@ export async function handleTelegramMessage(
237
237
  if (!isGroup) return;
238
238
  await options.enqueueAuditMessage({
239
239
  chatId,
240
- messageId,
241
- userId: actorId,
240
+ message_id,
241
+ user_id: actorId,
242
242
  text: buildTelegramAuditText({ rawText, hasIncomingAttachment, message }),
243
243
  meta: {
244
244
  chatType: message.chat.type,
@@ -258,14 +258,14 @@ export async function handleTelegramMessage(
258
258
  options.logger.debug("Ignored bot-originated message", {
259
259
  chatId,
260
260
  chatType: message.chat.type,
261
- messageId,
262
- fromId: from?.id,
261
+ message_id,
262
+ from_id: from?.id,
263
263
  fromUsername: from?.username,
264
264
  });
265
265
  return;
266
266
  }
267
267
 
268
- await options.runInChat(chatKey, async () => {
268
+ await options.runInChat(chat_key, async () => {
269
269
  options.logger.debug("Telegram message received", {
270
270
  chatId,
271
271
  chatType: message.chat.type,
@@ -273,9 +273,9 @@ export async function handleTelegramMessage(
273
273
  actorId,
274
274
  actorUsername: from?.username,
275
275
  actorName,
276
- messageId,
276
+ message_id,
277
277
  messageThreadId,
278
- chatKey,
278
+ chat_key,
279
279
  hasIncomingAttachment,
280
280
  textPreview: rawText.length > 240 ? `${rawText.slice(0, 240)}…` : rawText,
281
281
  entityTypes: (entities || []).map((entity) => entity.type),
@@ -290,15 +290,15 @@ export async function handleTelegramMessage(
290
290
 
291
291
  await options.platform.sendInboundAckReaction({
292
292
  chatId,
293
- messageId: parseTelegramMessageId(messageId),
293
+ message_id: parseTelegramMessageId(message_id),
294
294
  emoji: options.inboundAckEmoji,
295
295
  });
296
296
 
297
297
  if (rawText.startsWith("/")) {
298
298
  await options.enqueueAuditMessage({
299
299
  chatId,
300
- messageId,
301
- userId: actorId,
300
+ message_id,
301
+ user_id: actorId,
302
302
  text: buildTelegramAuditText({ rawText, hasIncomingAttachment, message }),
303
303
  meta: {
304
304
  chatType: message.chat.type,
@@ -330,8 +330,8 @@ export async function handleTelegramMessage(
330
330
  options,
331
331
  message,
332
332
  chatId,
333
- messageId,
334
- chatKey,
333
+ message_id,
334
+ chat_key,
335
335
  });
336
336
  const replyContext = extractTelegramReplyContext(message);
337
337
 
@@ -344,12 +344,12 @@ export async function handleTelegramMessage(
344
344
  channel: "telegram",
345
345
  chatId,
346
346
  chatType: message.chat.type,
347
- chatKey,
348
- messageId,
347
+ chat_key,
348
+ message_id,
349
349
  rootPath: options.rootPath,
350
350
  attachmentText:
351
351
  attachmentLines.length > 0 ? attachmentLines.join("\n") : undefined,
352
- bodyText: cleaned ? cleaned.trim() : undefined,
352
+ body_text: cleaned ? cleaned.trim() : undefined,
353
353
  attachments: incomingAttachments.map((attachment) => ({
354
354
  channel: "telegram" as const,
355
355
  kind: attachment.type,
@@ -372,7 +372,7 @@ export async function handleTelegramMessage(
372
372
  instructions,
373
373
  from,
374
374
  chatTitle,
375
- messageId,
375
+ message_id,
376
376
  chatType: message.chat.type,
377
377
  messageThreadId,
378
378
  receivedAt,
@@ -422,8 +422,8 @@ async function collectIncomingAttachments(params: {
422
422
  options: TelegramMessageHandlerOptions;
423
423
  message: TelegramUpdate["message"];
424
424
  chatId: string;
425
- messageId?: string;
426
- chatKey: string;
425
+ message_id?: string;
426
+ chat_key: string;
427
427
  }): Promise<{
428
428
  attachmentLines: string[];
429
429
  incomingAttachments: Array<{
@@ -447,7 +447,7 @@ async function collectIncomingAttachments(params: {
447
447
  for (const attachment of incomingAttachments) {
448
448
  const rel = path.relative(params.options.rootPath, attachment.path);
449
449
  attachmentLines.push(
450
- renderChatMessageFileTag({
450
+ render_chat_message_file_tag({
451
451
  type: attachment.type,
452
452
  path: rel,
453
453
  ...(attachment.desc ? { caption: attachment.desc } : {}),
@@ -458,8 +458,8 @@ async function collectIncomingAttachments(params: {
458
458
  params.options.logger.warn("Failed to save incoming Telegram attachment(s)", {
459
459
  error: String(error),
460
460
  chatId: params.chatId,
461
- messageId: params.messageId,
462
- chatKey: params.chatKey,
461
+ message_id: params.message_id,
462
+ chat_key: params.chat_key,
463
463
  });
464
464
  }
465
465
 
@@ -50,8 +50,8 @@ export interface TelegramPendingUpdatePlatform {
50
50
  */
51
51
  export type TelegramPendingAuditWriter = (params: {
52
52
  chatId: string;
53
- messageId?: string;
54
- userId?: string;
53
+ message_id?: string;
54
+ user_id?: string;
55
55
  text: string;
56
56
  meta?: ChannelUserMessageMeta;
57
57
  }) => Promise<void>;
@@ -120,7 +120,7 @@ async function enqueuePendingMessage(params: {
120
120
  typeof message.message_thread_id === "number"
121
121
  ? message.message_thread_id
122
122
  : undefined;
123
- const chatKey = buildTelegramChatKey(chatId, messageThreadId);
123
+ const chat_key = buildTelegramChatKey(chatId, messageThreadId);
124
124
  const from = message.from;
125
125
  const chatTitle = getTelegramChatTitle(message.chat);
126
126
  const botId = params.platform.getBotId();
@@ -147,14 +147,14 @@ async function enqueuePendingMessage(params: {
147
147
  !!message.audio ||
148
148
  !!message.video;
149
149
 
150
- const messageId =
150
+ const message_id =
151
151
  typeof message.message_id === "number" ? String(message.message_id) : undefined;
152
152
  const actorId = from?.id ? String(from.id) : undefined;
153
153
 
154
154
  await params.enqueueAuditMessage({
155
155
  chatId,
156
- messageId,
157
- userId: actorId,
156
+ message_id,
157
+ user_id: actorId,
158
158
  text: buildTelegramAuditText({ rawText, hasIncomingAttachment, message }),
159
159
  meta: {
160
160
  kind: "pending",
@@ -165,7 +165,7 @@ async function enqueuePendingMessage(params: {
165
165
  messageThreadId,
166
166
  username: from?.username,
167
167
  fromIsBot,
168
- chatKey,
168
+ chat_key,
169
169
  },
170
170
  });
171
171
  }
@@ -190,8 +190,8 @@ async function enqueuePendingCallbackQuery(params: {
190
190
  : undefined;
191
191
  await params.enqueueAuditMessage({
192
192
  chatId,
193
- messageId: undefined,
194
- userId: query.from?.id ? String(query.from.id) : undefined,
193
+ message_id: undefined,
194
+ user_id: query.from?.id ? String(query.from.id) : undefined,
195
195
  text: `[callback_query] ${String(query.data || "").slice(0, 1000)}`.trim(),
196
196
  meta: {
197
197
  kind: "pending",
@@ -7,7 +7,7 @@
7
7
  * - `TelegramBot` 只保留入站授权、命令分发、消息入队等业务编排。
8
8
  */
9
9
 
10
- import type { AgentContext } from "@downcity/agent";
10
+ import type { PluginContext } from "@downcity/agent";
11
11
  import type { ChatChannelTestResult } from "@/chat/types/ChannelStatus.js";
12
12
  import { TelegramApiClient } from "./ApiClient.js";
13
13
  import { TelegramStateStore } from "./StateStore.js";
@@ -23,7 +23,7 @@ export interface TelegramPlatformClientOptions {
23
23
  /**
24
24
  * 当前执行上下文。
25
25
  */
26
- context: AgentContext;
26
+ context: PluginContext;
27
27
  /**
28
28
  * Telegram bot token。
29
29
  */
@@ -48,7 +48,7 @@ export interface TelegramPlatformClientOptions {
48
48
  * Telegram 平台运行时。
49
49
  */
50
50
  export class TelegramPlatformClient {
51
- private readonly logger: AgentContext["logger"];
51
+ private readonly logger: PluginContext["logger"];
52
52
  private readonly api: TelegramApiClient;
53
53
  private readonly stateStore: TelegramStateStore;
54
54
  private readonly onMessage: TelegramPlatformClientOptions["onMessage"];
@@ -74,10 +74,10 @@ export class TelegramPlatformClient {
74
74
  this.botToken = options.botToken;
75
75
  this.api = new TelegramApiClient({
76
76
  botToken: options.botToken,
77
- projectRoot: options.context.rootPath,
77
+ project_root: options.context.workspace_path,
78
78
  logger: options.context.logger,
79
79
  });
80
- this.stateStore = new TelegramStateStore(options.context.rootPath);
80
+ this.stateStore = new TelegramStateStore(options.context.workspace_path);
81
81
  this.onMessage = options.onMessage;
82
82
  this.onCallbackQuery = options.onCallbackQuery;
83
83
  this.onWebhookConflictResolved = options.onWebhookConflictResolved;
@@ -298,18 +298,18 @@ export class TelegramPlatformClient {
298
298
  */
299
299
  async sendInboundAckReaction(params: {
300
300
  chatId: string;
301
- messageId?: number;
301
+ message_id?: number;
302
302
  emoji: string;
303
303
  }): Promise<void> {
304
- if (!params.messageId) return;
304
+ if (!params.message_id) return;
305
305
  try {
306
- await this.api.setMessageReaction(params.chatId, params.messageId, {
306
+ await this.api.setMessageReaction(params.chatId, params.message_id, {
307
307
  emoji: params.emoji,
308
308
  });
309
309
  } catch (error) {
310
310
  this.logger.warn("Telegram 入站 ack reaction 失败,继续处理消息", {
311
311
  chatId: params.chatId,
312
- messageId: params.messageId,
312
+ message_id: params.message_id,
313
313
  error: String(error),
314
314
  });
315
315
  }
@@ -354,10 +354,10 @@ export class TelegramPlatformClient {
354
354
  */
355
355
  async setMessageReaction(
356
356
  chatId: string,
357
- messageId: number,
357
+ message_id: number,
358
358
  opts?: { emoji?: string; isBig?: boolean },
359
359
  ): Promise<void> {
360
- await this.api.setMessageReaction(chatId, messageId, opts);
360
+ await this.api.setMessageReaction(chatId, message_id, opts);
361
361
  }
362
362
 
363
363
  /**
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Chat Plugin 的结构化配置协议。
3
+ *
4
+ * 关键点(中文)
5
+ * - Zod Schema 是内建 Chat 行为配置与 Resource 配置的唯一源码。
6
+ * - Plugin config 只描述 queue 行为,完整渠道配置由独立 Resource Item 承载。
7
+ * - `readOnly` 字段由 Resource Resolver 写入,`writeOnly` 字段由 CLI 安全采集和脱敏。
8
+ */
9
+
10
+ import type { JsonObject } from "@downcity/agent";
11
+ import { z } from "zod";
12
+ import { resolveChatChannelBotInfo } from "@/chat/channels/BotInfoProvider.js";
13
+ import type { ChatPluginResource } from "@/chat/types/ChatPluginResource.js";
14
+
15
+ const resource_id_schema = z.string()
16
+ .trim()
17
+ .min(1)
18
+ .max(80)
19
+ .regex(/^[a-z0-9][a-z0-9_-]*$/u)
20
+ .meta({
21
+ title: "Resource ID",
22
+ description: "Stable Resource ID generated by City.",
23
+ readOnly: true,
24
+ });
25
+
26
+ const resource_name_schema = z.string()
27
+ .trim()
28
+ .min(1)
29
+ .meta({
30
+ title: "Name",
31
+ description: "Display name written by the Resource Resolver.",
32
+ readOnly: true,
33
+ });
34
+
35
+ const secret_schema = z.string()
36
+ .trim()
37
+ .min(1)
38
+ .meta({ writeOnly: true });
39
+
40
+ /** Telegram Resource 完整配置 Schema。 */
41
+ const telegram_resource_schema = z.object({
42
+ id: resource_id_schema,
43
+ type: z.literal("telegram").meta({ title: "Type" }),
44
+ name: resource_name_schema,
45
+ bot_token: secret_schema.meta({
46
+ title: "Bot Token",
47
+ description: "Telegram Bot API Token.",
48
+ writeOnly: true,
49
+ }),
50
+ username: z.string().trim().min(1).optional().meta({
51
+ title: "Username",
52
+ description: "Telegram username written by the Resource Resolver.",
53
+ readOnly: true,
54
+ }),
55
+ bot_user_id: z.string().trim().min(1).optional().meta({
56
+ title: "Bot User ID",
57
+ description: "Telegram Bot user ID written by the Resource Resolver.",
58
+ readOnly: true,
59
+ }),
60
+ }).strict().meta({
61
+ title: "Telegram",
62
+ description: "Telegram Bot Resource.",
63
+ });
64
+
65
+ /** Feishu / Lark Resource 完整配置 Schema。 */
66
+ const feishu_resource_schema = z.object({
67
+ id: resource_id_schema,
68
+ type: z.literal("feishu").meta({ title: "Type" }),
69
+ name: resource_name_schema,
70
+ app_id: z.string().trim().min(1).meta({
71
+ title: "App ID",
72
+ description: "Feishu or Lark App ID.",
73
+ }),
74
+ app_secret: secret_schema.meta({
75
+ title: "App Secret",
76
+ description: "Feishu or Lark App Secret.",
77
+ writeOnly: true,
78
+ }),
79
+ domain: z.url().optional().meta({
80
+ title: "Open API Domain",
81
+ description: "Optional Feishu or Lark Open API domain.",
82
+ }),
83
+ identity: z.string().trim().min(1).optional().meta({
84
+ title: "Identity",
85
+ readOnly: true,
86
+ }),
87
+ owner: z.string().trim().min(1).optional().meta({
88
+ title: "Owner",
89
+ readOnly: true,
90
+ }),
91
+ creator: z.string().trim().min(1).optional().meta({
92
+ title: "Creator",
93
+ readOnly: true,
94
+ }),
95
+ bot_user_id: z.string().trim().min(1).optional().meta({
96
+ title: "Bot User ID",
97
+ readOnly: true,
98
+ }),
99
+ }).strict().meta({
100
+ title: "Feishu / Lark",
101
+ description: "Feishu or Lark Bot Resource.",
102
+ });
103
+
104
+ /** QQ Resource 完整配置 Schema。 */
105
+ const qq_resource_schema = z.object({
106
+ id: resource_id_schema,
107
+ type: z.literal("qq").meta({ title: "Type" }),
108
+ name: resource_name_schema,
109
+ app_id: z.string().trim().min(1).meta({
110
+ title: "App ID",
111
+ description: "QQ Bot App ID.",
112
+ }),
113
+ app_secret: secret_schema.meta({
114
+ title: "App Secret",
115
+ description: "QQ Bot App Secret.",
116
+ writeOnly: true,
117
+ }),
118
+ sandbox: z.boolean().optional().meta({
119
+ title: "Sandbox",
120
+ description: "Whether to use the QQ sandbox environment.",
121
+ default: false,
122
+ }),
123
+ identity: z.string().trim().min(1).optional().meta({
124
+ title: "Identity",
125
+ readOnly: true,
126
+ }),
127
+ bot_user_id: z.string().trim().min(1).optional().meta({
128
+ title: "Bot User ID",
129
+ readOnly: true,
130
+ }),
131
+ }).strict().meta({
132
+ title: "QQ",
133
+ description: "QQ Bot Resource.",
134
+ });
135
+
136
+ /** Chat Plugin 单个完整 Resource Item Schema。 */
137
+ export const chat_plugin_resource_schema = z.discriminatedUnion("type", [
138
+ telegram_resource_schema,
139
+ feishu_resource_schema,
140
+ qq_resource_schema,
141
+ ]);
142
+
143
+ /** Chat Plugin 完整配置 Schema。 */
144
+ export const chat_plugin_config_schema = z.object({
145
+ queue: z.object({
146
+ max_concurrency: z.number()
147
+ .int()
148
+ .min(1)
149
+ .max(32)
150
+ .optional()
151
+ .meta({
152
+ title: "Maximum concurrency",
153
+ description: "Maximum number of chat lanes executed concurrently.",
154
+ }),
155
+ merge_debounce_ms: z.number()
156
+ .int()
157
+ .min(0)
158
+ .max(60_000)
159
+ .optional()
160
+ .meta({
161
+ title: "Merge debounce",
162
+ description: "Debounce window used to merge consecutive inbound messages.",
163
+ }),
164
+ merge_max_wait_ms: z.number()
165
+ .int()
166
+ .min(0)
167
+ .max(120_000)
168
+ .optional()
169
+ .meta({
170
+ title: "Maximum merge wait",
171
+ description: "Maximum time to wait before executing a merged inbound burst.",
172
+ }),
173
+ }).strict().optional().meta({
174
+ title: "Queue",
175
+ description: "Chat queue scheduling and inbound message merge behavior.",
176
+ }),
177
+ }).strict().meta({
178
+ title: "Chat Plugin",
179
+ description: "Chat queue behavior. Messaging channels are Plugin Resources.",
180
+ });
181
+
182
+ /** Chat Plugin 完整结构化配置。 */
183
+ export type ChatPluginConfig = z.infer<typeof chat_plugin_config_schema>;
184
+
185
+ /** 供 City Plugin Catalog 使用的标准 JSON Schema。 */
186
+ export const CHAT_PLUGIN_CONFIG_JSON_SCHEMA = z.toJSONSchema(
187
+ chat_plugin_config_schema,
188
+ { target: "draft-2020-12" },
189
+ ) as JsonObject;
190
+
191
+ /** 供 City Plugin Catalog 使用的完整 Resource Item JSON Schema。 */
192
+ export const CHAT_PLUGIN_RESOURCE_JSON_SCHEMA = z.toJSONSchema(
193
+ chat_plugin_resource_schema,
194
+ { target: "draft-2020-12" },
195
+ ) as JsonObject;
196
+
197
+ /** 在运行时装配边界解析并收窄 Chat Plugin 配置。 */
198
+ export function parse_chat_plugin_config(input: unknown): ChatPluginConfig {
199
+ return chat_plugin_config_schema.parse(input);
200
+ }
201
+
202
+ /** 解析一个完整 Chat Plugin Resource Item。 */
203
+ export function parse_chat_plugin_resource(input: unknown): ChatPluginResource {
204
+ return chat_plugin_resource_schema.parse(input);
205
+ }
206
+
207
+ /** 读取一个 Chat Resource 类型分支的标准 JSON Schema。 */
208
+ export function get_chat_plugin_resource_json_schema(
209
+ resource_type: ChatPluginResource["type"],
210
+ ): JsonObject {
211
+ const variants = Array.isArray(CHAT_PLUGIN_RESOURCE_JSON_SCHEMA.oneOf)
212
+ ? CHAT_PLUGIN_RESOURCE_JSON_SCHEMA.oneOf
213
+ : [];
214
+ for (const value of variants) {
215
+ if (!value || typeof value !== "object" || Array.isArray(value)) continue;
216
+ const variant = value as JsonObject;
217
+ const properties = variant.properties;
218
+ if (!properties || typeof properties !== "object" || Array.isArray(properties)) continue;
219
+ const type_schema = (properties as JsonObject).type;
220
+ if (
221
+ type_schema
222
+ && typeof type_schema === "object"
223
+ && !Array.isArray(type_schema)
224
+ && (type_schema as JsonObject).const === resource_type
225
+ ) {
226
+ return JSON.parse(JSON.stringify(variant)) as JsonObject;
227
+ }
228
+ }
229
+ throw new Error(`Missing Chat Resource schema: ${resource_type}`);
230
+ }
231
+
232
+ /**
233
+ * 根据用户字段解析并返回 Resolver 可写的动态字段。
234
+ *
235
+ * 关键点(中文):返回值不包含 `id`、`type` 和凭据,字段所有权由 City 按 Schema 校验。
236
+ */
237
+ export async function resolve_chat_plugin_resource(
238
+ input: JsonObject,
239
+ ): Promise<JsonObject> {
240
+ const type = String(input.type || "").trim();
241
+ if (type !== "telegram" && type !== "feishu" && type !== "qq") {
242
+ throw new Error(`Unsupported Chat Resource type: ${type}`);
243
+ }
244
+ const result = await resolveChatChannelBotInfo({
245
+ channel: type,
246
+ credentials: {
247
+ botToken: typeof input.bot_token === "string" ? input.bot_token : undefined,
248
+ appId: typeof input.app_id === "string" ? input.app_id : undefined,
249
+ appSecret: typeof input.app_secret === "string" ? input.app_secret : undefined,
250
+ domain: typeof input.domain === "string" ? input.domain : undefined,
251
+ sandbox: input.sandbox === true,
252
+ },
253
+ });
254
+ const identity = String(result.identity || "").trim();
255
+ const bot_user_id = String(result.botUserId || "").trim();
256
+ const owner = String(result.owner || "").trim();
257
+ const creator = String(result.creator || "").trim();
258
+ return {
259
+ name: result.name,
260
+ ...(type === "telegram" && identity ? { username: identity } : {}),
261
+ ...(type !== "telegram" && identity ? { identity } : {}),
262
+ ...(bot_user_id ? { bot_user_id } : {}),
263
+ ...(type === "feishu" && owner ? { owner } : {}),
264
+ ...(type === "feishu" && creator ? { creator } : {}),
265
+ };
266
+ }