@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,344 +0,0 @@
1
- /**
2
- * TTS Plugin Dependency Helper。
3
- *
4
- * 关键点(中文)
5
- * - TTS 的模型安装、配置读写与可用性检查都内聚在 plugin 内部。
6
- * - Console 只调用 plugin action,不直接理解底层资源结构。
7
- */
8
- import { execFile as execFileCb } from "node:child_process";
9
- import { promisify } from "node:util";
10
- import { getTtsModelCatalogItem, resolveTtsModelId, TTS_MODEL_CATALOG, } from "../tts/runtime/Catalog.js";
11
- import { detectLocalTtsModelInstallState, installTtsModelFromHuggingFace, } from "../tts/runtime/Installer.js";
12
- import { ensureTtsVirtualEnv, installTtsDependencies, resolveDefaultTtsVenvPythonBin, resolveTtsRunnersByModels, } from "../tts/runtime/DependencyInstaller.js";
13
- import { resolveTtsModelsRootDir } from "../tts/runtime/Paths.js";
14
- const execFileAsync = promisify(execFileCb);
15
- function readTtsPluginRecord(context) {
16
- const current = context.config.plugins?.tts;
17
- if (!current || typeof current !== "object" || Array.isArray(current)) {
18
- return {};
19
- }
20
- return current;
21
- }
22
- function toJsonObject(input) {
23
- const out = {};
24
- if (!input)
25
- return out;
26
- for (const [key, value] of Object.entries(input)) {
27
- if (value === undefined)
28
- continue;
29
- if (value === null ||
30
- typeof value === "string" ||
31
- typeof value === "number" ||
32
- typeof value === "boolean") {
33
- out[key] = value;
34
- continue;
35
- }
36
- if (Array.isArray(value)) {
37
- out[key] = value
38
- .filter((item) => item !== undefined)
39
- .map((item) => item);
40
- continue;
41
- }
42
- if (typeof value === "object") {
43
- out[key] = toJsonObject(value);
44
- }
45
- }
46
- return out;
47
- }
48
- function normalizeFormat(value) {
49
- return String(value || "").trim().toLowerCase() === "flac" ? "flac" : "wav";
50
- }
51
- function normalizeTtsPythonBin(value) {
52
- const text = String(value || "").trim();
53
- if (!text || text === "python3") {
54
- return resolveDefaultTtsVenvPythonBin();
55
- }
56
- return text;
57
- }
58
- async function readPythonVersionInfo(pythonBin) {
59
- try {
60
- const { stdout, stderr } = await execFileAsync(pythonBin, ["--version"], {
61
- timeout: 15_000,
62
- maxBuffer: 1024 * 1024,
63
- });
64
- const text = String(stdout || stderr || "").trim();
65
- const match = text.match(/Python\s+(\d+)\.(\d+)\.(\d+)/i);
66
- if (!match)
67
- return null;
68
- return {
69
- major: Number(match[1]),
70
- minor: Number(match[2]),
71
- patch: Number(match[3]),
72
- raw: text,
73
- };
74
- }
75
- catch {
76
- return null;
77
- }
78
- }
79
- function getTtsPythonCompatibilityReason(params) {
80
- if (!params.version)
81
- return null;
82
- if (params.modelId === "kokoro-82m") {
83
- if (params.version.major > 3 || (params.version.major === 3 && params.version.minor >= 13)) {
84
- return `kokoro-82m currently requires Python < 3.13, current is ${params.version.major}.${params.version.minor}.${params.version.patch}`;
85
- }
86
- }
87
- return null;
88
- }
89
- /**
90
- * 读取 TTS Plugin 配置。
91
- */
92
- export function readTtsPluginConfig(context) {
93
- const { enabled: _ignoredEnabled, ...current } = readTtsPluginRecord(context);
94
- return {
95
- provider: "local",
96
- ...(typeof current.modelId === "string" ? { modelId: current.modelId } : {}),
97
- ...(typeof current.modelsDir === "string" ? { modelsDir: current.modelsDir } : {}),
98
- pythonBin: normalizeTtsPythonBin(current.pythonBin),
99
- ...(typeof current.language === "string" ? { language: current.language } : {}),
100
- ...(typeof current.voice === "string" ? { voice: current.voice } : {}),
101
- ...(typeof current.outputDir === "string" ? { outputDir: current.outputDir } : {}),
102
- ...(typeof current.timeoutMs === "number" ? { timeoutMs: current.timeoutMs } : {}),
103
- ...(typeof current.speed === "number" ? { speed: current.speed } : {}),
104
- format: normalizeFormat(current.format),
105
- ...(Array.isArray(current.installedModels)
106
- ? { installedModels: current.installedModels }
107
- : {}),
108
- };
109
- }
110
- /**
111
- * 写入完整 TTS plugin 配置。
112
- */
113
- export async function writeTtsPluginConfig(params) {
114
- if (!params.context.config.plugins) {
115
- params.context.config.plugins = {};
116
- }
117
- const next = {
118
- ...params.value,
119
- };
120
- delete next.enabled;
121
- params.context.config.plugins.tts = toJsonObject(next);
122
- await params.context.pluginConfig.persistProjectPlugins(params.context.config.plugins);
123
- return params.context.config.plugins.tts;
124
- }
125
- async function checkPythonPackageImports(params) {
126
- const importScript = params.modelId === "qwen3-tts-0.6b"
127
- ? "import qwen_tts, soundfile"
128
- : "import kokoro, soundfile";
129
- try {
130
- await execFileAsync(params.pythonBin, ["-c", importScript], {
131
- timeout: 30_000,
132
- maxBuffer: 1024 * 1024,
133
- });
134
- return null;
135
- }
136
- catch (error) {
137
- return `python packages missing: ${String(error)}`;
138
- }
139
- }
140
- /**
141
- * 检查 TTS 依赖可用性。
142
- */
143
- export async function checkTtsSynthesizer(context) {
144
- const config = readTtsPluginConfig(context);
145
- const reasons = [];
146
- const modelId = resolveTtsModelId(String(config.modelId || ""));
147
- if (!modelId) {
148
- reasons.push("tts modelId is missing");
149
- return {
150
- available: false,
151
- reasons,
152
- };
153
- }
154
- const modelsRootDir = resolveTtsModelsRootDir({
155
- projectRoot: context.rootPath,
156
- modelsDir: config.modelsDir,
157
- });
158
- const installState = await detectLocalTtsModelInstallState({
159
- modelId,
160
- modelsRootDir,
161
- });
162
- if (!installState.installed) {
163
- reasons.push(`tts model is not installed: ${modelId}`);
164
- }
165
- const pythonBin = normalizeTtsPythonBin(config.pythonBin);
166
- const pythonVersion = await readPythonVersionInfo(pythonBin);
167
- if (!pythonVersion) {
168
- reasons.push(`python runtime missing: ${pythonBin}`);
169
- return {
170
- available: false,
171
- reasons,
172
- };
173
- }
174
- const compatibilityReason = getTtsPythonCompatibilityReason({
175
- modelId,
176
- version: pythonVersion,
177
- });
178
- if (compatibilityReason) {
179
- reasons.push(compatibilityReason);
180
- return {
181
- available: false,
182
- reasons,
183
- details: {
184
- modelDir: installState.modelDir,
185
- source: installState.source || null,
186
- pythonVersion: pythonVersion.raw,
187
- },
188
- };
189
- }
190
- const importError = await checkPythonPackageImports({
191
- pythonBin,
192
- modelId,
193
- });
194
- if (importError) {
195
- reasons.push(importError);
196
- }
197
- return {
198
- available: reasons.length === 0,
199
- reasons,
200
- details: {
201
- modelDir: installState.modelDir,
202
- source: installState.source || null,
203
- },
204
- };
205
- }
206
- /**
207
- * 安装或修复 TTS 依赖。
208
- */
209
- export async function installTtsSynthesizer(params) {
210
- const context = params.context;
211
- const input = params.input;
212
- const config = readTtsPluginConfig(context);
213
- const logs = [];
214
- const requestedModelIds = (Array.isArray(input?.modelIds) ? input.modelIds : [])
215
- .map((item) => resolveTtsModelId(String(item || "").trim()))
216
- .filter((item) => Boolean(item));
217
- const selectedModelIds = requestedModelIds.length > 0
218
- ? requestedModelIds
219
- : [resolveTtsModelId(String(config.modelId || "qwen3-tts-0.6b")) || "qwen3-tts-0.6b"];
220
- const modelsRootDir = resolveTtsModelsRootDir({
221
- projectRoot: context.rootPath,
222
- modelsDir: input?.modelsDir || config.modelsDir,
223
- });
224
- logs.push(`models dir: ${modelsRootDir}`);
225
- const installResults = [];
226
- for (const modelId of selectedModelIds) {
227
- logs.push(`prepare model: ${modelId}`);
228
- const model = getTtsModelCatalogItem(modelId);
229
- if (!model) {
230
- throw new Error(`Unsupported tts model: ${modelId}`);
231
- }
232
- const installState = await detectLocalTtsModelInstallState({
233
- modelId,
234
- modelsRootDir,
235
- });
236
- if (!installState.installed || input?.force === true) {
237
- logs.push(installState.installed && input?.force === true
238
- ? `redownload model: ${modelId}`
239
- : `download model: ${modelId}`);
240
- const result = await installTtsModelFromHuggingFace({
241
- model,
242
- modelsRootDir,
243
- force: input?.force === true,
244
- hfToken: input?.hfToken,
245
- });
246
- logs.push(`model ready: ${modelId} (downloaded ${result.downloadedFiles}, skipped ${result.skippedFiles})`);
247
- installResults.push(toJsonObject({
248
- modelId,
249
- downloadedFiles: result.downloadedFiles,
250
- skippedFiles: result.skippedFiles,
251
- }));
252
- continue;
253
- }
254
- logs.push(`reuse installed model: ${modelId}`);
255
- installResults.push(toJsonObject({
256
- modelId,
257
- downloadedFiles: 0,
258
- skippedFiles: 0,
259
- reused: true,
260
- }));
261
- }
262
- const basePythonBin = String(input?.pythonBin || "").trim() || "python3";
263
- const basePythonVersion = await readPythonVersionInfo(basePythonBin);
264
- let resolvedPythonBin = normalizeTtsPythonBin(config.pythonBin);
265
- let dependencyDetails;
266
- const compatibilityFailures = selectedModelIds
267
- .map((modelId) => getTtsPythonCompatibilityReason({
268
- modelId,
269
- version: basePythonVersion,
270
- }))
271
- .filter((item) => Boolean(item));
272
- if (compatibilityFailures.length > 0) {
273
- logs.push(...compatibilityFailures);
274
- return {
275
- success: false,
276
- message: compatibilityFailures.join(" · "),
277
- details: {
278
- pythonVersion: basePythonVersion?.raw || basePythonBin,
279
- logs,
280
- },
281
- };
282
- }
283
- if (input?.installDeps !== false) {
284
- logs.push(`prepare python env from: ${basePythonBin}`);
285
- const dependencyResult = await installTtsDependencies({
286
- pythonBin: basePythonBin,
287
- runners: resolveTtsRunnersByModels(selectedModelIds),
288
- });
289
- resolvedPythonBin = dependencyResult.pythonBin;
290
- logs.push(`python env ready: ${dependencyResult.pythonBin}`);
291
- for (const item of dependencyResult.items) {
292
- logs.push(item.skipped
293
- ? `dependency ${item.runner}: already installed`
294
- : `dependency ${item.runner}: installed`);
295
- }
296
- dependencyDetails = toJsonObject({
297
- pythonBin: dependencyResult.pythonBin,
298
- runners: dependencyResult.runners,
299
- usedVirtualEnv: dependencyResult.usedVirtualEnv,
300
- venvDir: dependencyResult.venvDir,
301
- });
302
- }
303
- else {
304
- logs.push(`prepare python env only: ${basePythonBin}`);
305
- resolvedPythonBin = await ensureTtsVirtualEnv({
306
- basePythonBin,
307
- });
308
- logs.push(`python env ready: ${resolvedPythonBin}`);
309
- }
310
- const activeModelId = resolveTtsModelId(String(input?.activeModel || "")) || selectedModelIds[0];
311
- const nextConfig = await writeTtsPluginConfig({
312
- context,
313
- value: {
314
- ...config,
315
- provider: "local",
316
- modelId: activeModelId,
317
- modelsDir: modelsRootDir,
318
- pythonBin: resolvedPythonBin,
319
- format: normalizeFormat(input?.format || config.format),
320
- installedModels: selectedModelIds,
321
- },
322
- });
323
- return {
324
- success: true,
325
- message: "tts synthesizer installed",
326
- details: {
327
- plugin: toJsonObject(nextConfig),
328
- models: installResults,
329
- dependency: dependencyDetails || null,
330
- logs,
331
- },
332
- };
333
- }
334
- /**
335
- * 列出可用于 TTS 的内置模型选项。
336
- */
337
- export function listTtsModelOptions() {
338
- return TTS_MODEL_CATALOG.map((item) => ({
339
- label: item.label,
340
- value: item.id,
341
- hint: item.description,
342
- }));
343
- }
344
- //# sourceMappingURL=Dependency.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dependency.js","sourceRoot":"","sources":["../../src/tts/Dependency.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAQtC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAuC5C,SAAS,mBAAmB,CAAC,OAA6B;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;IAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAkC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,KAAiD;IACrE,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IACE,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;iBACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;iBACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAgC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,8BAA8B,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,SAAiB;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE;YACvE,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,EAAE,IAAI;SACV,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,MAGxC;IACC,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3F,OAAO,2DAA2D,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3I,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAK3E,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,GAAG,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,GAAG,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;YACxC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;YAC9C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAS1C;IACC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAA4B;QACpC,GAAI,MAAM,CAAC,KAAiC;KAC7C,CAAC;IACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvF,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAsB,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,MAGxC;IACC,MAAM,YAAY,GAChB,MAAM,CAAC,OAAO,KAAK,gBAAgB;QACjC,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,0BAA0B,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;YAC1D,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,4BAA4B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA6B;IAE7B,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAC5C,WAAW,EAAE,OAAO,CAAC,QAAQ;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,+BAA+B,CAAC;QACzD,OAAO;QACP,aAAa;KACd,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;QAC1D,OAAO;QACP,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IACH,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,OAAO;YACP,OAAO,EAAE;gBACP,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,IAAI;gBACnC,aAAa,EAAE,aAAa,CAAC,GAAG;aACjC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC;QAClD,SAAS;QACT,OAAO;KACR,CAAC,CAAC;IACH,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO;QACP,OAAO,EAAE;YACP,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,IAAI;SACpC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAS3C;IACC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,IAAI,EAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAE1F,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAC5C,WAAW,EAAE,OAAO,CAAC,QAAQ;QAC7B,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS;KAChD,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,eAAe,aAAa,EAAE,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAiB,EAAE,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,+BAA+B,CAAC;YACzD,OAAO;YACP,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,CACP,YAAY,CAAC,SAAS,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI;gBAC7C,CAAC,CAAC,qBAAqB,OAAO,EAAE;gBAChC,CAAC,CAAC,mBAAmB,OAAO,EAAE,CACjC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;gBAClD,KAAK;gBACL,aAAa;gBACb,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI;gBAC5B,OAAO,EAAE,KAAK,EAAE,OAAO;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CACP,gBAAgB,OAAO,gBAAgB,MAAM,CAAC,eAAe,aAAa,MAAM,CAAC,YAAY,GAAG,CACjG,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC/B,OAAO;gBACP,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAC/C,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;YAC/B,OAAO;YACP,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,IAAI;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACzE,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACrE,IAAI,iBAAiB,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,iBAAwC,CAAC;IAC7C,MAAM,qBAAqB,GAAG,gBAAgB;SAC3C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,+BAA+B,CAAC;QAChD,OAAO;QACP,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,OAAO,EAAE;gBACP,aAAa,EAAE,iBAAiB,EAAE,GAAG,IAAI,aAAa;gBACtD,IAAI;aACL;SACF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,EAAE,WAAW,KAAK,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC;YACpD,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,yBAAyB,CAAC,gBAAgB,CAAC;SACrD,CAAC,CAAC;QACH,iBAAiB,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,qBAAqB,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,OAAO;gBACV,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,qBAAqB;gBAChD,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,aAAa,CAC3C,CAAC;QACJ,CAAC;QACD,iBAAiB,GAAG,YAAY,CAAC;YAC/B,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,OAAO,EAAE,gBAAgB,CAAC,OAAO;YACjC,cAAc,EAAE,gBAAgB,CAAC,cAAc;YAC/C,OAAO,EAAE,gBAAgB,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;QACvD,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;YAC5C,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,iBAAiB,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,aAAa,GACjB,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC;QAC5C,OAAO;QACP,KAAK,EAAE;YACL,GAAG,MAAM;YACT,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACvD,eAAe,EAAE,gBAAgB;SAClC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE;YACP,MAAM,EAAE,YAAY,CAAC,UAAqC,CAAC;YAC3D,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,iBAAiB,IAAI,IAAI;YACrC,IAAI;SACL;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAcjC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,EAAE;QACd,IAAI,EAAE,IAAI,CAAC,WAAW;KACvB,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * TTS plugin 输入与 JSON 辅助。
3
- *
4
- * 关键点(中文)
5
- * - 只放 plugin action 映射中的通用 option 读取与 JSON 标准化。
6
- * - TTS 依赖安装、合成执行等领域逻辑仍留在 dependency/runtime 模块。
7
- */
8
- import type { JsonObject, JsonValue } from "@downcity/agent/internal/types/common/Json.js";
9
- /**
10
- * 将普通对象转为可持久化 JSON object。
11
- */
12
- export declare function toJsonObject(input: Record<string, unknown> | null | undefined): JsonObject | null;
13
- /**
14
- * 读取字符串选项。
15
- */
16
- export declare function getStringOpt(opts: Record<string, JsonValue>, key: string): string | undefined;
17
- /**
18
- * 读取布尔选项。
19
- */
20
- export declare function getBooleanOpt(opts: Record<string, JsonValue>, key: string, defaultValue: boolean): boolean;
21
- /**
22
- * 读取数字选项。
23
- */
24
- export declare function getNumberOpt(opts: Record<string, JsonValue>, key: string): number | undefined;
25
- //# sourceMappingURL=PluginSupport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginSupport.d.ts","sourceRoot":"","sources":["../../src/tts/PluginSupport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE3F;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAChD,UAAU,GAAG,IAAI,CAyBnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GACpB,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAKpB"}
@@ -1,72 +0,0 @@
1
- /**
2
- * TTS plugin 输入与 JSON 辅助。
3
- *
4
- * 关键点(中文)
5
- * - 只放 plugin action 映射中的通用 option 读取与 JSON 标准化。
6
- * - TTS 依赖安装、合成执行等领域逻辑仍留在 dependency/runtime 模块。
7
- */
8
- /**
9
- * 将普通对象转为可持久化 JSON object。
10
- */
11
- export function toJsonObject(input) {
12
- if (!input)
13
- return null;
14
- const out = {};
15
- for (const [key, value] of Object.entries(input)) {
16
- if (value === undefined)
17
- continue;
18
- if (value === null ||
19
- typeof value === "string" ||
20
- typeof value === "number" ||
21
- typeof value === "boolean") {
22
- out[key] = value;
23
- continue;
24
- }
25
- if (Array.isArray(value)) {
26
- out[key] = value
27
- .filter((item) => item !== undefined)
28
- .map((item) => item);
29
- continue;
30
- }
31
- if (typeof value === "object") {
32
- out[key] = toJsonObject(value) || {};
33
- }
34
- }
35
- return out;
36
- }
37
- /**
38
- * 读取字符串选项。
39
- */
40
- export function getStringOpt(opts, key) {
41
- const value = opts[key];
42
- if (typeof value !== "string")
43
- return undefined;
44
- const trimmed = value.trim();
45
- return trimmed || undefined;
46
- }
47
- /**
48
- * 读取布尔选项。
49
- */
50
- export function getBooleanOpt(opts, key, defaultValue) {
51
- const value = opts[key];
52
- if (typeof value === "boolean")
53
- return value;
54
- if (typeof value === "string") {
55
- const normalized = value.trim().toLowerCase();
56
- if (["1", "true", "yes", "y", "on"].includes(normalized))
57
- return true;
58
- if (["0", "false", "no", "n", "off"].includes(normalized))
59
- return false;
60
- }
61
- return defaultValue;
62
- }
63
- /**
64
- * 读取数字选项。
65
- */
66
- export function getNumberOpt(opts, key) {
67
- const value = opts[key];
68
- return typeof value === "number" && Number.isFinite(value) && !Number.isNaN(value)
69
- ? value
70
- : undefined;
71
- }
72
- //# sourceMappingURL=PluginSupport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginSupport.js","sourceRoot":"","sources":["../../src/tts/PluginSupport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAiD;IAEjD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IACE,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;iBACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;iBACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAgC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,IAA+B,EAC/B,GAAW;IAEX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAA+B,EAC/B,GAAW,EACX,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACtE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1E,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,IAA+B,EAC/B,GAAW;IAEX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAChF,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * TTS 内置模型目录。
3
- *
4
- * 关键点(中文)
5
- * - 默认主推 `Qwen 0.6B` 与 `Kokoro`。
6
- * - 目录只保留 Console/UI 需要的稳定元数据,不暴露底层实现细节。
7
- */
8
- import type { TtsModelCatalogItem, TtsModelId } from "../../tts/types/Tts.js";
9
- /**
10
- * 内置 TTS 模型目录。
11
- */
12
- export declare const TTS_MODEL_CATALOG: readonly TtsModelCatalogItem[];
13
- /**
14
- * 解析用户输入为稳定模型 ID(支持别名与大小写)。
15
- */
16
- export declare function resolveTtsModelId(input: string): TtsModelId | null;
17
- /**
18
- * 读取目录项;不存在返回 null。
19
- */
20
- export declare function getTtsModelCatalogItem(id: TtsModelId): TtsModelCatalogItem | null;
21
- //# sourceMappingURL=Catalog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Catalog.d.ts","sourceRoot":"","sources":["../../../src/tts/runtime/Catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,mBAAmB,EA8ClD,CAAC;AAqBX;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMlE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAEjF"}
@@ -1,90 +0,0 @@
1
- /**
2
- * TTS 内置模型目录。
3
- *
4
- * 关键点(中文)
5
- * - 默认主推 `Qwen 0.6B` 与 `Kokoro`。
6
- * - 目录只保留 Console/UI 需要的稳定元数据,不暴露底层实现细节。
7
- */
8
- /**
9
- * 内置 TTS 模型目录。
10
- */
11
- export const TTS_MODEL_CATALOG = [
12
- {
13
- id: "qwen3-tts-0.6b",
14
- label: "Qwen3-TTS 0.6B",
15
- description: "中英文与多语言能力更强,作为主推荐模型。",
16
- family: "qwen3",
17
- recommended: true,
18
- assets: [
19
- {
20
- repoId: "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
21
- revision: "main",
22
- },
23
- ],
24
- },
25
- {
26
- id: "kokoro-82m",
27
- label: "Kokoro 82M",
28
- description: "体积更小,启动更轻,适合本地快速合成。",
29
- family: "kokoro",
30
- recommended: true,
31
- assets: [
32
- {
33
- repoId: "hexgrad/Kokoro-82M",
34
- revision: "main",
35
- files: [
36
- "config.json",
37
- "kokoro-v1_0.pth",
38
- "voices/af_heart.pt",
39
- "voices/zf_xiaoni.pt",
40
- ],
41
- },
42
- ],
43
- },
44
- {
45
- id: "qwen3-tts-1.7b",
46
- label: "Qwen3-TTS 1.7B",
47
- description: "效果更强,但体积更大,适合更看重质量的本地合成。",
48
- family: "qwen3",
49
- recommended: false,
50
- assets: [
51
- {
52
- repoId: "Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice",
53
- revision: "main",
54
- },
55
- ],
56
- },
57
- ];
58
- const TTS_MODEL_ALIAS_MAP = {
59
- "qwen3-tts-0.6b": "qwen3-tts-0.6b",
60
- qwen3tts06b: "qwen3-tts-0.6b",
61
- qwen_06b: "qwen3-tts-0.6b",
62
- "kokoro-82m": "kokoro-82m",
63
- kokoro82m: "kokoro-82m",
64
- "qwen3-tts-1.7b": "qwen3-tts-1.7b",
65
- qwen3tts17b: "qwen3-tts-1.7b",
66
- qwen_17b: "qwen3-tts-1.7b",
67
- };
68
- const CATALOG_BY_ID = TTS_MODEL_CATALOG.reduce((acc, item) => {
69
- acc[item.id] = item;
70
- return acc;
71
- }, {});
72
- /**
73
- * 解析用户输入为稳定模型 ID(支持别名与大小写)。
74
- */
75
- export function resolveTtsModelId(input) {
76
- const raw = String(input || "").trim();
77
- if (!raw)
78
- return null;
79
- const exact = TTS_MODEL_CATALOG.find((item) => item.id === raw);
80
- if (exact)
81
- return exact.id;
82
- return TTS_MODEL_ALIAS_MAP[raw.toLowerCase()] || null;
83
- }
84
- /**
85
- * 读取目录项;不存在返回 null。
86
- */
87
- export function getTtsModelCatalogItem(id) {
88
- return CATALOG_BY_ID[id] || null;
89
- }
90
- //# sourceMappingURL=Catalog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Catalog.js","sourceRoot":"","sources":["../../../src/tts/runtime/Catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAmC;IAC/D;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE;YACN;gBACE,MAAM,EAAE,sCAAsC;gBAC9C,QAAQ,EAAE,MAAM;aACjB;SACF;KACF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE;YACN;gBACE,MAAM,EAAE,oBAAoB;gBAC5B,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE;oBACL,aAAa;oBACb,iBAAiB;oBACjB,oBAAoB;oBACpB,qBAAqB;iBACtB;aACF;SACF;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,0BAA0B;QACvC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE;YACN;gBACE,MAAM,EAAE,sCAAsC;gBAC9C,QAAQ,EAAE,MAAM;aACjB;SACF;KACF;CACO,CAAC;AAEX,MAAM,mBAAmB,GAA+B;IACtD,gBAAgB,EAAE,gBAAgB;IAClC,WAAW,EAAE,gBAAgB;IAC7B,QAAQ,EAAE,gBAAgB;IAC1B,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE,YAAY;IACvB,gBAAgB,EAAE,gBAAgB;IAClC,WAAW,EAAE,gBAAgB;IAC7B,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF,MAAM,aAAa,GAA4C,iBAAiB,CAAC,MAAM,CACrF,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACZ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAA6C,CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IAChE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,EAAE,CAAC;IAC3B,OAAO,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAc;IACnD,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC"}