@downcity/plugins 1.0.56 → 1.0.59

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 (318) hide show
  1. package/bin/BuiltinPlugins.d.ts.map +1 -1
  2. package/bin/BuiltinPlugins.js +0 -6
  3. package/bin/BuiltinPlugins.js.map +1 -1
  4. package/bin/asr/Plugin.d.ts +67 -7
  5. package/bin/asr/Plugin.d.ts.map +1 -1
  6. package/bin/asr/Plugin.js +229 -461
  7. package/bin/asr/Plugin.js.map +1 -1
  8. package/bin/asr/types/AsrPlugin.d.ts +114 -0
  9. package/bin/asr/types/AsrPlugin.d.ts.map +1 -0
  10. package/bin/asr/types/AsrPlugin.js +10 -0
  11. package/bin/asr/types/AsrPlugin.js.map +1 -0
  12. package/bin/auth/types/AuthPlugin.d.ts +12 -16
  13. package/bin/auth/types/AuthPlugin.d.ts.map +1 -1
  14. package/bin/auth/types/AuthPlugin.js +9 -13
  15. package/bin/auth/types/AuthPlugin.js.map +1 -1
  16. package/bin/chat/ChatPlugin.d.ts +37 -6
  17. package/bin/chat/ChatPlugin.d.ts.map +1 -1
  18. package/bin/chat/ChatPlugin.js +58 -80
  19. package/bin/chat/ChatPlugin.js.map +1 -1
  20. package/bin/chat/Index.d.ts +4 -1
  21. package/bin/chat/Index.d.ts.map +1 -1
  22. package/bin/chat/Index.js +2 -1
  23. package/bin/chat/Index.js.map +1 -1
  24. package/bin/chat/channels/Configuration.d.ts +1 -1
  25. package/bin/chat/channels/Configuration.js +1 -1
  26. package/bin/chat/channels/RuntimeChannel.d.ts +145 -0
  27. package/bin/chat/channels/RuntimeChannel.d.ts.map +1 -0
  28. package/bin/chat/channels/RuntimeChannel.js +148 -0
  29. package/bin/chat/channels/RuntimeChannel.js.map +1 -0
  30. package/bin/chat/runtime/ChatAuthorizationRuntime.d.ts +22 -0
  31. package/bin/chat/runtime/ChatAuthorizationRuntime.d.ts.map +1 -0
  32. package/bin/chat/runtime/ChatAuthorizationRuntime.js +189 -0
  33. package/bin/chat/runtime/ChatAuthorizationRuntime.js.map +1 -0
  34. package/bin/chat/runtime/ChatChannelActions.d.ts.map +1 -1
  35. package/bin/chat/runtime/ChatChannelActions.js +19 -9
  36. package/bin/chat/runtime/ChatChannelActions.js.map +1 -1
  37. package/bin/chat/runtime/ChatChannelConfig.d.ts +2 -18
  38. package/bin/chat/runtime/ChatChannelConfig.d.ts.map +1 -1
  39. package/bin/chat/runtime/ChatChannelConfig.js +2 -73
  40. package/bin/chat/runtime/ChatChannelConfig.js.map +1 -1
  41. package/bin/chat/runtime/ChatChannelCore.d.ts +22 -1
  42. package/bin/chat/runtime/ChatChannelCore.d.ts.map +1 -1
  43. package/bin/chat/runtime/ChatChannelCore.js +5 -5
  44. package/bin/chat/runtime/ChatChannelCore.js.map +1 -1
  45. package/bin/chat/runtime/ChatPluginActionRegistry.js +1 -1
  46. package/bin/chat/runtime/ChatPluginActionRegistry.js.map +1 -1
  47. package/bin/chat/runtime/PluginPoints.d.ts +3 -3
  48. package/bin/chat/runtime/PluginPoints.js +3 -3
  49. package/bin/chat/types/ChannelStatus.d.ts +1 -1
  50. package/bin/chat/types/ChatPluginOptions.d.ts +76 -0
  51. package/bin/chat/types/ChatPluginOptions.d.ts.map +1 -0
  52. package/bin/chat/types/ChatPluginOptions.js +10 -0
  53. package/bin/chat/types/ChatPluginOptions.js.map +1 -0
  54. package/bin/image/ImagePlugin.d.ts +1 -1
  55. package/bin/image/ImagePlugin.d.ts.map +1 -1
  56. package/bin/image/ImagePlugin.js +23 -5
  57. package/bin/image/ImagePlugin.js.map +1 -1
  58. package/bin/index.d.ts +6 -3
  59. package/bin/index.d.ts.map +1 -1
  60. package/bin/index.js +2 -2
  61. package/bin/index.js.map +1 -1
  62. package/bin/skill/Action.d.ts.map +1 -1
  63. package/bin/skill/Action.js +2 -2
  64. package/bin/skill/Action.js.map +1 -1
  65. package/bin/skill/Command.js +5 -5
  66. package/bin/skill/Command.js.map +1 -1
  67. package/bin/skill/Plugin.js +1 -1
  68. package/bin/skill/Plugin.js.map +1 -1
  69. package/bin/skill/runtime/Discovery.d.ts +4 -4
  70. package/bin/skill/runtime/Discovery.d.ts.map +1 -1
  71. package/bin/skill/runtime/Discovery.js +5 -5
  72. package/bin/skill/runtime/Discovery.js.map +1 -1
  73. package/bin/skill/runtime/Paths.d.ts +1 -5
  74. package/bin/skill/runtime/Paths.d.ts.map +1 -1
  75. package/bin/skill/runtime/Paths.js +1 -9
  76. package/bin/skill/runtime/Paths.js.map +1 -1
  77. package/bin/skill/runtime/Prompt.d.ts +2 -2
  78. package/bin/skill/runtime/Prompt.d.ts.map +1 -1
  79. package/bin/skill/runtime/Prompt.js +3 -3
  80. package/bin/skill/runtime/Prompt.js.map +1 -1
  81. package/bin/skill/runtime/Store.d.ts +2 -2
  82. package/bin/skill/runtime/Store.d.ts.map +1 -1
  83. package/bin/skill/runtime/Store.js.map +1 -1
  84. package/bin/skill/runtime/SystemProvider.js +4 -4
  85. package/bin/skill/runtime/SystemProvider.js.map +1 -1
  86. package/bin/skill/runtime/Types.d.ts +3 -3
  87. package/bin/skill/runtime/Types.d.ts.map +1 -1
  88. package/bin/skill/types/{ClaudeSkill.d.ts → SkillDefinition.d.ts} +4 -4
  89. package/bin/skill/types/SkillDefinition.d.ts.map +1 -0
  90. package/bin/skill/types/{ClaudeSkill.js → SkillDefinition.js} +2 -2
  91. package/bin/skill/types/SkillDefinition.js.map +1 -0
  92. package/bin/skill/types/SkillPlugin.d.ts +2 -2
  93. package/bin/skill/types/SkillPlugin.d.ts.map +1 -1
  94. package/bin/tts/Plugin.d.ts +53 -6
  95. package/bin/tts/Plugin.d.ts.map +1 -1
  96. package/bin/tts/Plugin.js +197 -474
  97. package/bin/tts/Plugin.js.map +1 -1
  98. package/bin/tts/types/TtsPlugin.d.ts +63 -102
  99. package/bin/tts/types/TtsPlugin.d.ts.map +1 -1
  100. package/bin/tts/types/TtsPlugin.js +4 -3
  101. package/bin/tts/types/TtsPlugin.js.map +1 -1
  102. package/bin/web/PROMPT.d.ts +1 -1
  103. package/bin/web/PROMPT.d.ts.map +1 -1
  104. package/bin/web/PROMPT.js +1 -1
  105. package/bin/web/PROMPT.js.map +1 -1
  106. package/bin/web/Plugin.d.ts +66 -5
  107. package/bin/web/Plugin.d.ts.map +1 -1
  108. package/bin/web/Plugin.js +126 -450
  109. package/bin/web/Plugin.js.map +1 -1
  110. package/bin/web/WebPromptAssets.d.ts +1 -9
  111. package/bin/web/WebPromptAssets.d.ts.map +1 -1
  112. package/bin/web/WebPromptAssets.js +1 -11
  113. package/bin/web/WebPromptAssets.js.map +1 -1
  114. package/bin/web/runtime/Install.d.ts +19 -0
  115. package/bin/web/runtime/Install.d.ts.map +1 -0
  116. package/bin/web/runtime/Install.js +178 -0
  117. package/bin/web/runtime/Install.js.map +1 -0
  118. package/bin/web/types/WebPlugin.d.ts +38 -109
  119. package/bin/web/types/WebPlugin.d.ts.map +1 -1
  120. package/bin/web/types/WebPlugin.js +5 -7
  121. package/bin/web/types/WebPlugin.js.map +1 -1
  122. package/bin/workboard/Plugin.d.ts +23 -3
  123. package/bin/workboard/Plugin.d.ts.map +1 -1
  124. package/bin/workboard/Plugin.js +66 -85
  125. package/bin/workboard/Plugin.js.map +1 -1
  126. package/package.json +2 -2
  127. package/src/BuiltinPlugins.ts +0 -6
  128. package/src/asr/Plugin.ts +264 -483
  129. package/src/asr/types/AsrPlugin.ts +118 -0
  130. package/src/auth/types/AuthPlugin.ts +12 -17
  131. package/src/chat/ChatPlugin.ts +92 -89
  132. package/src/chat/Index.ts +18 -1
  133. package/src/chat/channels/Configuration.ts +1 -1
  134. package/src/chat/channels/RuntimeChannel.ts +264 -0
  135. package/src/chat/runtime/ChatAuthorizationRuntime.ts +229 -0
  136. package/src/chat/runtime/ChatChannelActions.ts +24 -9
  137. package/src/chat/runtime/ChatChannelConfig.ts +2 -100
  138. package/src/chat/runtime/ChatChannelCore.ts +20 -8
  139. package/src/chat/runtime/ChatPluginActionRegistry.ts +1 -1
  140. package/src/chat/runtime/PluginPoints.ts +3 -3
  141. package/src/chat/types/ChannelStatus.ts +1 -1
  142. package/src/chat/types/ChatPluginOptions.ts +79 -0
  143. package/src/image/ImagePlugin.ts +23 -5
  144. package/src/index.ts +29 -6
  145. package/src/skill/Action.ts +10 -7
  146. package/src/skill/Command.ts +5 -5
  147. package/src/skill/Plugin.ts +1 -1
  148. package/src/skill/runtime/Discovery.ts +14 -11
  149. package/src/skill/runtime/Paths.ts +1 -13
  150. package/src/skill/runtime/Prompt.ts +5 -5
  151. package/src/skill/runtime/Store.ts +6 -3
  152. package/src/skill/runtime/SystemProvider.ts +4 -4
  153. package/src/skill/runtime/Types.ts +3 -3
  154. package/src/skill/types/{ClaudeSkill.ts → SkillDefinition.ts} +3 -3
  155. package/src/skill/types/SkillPlugin.ts +2 -2
  156. package/src/tts/Plugin.ts +225 -492
  157. package/src/tts/types/TtsPlugin.ts +67 -102
  158. package/src/web/PROMPT.ts +1 -1
  159. package/src/web/PROMPT.ts.txt +32 -6
  160. package/src/web/Plugin.ts +119 -453
  161. package/src/web/WebPromptAssets.ts +1 -13
  162. package/src/web/runtime/Install.ts +241 -0
  163. package/src/web/types/WebPlugin.ts +38 -114
  164. package/src/workboard/Plugin.ts +80 -95
  165. package/bin/asr/Config.d.ts +0 -43
  166. package/bin/asr/Config.d.ts.map +0 -1
  167. package/bin/asr/Config.js +0 -107
  168. package/bin/asr/Config.js.map +0 -1
  169. package/bin/asr/Dependency.d.ts +0 -77
  170. package/bin/asr/Dependency.d.ts.map +0 -1
  171. package/bin/asr/Dependency.js +0 -238
  172. package/bin/asr/Dependency.js.map +0 -1
  173. package/bin/asr/InboundAugment.d.ts +0 -17
  174. package/bin/asr/InboundAugment.d.ts.map +0 -1
  175. package/bin/asr/InboundAugment.js +0 -47
  176. package/bin/asr/InboundAugment.js.map +0 -1
  177. package/bin/asr/ModelCatalog.d.ts +0 -29
  178. package/bin/asr/ModelCatalog.d.ts.map +0 -1
  179. package/bin/asr/ModelCatalog.js +0 -25
  180. package/bin/asr/ModelCatalog.js.map +0 -1
  181. package/bin/auth/Plugin.d.ts +0 -17
  182. package/bin/auth/Plugin.d.ts.map +0 -1
  183. package/bin/auth/Plugin.js +0 -199
  184. package/bin/auth/Plugin.js.map +0 -1
  185. package/bin/chat/ChatPluginTypes.d.ts +0 -122
  186. package/bin/chat/ChatPluginTypes.d.ts.map +0 -1
  187. package/bin/chat/ChatPluginTypes.js +0 -10
  188. package/bin/chat/ChatPluginTypes.js.map +0 -1
  189. package/bin/skill/types/ClaudeSkill.d.ts.map +0 -1
  190. package/bin/skill/types/ClaudeSkill.js.map +0 -1
  191. package/bin/tts/Dependency.d.ts +0 -90
  192. package/bin/tts/Dependency.d.ts.map +0 -1
  193. package/bin/tts/Dependency.js +0 -344
  194. package/bin/tts/Dependency.js.map +0 -1
  195. package/bin/tts/PluginSupport.d.ts +0 -25
  196. package/bin/tts/PluginSupport.d.ts.map +0 -1
  197. package/bin/tts/PluginSupport.js +0 -72
  198. package/bin/tts/PluginSupport.js.map +0 -1
  199. package/bin/tts/runtime/Catalog.d.ts +0 -21
  200. package/bin/tts/runtime/Catalog.d.ts.map +0 -1
  201. package/bin/tts/runtime/Catalog.js +0 -90
  202. package/bin/tts/runtime/Catalog.js.map +0 -1
  203. package/bin/tts/runtime/DependencyInstaller.d.ts +0 -143
  204. package/bin/tts/runtime/DependencyInstaller.d.ts.map +0 -1
  205. package/bin/tts/runtime/DependencyInstaller.js +0 -261
  206. package/bin/tts/runtime/DependencyInstaller.js.map +0 -1
  207. package/bin/tts/runtime/Installer.d.ts +0 -89
  208. package/bin/tts/runtime/Installer.d.ts.map +0 -1
  209. package/bin/tts/runtime/Installer.js +0 -188
  210. package/bin/tts/runtime/Installer.js.map +0 -1
  211. package/bin/tts/runtime/Paths.d.ts +0 -20
  212. package/bin/tts/runtime/Paths.d.ts.map +0 -1
  213. package/bin/tts/runtime/Paths.js +0 -32
  214. package/bin/tts/runtime/Paths.js.map +0 -1
  215. package/bin/tts/runtime/Synthesizer.d.ts +0 -44
  216. package/bin/tts/runtime/Synthesizer.d.ts.map +0 -1
  217. package/bin/tts/runtime/Synthesizer.js +0 -363
  218. package/bin/tts/runtime/Synthesizer.js.map +0 -1
  219. package/bin/tts/types/Tts.d.ts +0 -91
  220. package/bin/tts/types/Tts.d.ts.map +0 -1
  221. package/bin/tts/types/Tts.js +0 -9
  222. package/bin/tts/types/Tts.js.map +0 -1
  223. package/bin/voice/Config.d.ts +0 -43
  224. package/bin/voice/Config.d.ts.map +0 -1
  225. package/bin/voice/Config.js +0 -104
  226. package/bin/voice/Config.js.map +0 -1
  227. package/bin/voice/Dependency.d.ts +0 -77
  228. package/bin/voice/Dependency.d.ts.map +0 -1
  229. package/bin/voice/Dependency.js +0 -237
  230. package/bin/voice/Dependency.js.map +0 -1
  231. package/bin/voice/InboundAugment.d.ts +0 -17
  232. package/bin/voice/InboundAugment.d.ts.map +0 -1
  233. package/bin/voice/InboundAugment.js +0 -47
  234. package/bin/voice/InboundAugment.js.map +0 -1
  235. package/bin/voice/ModelCatalog.d.ts +0 -29
  236. package/bin/voice/ModelCatalog.d.ts.map +0 -1
  237. package/bin/voice/ModelCatalog.js +0 -25
  238. package/bin/voice/ModelCatalog.js.map +0 -1
  239. package/bin/voice/runtime/Catalog.d.ts +0 -18
  240. package/bin/voice/runtime/Catalog.d.ts.map +0 -1
  241. package/bin/voice/runtime/Catalog.js +0 -61
  242. package/bin/voice/runtime/Catalog.js.map +0 -1
  243. package/bin/voice/runtime/DependencyInstaller.d.ts +0 -145
  244. package/bin/voice/runtime/DependencyInstaller.d.ts.map +0 -1
  245. package/bin/voice/runtime/DependencyInstaller.js +0 -309
  246. package/bin/voice/runtime/DependencyInstaller.js.map +0 -1
  247. package/bin/voice/runtime/Installer.d.ts +0 -94
  248. package/bin/voice/runtime/Installer.d.ts.map +0 -1
  249. package/bin/voice/runtime/Installer.js +0 -200
  250. package/bin/voice/runtime/Installer.js.map +0 -1
  251. package/bin/voice/runtime/Paths.d.ts +0 -8
  252. package/bin/voice/runtime/Paths.d.ts.map +0 -1
  253. package/bin/voice/runtime/Paths.js +0 -26
  254. package/bin/voice/runtime/Paths.js.map +0 -1
  255. package/bin/voice/runtime/Transcriber.d.ts +0 -57
  256. package/bin/voice/runtime/Transcriber.d.ts.map +0 -1
  257. package/bin/voice/runtime/Transcriber.js +0 -329
  258. package/bin/voice/runtime/Transcriber.js.map +0 -1
  259. package/bin/voice/types/Voice.d.ts +0 -58
  260. package/bin/voice/types/Voice.d.ts.map +0 -1
  261. package/bin/voice/types/Voice.js +0 -9
  262. package/bin/voice/types/Voice.js.map +0 -1
  263. package/bin/voice/types/VoicePlugin.d.ts +0 -190
  264. package/bin/voice/types/VoicePlugin.d.ts.map +0 -1
  265. package/bin/voice/types/VoicePlugin.js +0 -9
  266. package/bin/voice/types/VoicePlugin.js.map +0 -1
  267. package/bin/web/Dependency.d.ts +0 -10
  268. package/bin/web/Dependency.d.ts.map +0 -1
  269. package/bin/web/Dependency.js +0 -10
  270. package/bin/web/Dependency.js.map +0 -1
  271. package/bin/web/PROMPT.agent-browser.d.ts +0 -7
  272. package/bin/web/PROMPT.agent-browser.d.ts.map +0 -1
  273. package/bin/web/PROMPT.agent-browser.js +0 -8
  274. package/bin/web/PROMPT.agent-browser.js.map +0 -1
  275. package/bin/web/PROMPT.web-access.d.ts +0 -7
  276. package/bin/web/PROMPT.web-access.d.ts.map +0 -1
  277. package/bin/web/PROMPT.web-access.js +0 -8
  278. package/bin/web/PROMPT.web-access.js.map +0 -1
  279. package/bin/web/runtime/Config.d.ts +0 -21
  280. package/bin/web/runtime/Config.d.ts.map +0 -1
  281. package/bin/web/runtime/Config.js +0 -79
  282. package/bin/web/runtime/Config.js.map +0 -1
  283. package/bin/web/runtime/Source.d.ts +0 -29
  284. package/bin/web/runtime/Source.d.ts.map +0 -1
  285. package/bin/web/runtime/Source.js +0 -209
  286. package/bin/web/runtime/Source.js.map +0 -1
  287. package/src/asr/Config.ts +0 -138
  288. package/src/asr/Dependency.ts +0 -336
  289. package/src/asr/InboundAugment.ts +0 -59
  290. package/src/asr/ModelCatalog.ts +0 -43
  291. package/src/auth/Plugin.ts +0 -237
  292. package/src/chat/ChatPluginTypes.ts +0 -126
  293. package/src/tts/Dependency.ts +0 -473
  294. package/src/tts/PluginSupport.ts +0 -85
  295. package/src/tts/runtime/Catalog.ts +0 -97
  296. package/src/tts/runtime/DependencyInstaller.ts +0 -436
  297. package/src/tts/runtime/Installer.ts +0 -297
  298. package/src/tts/runtime/Paths.ts +0 -39
  299. package/src/tts/runtime/Synthesizer.ts +0 -480
  300. package/src/tts/types/Tts.ts +0 -99
  301. package/src/voice/Config.ts +0 -135
  302. package/src/voice/Dependency.ts +0 -329
  303. package/src/voice/InboundAugment.ts +0 -59
  304. package/src/voice/ModelCatalog.ts +0 -43
  305. package/src/voice/runtime/Catalog.ts +0 -68
  306. package/src/voice/runtime/DependencyInstaller.ts +0 -505
  307. package/src/voice/runtime/Installer.ts +0 -324
  308. package/src/voice/runtime/Paths.ts +0 -26
  309. package/src/voice/runtime/Transcriber.ts +0 -467
  310. package/src/voice/types/Voice.ts +0 -68
  311. package/src/voice/types/VoicePlugin.ts +0 -194
  312. package/src/web/Dependency.ts +0 -17
  313. package/src/web/PROMPT.agent-browser.ts +0 -9
  314. package/src/web/PROMPT.agent-browser.ts.txt +0 -17
  315. package/src/web/PROMPT.web-access.ts +0 -9
  316. package/src/web/PROMPT.web-access.ts.txt +0 -13
  317. package/src/web/runtime/Config.ts +0 -105
  318. package/src/web/runtime/Source.ts +0 -257
@@ -2,8 +2,11 @@
2
2
  * Chat Plugin 导出入口。
3
3
  *
4
4
  * 关键点(中文)
5
- * - Index 只负责导出类实现。
5
+ * - Index 只负责导出类实现与 channel SDK 对象。
6
6
  * - 真正的类实现位于 `ChatPlugin.ts`。
7
7
  */
8
8
  export { ChatPlugin } from "./ChatPlugin.js";
9
+ export { FeishuChannel, QqChannel, TelegramChannel, } from "./channels/RuntimeChannel.js";
10
+ export type { BaseChatChannelOptions, ChatChannelEnv, FeishuChannelOptions, QqChannelOptions, TelegramChannelOptions, } from "./channels/RuntimeChannel.js";
11
+ export type { ChatChannel, ChatChannelRuntimePatch, ChatPluginOptions, } from "./types/ChatPluginOptions.js";
9
12
  //# sourceMappingURL=Index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../../src/chat/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../../src/chat/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC"}
package/bin/chat/Index.js CHANGED
@@ -2,8 +2,9 @@
2
2
  * Chat Plugin 导出入口。
3
3
  *
4
4
  * 关键点(中文)
5
- * - Index 只负责导出类实现。
5
+ * - Index 只负责导出类实现与 channel SDK 对象。
6
6
  * - 真正的类实现位于 `ChatPlugin.ts`。
7
7
  */
8
8
  export { ChatPlugin } from "./ChatPlugin.js";
9
+ export { FeishuChannel, QqChannel, TelegramChannel, } from "./channels/RuntimeChannel.js";
9
10
  //# sourceMappingURL=Index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../src/chat/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../src/chat/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,8BAA8B,CAAC"}
@@ -20,7 +20,7 @@ export declare abstract class ChatChannelConfiguration {
20
20
  */
21
21
  abstract describe(): ChatChannelConfigurationDescriptor;
22
22
  /**
23
- * 返回可通过 `chat.configure` 写入的 downcity.json 字段定义。
23
+ * 返回可通过 `chat.configure` 更新的运行态字段定义。
24
24
  */
25
25
  getWritableShipFields(): ChatChannelConfigurationField[];
26
26
  }
@@ -10,7 +10,7 @@
10
10
  */
11
11
  export class ChatChannelConfiguration {
12
12
  /**
13
- * 返回可通过 `chat.configure` 写入的 downcity.json 字段定义。
13
+ * 返回可通过 `chat.configure` 更新的运行态字段定义。
14
14
  */
15
15
  getWritableShipFields() {
16
16
  return this.describe().fields.ship.filter((field) => field.writable);
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Chat channel SDK 基类与内置 channel 实现。
3
+ *
4
+ * 关键点(中文)
5
+ * - channel 对象是 ChatPlugin 的运行态配置单元。
6
+ * - env 由 channel 自己读取,ChatPlugin 不理解平台字段。
7
+ * - channelAccountId 仅作为账号池绑定能力保留,不再是 ChatPlugin 顶层配置。
8
+ */
9
+ import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
10
+ import type { StoredChannelAccount } from "@downcity/agent/internal/types/platform/Store.js";
11
+ import type { ChatChannelName } from "../../chat/types/ChannelStatus.js";
12
+ import type { ChatChannel, ChatChannelRuntimePatch } from "../../chat/types/ChatPluginOptions.js";
13
+ /**
14
+ * env 字典。
15
+ */
16
+ export type ChatChannelEnv = Record<string, string | undefined>;
17
+ /**
18
+ * Chat channel 基础配置。
19
+ */
20
+ export interface BaseChatChannelOptions {
21
+ /**
22
+ * 是否启用该 channel。
23
+ *
24
+ * 说明(中文)
25
+ * - 默认值为 `true`,因为传入 channel 对象通常表示希望启用它。
26
+ * - 可通过 chat.open / chat.close 在运行态修改。
27
+ */
28
+ enabled?: boolean;
29
+ /**
30
+ * channel 专属 env。
31
+ *
32
+ * 说明(中文)
33
+ * - 这里面放面向人类可读的环境变量名,例如 `TELEGRAM_BOT_TOKEN`。
34
+ * - channel 会自行读取所需字段。
35
+ */
36
+ env?: ChatChannelEnv;
37
+ /**
38
+ * 可选账号池绑定 ID。
39
+ *
40
+ * 说明(中文)
41
+ * - 仅在需要复用全局账号池时使用。
42
+ * - SDK 主路径推荐直接通过 `env` 传入凭据。
43
+ */
44
+ channelAccountId?: string;
45
+ /**
46
+ * 运行态展示名称。
47
+ */
48
+ name?: string;
49
+ }
50
+ declare abstract class BaseRuntimeChatChannel implements ChatChannel {
51
+ /**
52
+ * channel 名称。
53
+ */
54
+ abstract readonly name: ChatChannelName;
55
+ protected enabled: boolean;
56
+ protected env: ChatChannelEnv;
57
+ protected channelAccountId: string;
58
+ protected displayName: string;
59
+ protected constructor(options?: BaseChatChannelOptions);
60
+ isEnabled(_context: AgentContext): boolean;
61
+ getChannelAccountId(_context: AgentContext): string;
62
+ applyRuntimePatch(patch: ChatChannelRuntimePatch): void;
63
+ protected getStoredAccount(): StoredChannelAccount | null;
64
+ protected nowIso(): string;
65
+ abstract getAccount(context: AgentContext): StoredChannelAccount | null;
66
+ }
67
+ /**
68
+ * Telegram channel 配置。
69
+ */
70
+ export interface TelegramChannelOptions extends BaseChatChannelOptions {
71
+ /**
72
+ * Telegram bot token。
73
+ *
74
+ * 说明(中文)
75
+ * - 优先级高于 `env.TELEGRAM_BOT_TOKEN`。
76
+ */
77
+ botToken?: string;
78
+ }
79
+ /**
80
+ * Telegram channel。
81
+ */
82
+ export declare class TelegramChannel extends BaseRuntimeChatChannel {
83
+ readonly name: "telegram";
84
+ private readonly botToken?;
85
+ constructor(options?: TelegramChannelOptions);
86
+ getAccount(_context: AgentContext): StoredChannelAccount | null;
87
+ }
88
+ /**
89
+ * Feishu channel 配置。
90
+ */
91
+ export interface FeishuChannelOptions extends BaseChatChannelOptions {
92
+ /**
93
+ * Feishu / Lark App ID。
94
+ */
95
+ appId?: string;
96
+ /**
97
+ * Feishu / Lark App Secret。
98
+ */
99
+ appSecret?: string;
100
+ /**
101
+ * Feishu / Lark Open API 域名。
102
+ */
103
+ domain?: string;
104
+ }
105
+ /**
106
+ * Feishu channel。
107
+ */
108
+ export declare class FeishuChannel extends BaseRuntimeChatChannel {
109
+ readonly name: "feishu";
110
+ private readonly appId?;
111
+ private readonly appSecret?;
112
+ private readonly domain?;
113
+ constructor(options?: FeishuChannelOptions);
114
+ getAccount(_context: AgentContext): StoredChannelAccount | null;
115
+ }
116
+ /**
117
+ * QQ channel 配置。
118
+ */
119
+ export interface QqChannelOptions extends BaseChatChannelOptions {
120
+ /**
121
+ * QQ Bot App ID。
122
+ */
123
+ appId?: string;
124
+ /**
125
+ * QQ Bot App Secret。
126
+ */
127
+ appSecret?: string;
128
+ /**
129
+ * 是否使用 QQ 沙箱模式。
130
+ */
131
+ sandbox?: boolean;
132
+ }
133
+ /**
134
+ * QQ channel。
135
+ */
136
+ export declare class QqChannel extends BaseRuntimeChatChannel {
137
+ readonly name: "qq";
138
+ private readonly appId?;
139
+ private readonly appSecret?;
140
+ private readonly sandbox?;
141
+ constructor(options?: QqChannelOptions);
142
+ getAccount(_context: AgentContext): StoredChannelAccount | null;
143
+ }
144
+ export {};
145
+ //# sourceMappingURL=RuntimeChannel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeChannel.d.ts","sourceRoot":"","sources":["../../../src/chat/channels/RuntimeChannel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAG3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uBAAe,sBAAuB,YAAW,WAAW;IAC1D;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAExC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC;IAC9B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B,SAAS,aAAa,OAAO,GAAE,sBAA2B;IAO1D,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;IAI1C,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAInD,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IASvD,SAAS,CAAC,gBAAgB,IAAI,oBAAoB,GAAG,IAAI;IAOzD,SAAS,CAAC,MAAM,IAAI,MAAM;IAI1B,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,sBAAsB;IACzD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;gBAEvB,OAAO,GAAE,sBAA2B;IAKhD,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;CAgBhE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,sBAAsB;IACvD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,OAAO,GAAE,oBAAyB;IAO9C,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;CAsBhE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC9D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,sBAAsB;IACnD,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAU;gBAEvB,OAAO,GAAE,gBAAqB;IAO1C,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;CAsBhE"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Chat channel SDK 基类与内置 channel 实现。
3
+ *
4
+ * 关键点(中文)
5
+ * - channel 对象是 ChatPlugin 的运行态配置单元。
6
+ * - env 由 channel 自己读取,ChatPlugin 不理解平台字段。
7
+ * - channelAccountId 仅作为账号池绑定能力保留,不再是 ChatPlugin 顶层配置。
8
+ */
9
+ import { getStoredChannelAccountSync } from "../../chat/accounts/Store.js";
10
+ class BaseRuntimeChatChannel {
11
+ enabled;
12
+ env;
13
+ channelAccountId;
14
+ displayName;
15
+ constructor(options = {}) {
16
+ this.enabled = options.enabled !== false;
17
+ this.env = options.env || {};
18
+ this.channelAccountId = String(options.channelAccountId || "").trim();
19
+ this.displayName = String(options.name || "").trim();
20
+ }
21
+ isEnabled(_context) {
22
+ return this.enabled;
23
+ }
24
+ getChannelAccountId(_context) {
25
+ return this.channelAccountId;
26
+ }
27
+ applyRuntimePatch(patch) {
28
+ if (typeof patch.enabled === "boolean") {
29
+ this.enabled = patch.enabled;
30
+ }
31
+ if (Object.prototype.hasOwnProperty.call(patch, "channelAccountId")) {
32
+ this.channelAccountId = String(patch.channelAccountId || "").trim();
33
+ }
34
+ }
35
+ getStoredAccount() {
36
+ if (!this.channelAccountId)
37
+ return null;
38
+ const account = getStoredChannelAccountSync(this.channelAccountId);
39
+ if (!account || account.channel !== this.name)
40
+ return null;
41
+ return account;
42
+ }
43
+ nowIso() {
44
+ return new Date().toISOString();
45
+ }
46
+ }
47
+ /**
48
+ * Telegram channel。
49
+ */
50
+ export class TelegramChannel extends BaseRuntimeChatChannel {
51
+ name = "telegram";
52
+ botToken;
53
+ constructor(options = {}) {
54
+ super(options);
55
+ this.botToken = String(options.botToken || "").trim() || undefined;
56
+ }
57
+ getAccount(_context) {
58
+ const storedAccount = this.getStoredAccount();
59
+ if (storedAccount)
60
+ return storedAccount;
61
+ const token = String(this.botToken || this.env.TELEGRAM_BOT_TOKEN || "").trim();
62
+ if (!token)
63
+ return null;
64
+ const now = this.nowIso();
65
+ return {
66
+ id: this.channelAccountId || "chat-sdk-telegram",
67
+ channel: "telegram",
68
+ name: this.displayName || "telegram",
69
+ botToken: token,
70
+ createdAt: now,
71
+ updatedAt: now,
72
+ };
73
+ }
74
+ }
75
+ /**
76
+ * Feishu channel。
77
+ */
78
+ export class FeishuChannel extends BaseRuntimeChatChannel {
79
+ name = "feishu";
80
+ appId;
81
+ appSecret;
82
+ domain;
83
+ constructor(options = {}) {
84
+ super(options);
85
+ this.appId = String(options.appId || "").trim() || undefined;
86
+ this.appSecret = String(options.appSecret || "").trim() || undefined;
87
+ this.domain = String(options.domain || "").trim() || undefined;
88
+ }
89
+ getAccount(_context) {
90
+ const storedAccount = this.getStoredAccount();
91
+ if (storedAccount)
92
+ return storedAccount;
93
+ const appId = String(this.appId || this.env.FEISHU_APP_ID || "").trim();
94
+ const appSecret = String(this.appSecret || this.env.FEISHU_APP_SECRET || "").trim();
95
+ const domain = String(this.domain || this.env.FEISHU_DOMAIN || "").trim();
96
+ if (!appId || !appSecret)
97
+ return null;
98
+ const now = this.nowIso();
99
+ return {
100
+ id: this.channelAccountId || "chat-sdk-feishu",
101
+ channel: "feishu",
102
+ name: this.displayName || "feishu",
103
+ appId,
104
+ appSecret,
105
+ ...(domain ? { domain } : {}),
106
+ createdAt: now,
107
+ updatedAt: now,
108
+ };
109
+ }
110
+ }
111
+ /**
112
+ * QQ channel。
113
+ */
114
+ export class QqChannel extends BaseRuntimeChatChannel {
115
+ name = "qq";
116
+ appId;
117
+ appSecret;
118
+ sandbox;
119
+ constructor(options = {}) {
120
+ super(options);
121
+ this.appId = String(options.appId || "").trim() || undefined;
122
+ this.appSecret = String(options.appSecret || "").trim() || undefined;
123
+ this.sandbox = options.sandbox === true;
124
+ }
125
+ getAccount(_context) {
126
+ const storedAccount = this.getStoredAccount();
127
+ if (storedAccount)
128
+ return storedAccount;
129
+ const appId = String(this.appId || this.env.QQ_APP_ID || "").trim();
130
+ const appSecret = String(this.appSecret || this.env.QQ_APP_SECRET || "").trim();
131
+ const sandbox = this.sandbox === true ||
132
+ String(this.env.QQ_SANDBOX || "").trim().toLowerCase() === "true";
133
+ if (!appId || !appSecret)
134
+ return null;
135
+ const now = this.nowIso();
136
+ return {
137
+ id: this.channelAccountId || "chat-sdk-qq",
138
+ channel: "qq",
139
+ name: this.displayName || "qq",
140
+ appId,
141
+ appSecret,
142
+ ...(sandbox ? { sandbox: true } : {}),
143
+ createdAt: now,
144
+ updatedAt: now,
145
+ };
146
+ }
147
+ }
148
+ //# sourceMappingURL=RuntimeChannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeChannel.js","sourceRoot":"","sources":["../../../src/chat/channels/RuntimeChannel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ChatAuthorizationRuntime:ChatPlugin 内置授权能力。
3
+ *
4
+ * 关键点(中文)
5
+ * - 授权能力归属于 ChatPlugin,不再作为独立 plugin 注册。
6
+ * - chat runtime 仍通过通用 plugin hook / resolve 点调用,保持执行链路统一。
7
+ * - action 名称统一带 `authorization-` 前缀,避免和 chat 会话动作混淆。
8
+ */
9
+ import type { PluginActions, PluginHooks, PluginResolves } from "@downcity/agent/internal/plugin/types/Plugin.js";
10
+ /**
11
+ * 创建 ChatPlugin 内置授权 hooks。
12
+ */
13
+ export declare function createChatAuthorizationHooks(): PluginHooks;
14
+ /**
15
+ * 创建 ChatPlugin 内置授权 resolve 点。
16
+ */
17
+ export declare function createChatAuthorizationResolves(): PluginResolves;
18
+ /**
19
+ * 创建 ChatPlugin 内置授权 actions。
20
+ */
21
+ export declare function createChatAuthorizationActions(): PluginActions;
22
+ //# sourceMappingURL=ChatAuthorizationRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatAuthorizationRuntime.d.ts","sourceRoot":"","sources":["../../../src/chat/runtime/ChatAuthorizationRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,iDAAiD,CAAC;AA+DzD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,WAAW,CAsD1D;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,cAAc,CAmBhE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,aAAa,CAkE9D"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * ChatAuthorizationRuntime:ChatPlugin 内置授权能力。
3
+ *
4
+ * 关键点(中文)
5
+ * - 授权能力归属于 ChatPlugin,不再作为独立 plugin 注册。
6
+ * - chat runtime 仍通过通用 plugin hook / resolve 点调用,保持执行链路统一。
7
+ * - action 名称统一带 `authorization-` 前缀,避免和 chat 会话动作混淆。
8
+ */
9
+ import { CHAT_PLUGIN_POINTS } from "../../chat/runtime/PluginPoints.js";
10
+ import { CHAT_AUTHORIZATION_ACTIONS, CHAT_AUTHORIZATION_CATALOG, } from "../../auth/types/AuthPlugin.js";
11
+ import { readChatAuthorizationConfig, setChatAuthorizationUserRole, writeChatAuthorizationConfig, } from "../../auth/runtime/AuthorizationConfig.js";
12
+ import { evaluateIncomingChatAuthorization, resolveAuthorizedUserRole, } from "../../auth/runtime/AuthorizationPolicy.js";
13
+ import { readAuthorizationSnapshot, recordObservedAuthorizationPrincipal, } from "../../auth/runtime/AuthorizationStore.js";
14
+ function toChannel(value) {
15
+ const text = String(value || "").trim().toLowerCase();
16
+ if (text === "telegram" || text === "feishu" || text === "qq")
17
+ return text;
18
+ return null;
19
+ }
20
+ function toRecord(value) {
21
+ if (!value || typeof value !== "object" || Array.isArray(value))
22
+ return {};
23
+ return value;
24
+ }
25
+ function toEvaluateInput(payload) {
26
+ const channel = toChannel(payload.channel);
27
+ if (!channel) {
28
+ throw new Error("chat.authorizeIncoming requires a valid channel");
29
+ }
30
+ return {
31
+ channel,
32
+ chatId: String(payload.chatId || "").trim(),
33
+ ...(typeof payload.chatType === "string" ? { chatType: payload.chatType.trim() } : {}),
34
+ ...(typeof payload.userId === "string" ? { userId: payload.userId.trim() } : {}),
35
+ ...(typeof payload.username === "string" ? { username: payload.username.trim() } : {}),
36
+ ...(typeof payload.chatTitle === "string" ? { chatTitle: payload.chatTitle.trim() } : {}),
37
+ };
38
+ }
39
+ function toSnapshotData(snapshot) {
40
+ return {
41
+ catalog: CHAT_AUTHORIZATION_CATALOG,
42
+ config: snapshot.config,
43
+ users: snapshot.users,
44
+ chats: snapshot.chats,
45
+ };
46
+ }
47
+ /**
48
+ * 创建 ChatPlugin 内置授权 hooks。
49
+ */
50
+ export function createChatAuthorizationHooks() {
51
+ return {
52
+ guard: {
53
+ [CHAT_PLUGIN_POINTS.authorizeIncoming]: [
54
+ async ({ context, value }) => {
55
+ const input = value && typeof value === "object" && !Array.isArray(value)
56
+ ? value
57
+ : {};
58
+ const evaluateInput = toEvaluateInput(input);
59
+ const authorizationConfig = readChatAuthorizationConfig(context);
60
+ const result = evaluateIncomingChatAuthorization({
61
+ config: context.config,
62
+ channel: evaluateInput.channel,
63
+ input: evaluateInput,
64
+ authorizationConfig,
65
+ });
66
+ if (result.decision !== "allow") {
67
+ throw new Error(result.reason || "chat authorization blocked");
68
+ }
69
+ },
70
+ ],
71
+ },
72
+ effect: {
73
+ [CHAT_PLUGIN_POINTS.observePrincipal]: [
74
+ async ({ context, value }) => {
75
+ const input = toRecord(value);
76
+ const channel = toChannel(input.channel);
77
+ if (!channel) {
78
+ throw new Error("chat.observePrincipal requires a valid channel");
79
+ }
80
+ await recordObservedAuthorizationPrincipal({
81
+ context,
82
+ channel,
83
+ chatId: String(input.chatId || "").trim(),
84
+ ...(typeof input.chatType === "string"
85
+ ? { chatType: input.chatType.trim() }
86
+ : {}),
87
+ ...(typeof input.chatTitle === "string"
88
+ ? { chatTitle: input.chatTitle.trim() }
89
+ : {}),
90
+ ...(typeof input.userId === "string"
91
+ ? { userId: input.userId.trim() }
92
+ : {}),
93
+ ...(typeof input.username === "string"
94
+ ? { username: input.username.trim() }
95
+ : {}),
96
+ });
97
+ },
98
+ ],
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * 创建 ChatPlugin 内置授权 resolve 点。
104
+ */
105
+ export function createChatAuthorizationResolves() {
106
+ return {
107
+ [CHAT_PLUGIN_POINTS.resolveUserRole]: async ({ context, value }) => {
108
+ const input = value && typeof value === "object" && !Array.isArray(value)
109
+ ? value
110
+ : {};
111
+ const channel = toChannel(input.channel);
112
+ if (!channel) {
113
+ throw new Error("chat.resolveUserRole requires a valid channel");
114
+ }
115
+ const role = resolveAuthorizedUserRole({
116
+ channel,
117
+ userId: String(input.userId || "").trim(),
118
+ rootPath: context.rootPath,
119
+ });
120
+ return (role || null);
121
+ },
122
+ };
123
+ }
124
+ /**
125
+ * 创建 ChatPlugin 内置授权 actions。
126
+ */
127
+ export function createChatAuthorizationActions() {
128
+ return {
129
+ [CHAT_AUTHORIZATION_ACTIONS.snapshot]: {
130
+ execute: async ({ context }) => {
131
+ const snapshot = await readAuthorizationSnapshot({
132
+ context,
133
+ });
134
+ return {
135
+ success: true,
136
+ data: toSnapshotData(snapshot),
137
+ };
138
+ },
139
+ },
140
+ [CHAT_AUTHORIZATION_ACTIONS.readConfig]: {
141
+ execute: async ({ context }) => {
142
+ return {
143
+ success: true,
144
+ data: readChatAuthorizationConfig(context),
145
+ };
146
+ },
147
+ },
148
+ [CHAT_AUTHORIZATION_ACTIONS.writeConfig]: {
149
+ execute: async ({ context, payload }) => {
150
+ const body = toRecord(payload);
151
+ const nextConfig = body.config && typeof body.config === "object" && !Array.isArray(body.config)
152
+ ? body.config
153
+ : {};
154
+ await writeChatAuthorizationConfig({
155
+ context,
156
+ nextConfig,
157
+ });
158
+ return {
159
+ success: true,
160
+ data: readChatAuthorizationConfig(context),
161
+ };
162
+ },
163
+ },
164
+ [CHAT_AUTHORIZATION_ACTIONS.setUserRole]: {
165
+ execute: async ({ context, payload }) => {
166
+ const body = toRecord(payload);
167
+ const channel = toChannel(body.channel);
168
+ if (!channel) {
169
+ return {
170
+ success: false,
171
+ error: "authorization-set-user-role requires a valid channel",
172
+ message: "authorization-set-user-role requires a valid channel",
173
+ };
174
+ }
175
+ await setChatAuthorizationUserRole({
176
+ context,
177
+ channel,
178
+ userId: String(body.userId || "").trim(),
179
+ roleId: String(body.roleId || "").trim(),
180
+ });
181
+ return {
182
+ success: true,
183
+ data: readChatAuthorizationConfig(context),
184
+ };
185
+ },
186
+ },
187
+ };
188
+ }
189
+ //# sourceMappingURL=ChatAuthorizationRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatAuthorizationRuntime.js","sourceRoot":"","sources":["../../../src/chat/runtime/ChatAuthorizationRuntime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatChannelActions.d.ts","sourceRoot":"","sources":["../../../src/chat/runtime/ChatChannelActions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAkB3E;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;CAClC;;;;;GAWA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;;;GA6CA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;GAkCA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;GA0BA;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;CACjC;;;;;GAoBA;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,8BAA8B,CAAC;CACzC;;;;;;;;;GAcA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;;;;GA0DA"}
1
+ {"version":3,"file":"ChatChannelActions.d.ts","sourceRoot":"","sources":["../../../src/chat/runtime/ChatChannelActions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AA8B3E;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;CAClC;;;;;GAWA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;;;GA6CA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;GAkCA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;GA0BA;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;CACjC;;;;;GAoBA;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,8BAA8B,CAAC;CACzC;;;;;;;;;GAcA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;;;;GA6DA"}
@@ -7,9 +7,16 @@
7
7
  * - 对外只暴露 action 级入口,供 ChatPluginActions 装配使用。
8
8
  */
9
9
  import { getStoredChannelAccountSync } from "../../chat/accounts/Store.js";
10
- import { describeChatChannelConfiguration, getChatChannelStatus, listChatChannelConfigurationDescriptions, normalizeChatChannelConfigPatch, setChatChannelConfig, setChatChannelEnabled, } from "./ChatChannelConfig.js";
11
- import { getChatChannelBot, resolveTargetChannels, } from "./ChatChannelCore.js";
10
+ import { describeChatChannelConfiguration, getChatChannelStatus, listChatChannelConfigurationDescriptions, normalizeChatChannelConfigPatch, } from "./ChatChannelConfig.js";
11
+ import { getChatChannelBot, resolveChatPluginBindings, resolveTargetChannels, } from "./ChatChannelCore.js";
12
12
  import { startSingleChatChannel, stopSingleChatChannel, } from "./ChatChannelLifecycle.js";
13
+ function getChatRuntimeBindings(context) {
14
+ const plugin = resolveChatPluginBindings(context);
15
+ if (!plugin?.applyChannelRuntimePatch) {
16
+ throw new Error("ChatPlugin runtime instance is not available");
17
+ }
18
+ return plugin;
19
+ }
13
20
  /**
14
21
  * 执行 `chat.status` action。
15
22
  */
@@ -109,9 +116,9 @@ export async function executeChatReconnectAction(params) {
109
116
  */
110
117
  export async function executeChatOpenAction(params) {
111
118
  const targets = resolveTargetChannels(params.payload.channel);
119
+ const plugin = getChatRuntimeBindings(params.context);
112
120
  for (const channel of targets) {
113
- await setChatChannelEnabled({
114
- context: params.context,
121
+ plugin.applyChannelRuntimePatch({
115
122
  channel,
116
123
  enabled: true,
117
124
  });
@@ -137,10 +144,10 @@ export async function executeChatOpenAction(params) {
137
144
  */
138
145
  export async function executeChatCloseAction(params) {
139
146
  const targets = resolveTargetChannels(params.payload.channel);
147
+ const plugin = getChatRuntimeBindings(params.context);
140
148
  for (const channel of targets) {
141
149
  await stopSingleChatChannel(params.state, channel);
142
- await setChatChannelEnabled({
143
- context: params.context,
150
+ plugin.applyChannelRuntimePatch({
144
151
  channel,
145
152
  enabled: false,
146
153
  });
@@ -204,10 +211,13 @@ export async function executeChatConfigureAction(params) {
204
211
  }
205
212
  }
206
213
  }
207
- await setChatChannelConfig({
208
- context: params.context,
214
+ const plugin = getChatRuntimeBindings(params.context);
215
+ plugin.applyChannelRuntimePatch({
209
216
  channel,
210
- patch,
217
+ ...(typeof patch.enabled === "boolean" ? { enabled: patch.enabled } : {}),
218
+ ...(Object.prototype.hasOwnProperty.call(patch, "channelAccountId")
219
+ ? { channelAccountId: String(patch.channelAccountId || "").trim() || null }
220
+ : {}),
211
221
  });
212
222
  // 关键点(中文):默认重载一次目标渠道,让新配置立刻生效。
213
223
  const restart = params.payload.restart !== false;