@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
@@ -1,143 +0,0 @@
1
- /**
2
- * TTS 依赖安装器。
3
- *
4
- * 关键点(中文)
5
- * - 统一管理 `town tts` 的 Python 依赖安装逻辑。
6
- * - 根据模型自动推导 runner(qwen3 / kokoro)并执行 `python -m pip install`。
7
- */
8
- import type { TtsModelId, TtsRuntimeFamily } from "../../tts/types/Tts.js";
9
- /**
10
- * TTS 依赖 runner 类型。
11
- */
12
- export type TtsDependencyRunner = TtsRuntimeFamily;
13
- /**
14
- * 单个 runner 的安装摘要。
15
- */
16
- export interface TtsDependencyInstallItem {
17
- /**
18
- * 当前安装 runner。
19
- */
20
- runner: TtsDependencyRunner;
21
- /**
22
- * Python 可执行文件。
23
- */
24
- pythonBin: string;
25
- /**
26
- * 执行参数(不含 pythonBin)。
27
- */
28
- args: string[];
29
- /**
30
- * 安装包列表。
31
- */
32
- packages: string[];
33
- /**
34
- * 实际执行的命令行。
35
- */
36
- command: string;
37
- /**
38
- * 执行耗时(毫秒)。
39
- */
40
- elapsedMs: number;
41
- /**
42
- * 是否跳过安装。
43
- */
44
- skipped?: boolean;
45
- /**
46
- * 跳过原因(可选)。
47
- */
48
- skipReason?: string;
49
- /**
50
- * stdout 尾部(可选)。
51
- */
52
- stdoutTail?: string;
53
- /**
54
- * stderr 尾部(可选)。
55
- */
56
- stderrTail?: string;
57
- }
58
- /**
59
- * 依赖安装结果。
60
- */
61
- export interface TtsDependencyInstallResult {
62
- /**
63
- * 本次使用的 Python 可执行文件。
64
- */
65
- pythonBin: string;
66
- /**
67
- * 本次处理的 runner 列表。
68
- */
69
- runners: TtsDependencyRunner[];
70
- /**
71
- * 各 runner 的安装摘要。
72
- */
73
- items: TtsDependencyInstallItem[];
74
- /**
75
- * 是否使用了虚拟环境安装。
76
- */
77
- usedVirtualEnv: boolean;
78
- /**
79
- * 虚拟环境目录(仅 `usedVirtualEnv=true` 时存在)。
80
- */
81
- venvDir?: string;
82
- /**
83
- * 初始尝试使用的 Python(仅进入虚拟环境回退时存在)。
84
- */
85
- basePythonBin?: string;
86
- }
87
- /**
88
- * 依赖安装输入参数。
89
- */
90
- export interface TtsDependencyInstallInput {
91
- /**
92
- * Python 可执行文件(默认 `python3`)。
93
- */
94
- pythonBin?: string;
95
- /**
96
- * 需要安装的 runner 列表。
97
- */
98
- runners: TtsDependencyRunner[];
99
- /**
100
- * 是否使用 `pip -U` 升级。
101
- */
102
- upgrade?: boolean;
103
- /**
104
- * pip 安装超时(毫秒)。
105
- */
106
- timeoutMs?: number;
107
- /**
108
- * 虚拟环境目录(可选)。
109
- */
110
- venvDir?: string;
111
- }
112
- export declare function resolveTtsVenvPythonBin(venvDir: string): string;
113
- /**
114
- * 返回 TTS 默认虚拟环境目录。
115
- */
116
- export declare function resolveDefaultTtsVenvDir(): string;
117
- /**
118
- * 返回 TTS 默认虚拟环境 Python 路径。
119
- */
120
- export declare function resolveDefaultTtsVenvPythonBin(): string;
121
- /**
122
- * 判断是否为 PEP 668(externally-managed-environment)错误。
123
- */
124
- export declare function isPep668InstallError(text: string): boolean;
125
- export declare function ensureTtsVirtualEnv(params: {
126
- /**
127
- * 虚拟环境目录。
128
- */
129
- venvDir?: string;
130
- /**
131
- * 用于创建 venv 的基础 Python。
132
- */
133
- basePythonBin?: string;
134
- }): Promise<string>;
135
- /**
136
- * 安装 TTS Python 依赖。
137
- */
138
- export declare function installTtsDependencies(input: TtsDependencyInstallInput): Promise<TtsDependencyInstallResult>;
139
- /**
140
- * 根据模型列表推导需要安装的 runner 集合。
141
- */
142
- export declare function resolveTtsRunnersByModels(modelIds: TtsModelId[]): TtsDependencyRunner[];
143
- //# sourceMappingURL=DependencyInstaller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyInstaller.d.ts","sourceRoot":"","sources":["../../../src/tts/runtime/DependencyInstaller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQvE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;OAEG;IACH,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4BD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAS1D;AA+ID,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,CAalB;AAkCD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAgCrC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAUvF"}
@@ -1,261 +0,0 @@
1
- /**
2
- * TTS 依赖安装器。
3
- *
4
- * 关键点(中文)
5
- * - 统一管理 `town tts` 的 Python 依赖安装逻辑。
6
- * - 根据模型自动推导 runner(qwen3 / kokoro)并执行 `python -m pip install`。
7
- */
8
- import { execFile as execFileCb } from "node:child_process";
9
- import os from "node:os";
10
- import path from "node:path";
11
- import { promisify } from "node:util";
12
- import fs from "fs-extra";
13
- const execFileAsync = promisify(execFileCb);
14
- const DEFAULT_PIP_TIMEOUT_MS = 300_000;
15
- const OUTPUT_TAIL_LIMIT = 1200;
16
- const DEFAULT_VENV_DIR = path.join(os.homedir(), ".downcity", "venvs", "tts");
17
- function normalizePythonBin(input) {
18
- const text = String(input || "").trim();
19
- return text || "python3";
20
- }
21
- function normalizeTimeoutMs(value) {
22
- if (!Number.isFinite(value))
23
- return DEFAULT_PIP_TIMEOUT_MS;
24
- const ms = Math.floor(Number(value));
25
- if (ms < 5_000)
26
- return 5_000;
27
- if (ms > 1_800_000)
28
- return 1_800_000;
29
- return ms;
30
- }
31
- function normalizeVenvDir(input) {
32
- const text = String(input || "").trim();
33
- if (!text)
34
- return DEFAULT_VENV_DIR;
35
- return path.resolve(text);
36
- }
37
- function tailText(value) {
38
- const text = String(value || "").trim();
39
- if (!text)
40
- return undefined;
41
- if (text.length <= OUTPUT_TAIL_LIMIT)
42
- return text;
43
- return text.slice(text.length - OUTPUT_TAIL_LIMIT);
44
- }
45
- export function resolveTtsVenvPythonBin(venvDir) {
46
- return path.join(venvDir, "bin", "python");
47
- }
48
- /**
49
- * 返回 TTS 默认虚拟环境目录。
50
- */
51
- export function resolveDefaultTtsVenvDir() {
52
- return DEFAULT_VENV_DIR;
53
- }
54
- /**
55
- * 返回 TTS 默认虚拟环境 Python 路径。
56
- */
57
- export function resolveDefaultTtsVenvPythonBin() {
58
- return resolveTtsVenvPythonBin(DEFAULT_VENV_DIR);
59
- }
60
- /**
61
- * 判断是否为 PEP 668(externally-managed-environment)错误。
62
- */
63
- export function isPep668InstallError(text) {
64
- const msg = String(text || "").toLowerCase();
65
- if (!msg)
66
- return false;
67
- return (msg.includes("externally-managed-environment") ||
68
- msg.includes("this environment is externally managed") ||
69
- msg.includes("pep 668") ||
70
- msg.includes("--break-system-packages"));
71
- }
72
- function dedupeRunners(runners) {
73
- const seen = new Set();
74
- const out = [];
75
- for (const runner of runners) {
76
- if (seen.has(runner))
77
- continue;
78
- seen.add(runner);
79
- out.push(runner);
80
- }
81
- return out;
82
- }
83
- function getRunnerPackages(runner) {
84
- if (runner === "qwen3") {
85
- return ["qwen-tts", "soundfile", "torch", "torchaudio", "transformers", "accelerate"];
86
- }
87
- return ["kokoro==0.7.16", "soundfile", "misaki[zh]", "torch"];
88
- }
89
- async function checkRunnerPackagesInstalled(params) {
90
- const args = ["-m", "pip", "show", ...params.packages.map((item) => item.replace(/\[.*\]$/, "").replace(/==.+$/, ""))];
91
- const command = [params.pythonBin, ...args].join(" ");
92
- try {
93
- await execFileAsync(params.pythonBin, args, {
94
- timeout: params.timeoutMs,
95
- maxBuffer: 8 * 1024 * 1024,
96
- });
97
- return {
98
- installed: true,
99
- args,
100
- command,
101
- };
102
- }
103
- catch {
104
- return {
105
- installed: false,
106
- args,
107
- command,
108
- };
109
- }
110
- }
111
- async function installRunnerWithPython(params) {
112
- const packages = getRunnerPackages(params.runner);
113
- const checkStartedAt = Date.now();
114
- const checkResult = await checkRunnerPackagesInstalled({
115
- pythonBin: params.pythonBin,
116
- packages,
117
- timeoutMs: params.timeoutMs,
118
- });
119
- if (checkResult.installed) {
120
- return {
121
- success: true,
122
- item: {
123
- runner: params.runner,
124
- pythonBin: params.pythonBin,
125
- args: checkResult.args,
126
- packages,
127
- command: checkResult.command,
128
- elapsedMs: Date.now() - checkStartedAt,
129
- skipped: true,
130
- skipReason: "already-installed",
131
- },
132
- };
133
- }
134
- const args = [
135
- "-m",
136
- "pip",
137
- "install",
138
- ...(params.upgrade ? ["-U"] : []),
139
- ...packages,
140
- ];
141
- const command = [params.pythonBin, ...args].join(" ");
142
- const startedAt = Date.now();
143
- try {
144
- const { stdout, stderr } = await execFileAsync(params.pythonBin, args, {
145
- timeout: params.timeoutMs,
146
- maxBuffer: 8 * 1024 * 1024,
147
- });
148
- return {
149
- success: true,
150
- item: {
151
- runner: params.runner,
152
- pythonBin: params.pythonBin,
153
- args,
154
- packages,
155
- command,
156
- elapsedMs: Date.now() - startedAt,
157
- stdoutTail: tailText(String(stdout || "")),
158
- stderrTail: tailText(String(stderr || "")),
159
- },
160
- };
161
- }
162
- catch (error) {
163
- const errorLike = error;
164
- const reason = tailText(String(errorLike.stderr || "")) ||
165
- tailText(String(errorLike.stdout || "")) ||
166
- String(errorLike.message || error);
167
- return {
168
- success: false,
169
- failure: {
170
- runner: params.runner,
171
- command,
172
- reason,
173
- },
174
- };
175
- }
176
- }
177
- export async function ensureTtsVirtualEnv(params) {
178
- const venvDir = normalizeVenvDir(params.venvDir);
179
- const basePythonBin = normalizePythonBin(params.basePythonBin);
180
- const pythonBin = resolveTtsVenvPythonBin(venvDir);
181
- if (await fs.pathExists(pythonBin)) {
182
- return pythonBin;
183
- }
184
- await fs.ensureDir(venvDir);
185
- await execFileAsync(basePythonBin, ["-m", "venv", venvDir], {
186
- timeout: DEFAULT_PIP_TIMEOUT_MS,
187
- maxBuffer: 8 * 1024 * 1024,
188
- });
189
- return pythonBin;
190
- }
191
- async function installAllRunners(params) {
192
- const items = [];
193
- const failures = [];
194
- for (const runner of params.runners) {
195
- const result = await installRunnerWithPython({
196
- pythonBin: params.pythonBin,
197
- runner,
198
- upgrade: params.upgrade,
199
- timeoutMs: params.timeoutMs,
200
- });
201
- if (result.success) {
202
- items.push(result.item);
203
- }
204
- else {
205
- failures.push(result.failure);
206
- }
207
- }
208
- return {
209
- success: failures.length === 0,
210
- items,
211
- failures,
212
- };
213
- }
214
- /**
215
- * 安装 TTS Python 依赖。
216
- */
217
- export async function installTtsDependencies(input) {
218
- const runners = dedupeRunners(input.runners);
219
- const basePythonBin = normalizePythonBin(input.pythonBin);
220
- const timeoutMs = normalizeTimeoutMs(input.timeoutMs);
221
- const upgrade = input.upgrade === true;
222
- const venvDir = normalizeVenvDir(input.venvDir);
223
- const venvPythonBin = await ensureTtsVirtualEnv({
224
- venvDir,
225
- basePythonBin,
226
- });
227
- const venvAttempt = await installAllRunners({
228
- pythonBin: venvPythonBin,
229
- runners,
230
- upgrade,
231
- timeoutMs,
232
- });
233
- if (!venvAttempt.success) {
234
- throw new Error(venvAttempt.failures
235
- .map((item) => `${item.runner}: ${item.reason}`)
236
- .join("\n"));
237
- }
238
- return {
239
- pythonBin: venvPythonBin,
240
- runners,
241
- items: venvAttempt.items,
242
- usedVirtualEnv: true,
243
- venvDir,
244
- basePythonBin,
245
- };
246
- }
247
- /**
248
- * 根据模型列表推导需要安装的 runner 集合。
249
- */
250
- export function resolveTtsRunnersByModels(modelIds) {
251
- const runners = new Set();
252
- for (const modelId of modelIds) {
253
- if (modelId === "qwen3-tts-0.6b") {
254
- runners.add("qwen3");
255
- continue;
256
- }
257
- runners.add("kokoro");
258
- }
259
- return [...runners];
260
- }
261
- //# sourceMappingURL=DependencyInstaller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyInstaller.js","sourceRoot":"","sources":["../../../src/tts/runtime/DependencyInstaller.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- /**
2
- * TTS 模型安装器。
3
- *
4
- * 关键点(中文)
5
- * - 统一把 HuggingFace 资源下载到本地模型目录。
6
- * - 支持“整仓下载”与“仅下载指定文件”两种模式。
7
- */
8
- import type { TtsModelCatalogItem, TtsModelId } from "../../tts/types/Tts.js";
9
- /**
10
- * TTS 模型安装结果。
11
- */
12
- export interface TtsModelInstallResult {
13
- /**
14
- * 模型目录(绝对路径)。
15
- */
16
- modelDir: string;
17
- /**
18
- * 本次下载文件数。
19
- */
20
- downloadedFiles: number;
21
- /**
22
- * 本次跳过文件数(已存在且未强制覆盖)。
23
- */
24
- skippedFiles: number;
25
- /**
26
- * 本次实际下载的文件路径(相对模型目录)。
27
- */
28
- downloadedFilePaths: string[];
29
- /**
30
- * 本次跳过的文件路径(相对模型目录)。
31
- */
32
- skippedFilePaths: string[];
33
- }
34
- /**
35
- * 判断模型在本地是否已安装。
36
- *
37
- * 关键点(中文)
38
- * - 优先识别安装清单 `downcity.tts.install.json`。
39
- * - 若无清单但目录非空,也视为已存在模型,避免重复下载。
40
- */
41
- export declare function detectLocalTtsModelInstallState(input: {
42
- /**
43
- * 模型 ID。
44
- */
45
- modelId: TtsModelId;
46
- /**
47
- * TTS 模型根目录。
48
- */
49
- modelsRootDir: string;
50
- }): Promise<{
51
- /**
52
- * 模型目录(绝对路径)。
53
- */
54
- modelDir: string;
55
- /**
56
- * 是否判断为“已安装”。
57
- */
58
- installed: boolean;
59
- /**
60
- * 已安装来源。
61
- */
62
- source?: "manifest" | "directory";
63
- }>;
64
- /**
65
- * 安装指定 TTS 模型到本地目录。
66
- *
67
- * 关键点(中文)
68
- * - 使用 HTTP 文件级下载,不依赖 git-lfs。
69
- * - 默认复用已有文件;`force=true` 时覆盖重下。
70
- */
71
- export declare function installTtsModelFromHuggingFace(input: {
72
- /**
73
- * 目标模型目录项。
74
- */
75
- model: TtsModelCatalogItem;
76
- /**
77
- * TTS 模型根目录。
78
- */
79
- modelsRootDir: string;
80
- /**
81
- * 是否强制覆盖。
82
- */
83
- force?: boolean;
84
- /**
85
- * HuggingFace Token(可选)。
86
- */
87
- hfToken?: string;
88
- }): Promise<TtsModelInstallResult>;
89
- //# sourceMappingURL=Installer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Installer.d.ts","sourceRoot":"","sources":["../../../src/tts/runtime/Installer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAW1E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA8FD;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC;IACV;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACnC,CAAC,CAoCD;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAC;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+DjC"}