@downcity/plugins 1.0.56 → 1.0.57

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 (201) hide show
  1. package/bin/BuiltinPlugins.d.ts.map +1 -1
  2. package/bin/BuiltinPlugins.js +0 -4
  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/image/ImagePlugin.d.ts +1 -1
  13. package/bin/image/ImagePlugin.d.ts.map +1 -1
  14. package/bin/image/ImagePlugin.js +23 -5
  15. package/bin/image/ImagePlugin.js.map +1 -1
  16. package/bin/index.d.ts +2 -0
  17. package/bin/index.d.ts.map +1 -1
  18. package/bin/tts/Plugin.d.ts +53 -6
  19. package/bin/tts/Plugin.d.ts.map +1 -1
  20. package/bin/tts/Plugin.js +197 -474
  21. package/bin/tts/Plugin.js.map +1 -1
  22. package/bin/tts/types/TtsPlugin.d.ts +63 -102
  23. package/bin/tts/types/TtsPlugin.d.ts.map +1 -1
  24. package/bin/tts/types/TtsPlugin.js +4 -3
  25. package/bin/tts/types/TtsPlugin.js.map +1 -1
  26. package/bin/web/PROMPT.d.ts +1 -1
  27. package/bin/web/PROMPT.d.ts.map +1 -1
  28. package/bin/web/PROMPT.js +1 -1
  29. package/bin/web/PROMPT.js.map +1 -1
  30. package/bin/web/Plugin.d.ts +66 -5
  31. package/bin/web/Plugin.d.ts.map +1 -1
  32. package/bin/web/Plugin.js +126 -450
  33. package/bin/web/Plugin.js.map +1 -1
  34. package/bin/web/WebPromptAssets.d.ts +1 -9
  35. package/bin/web/WebPromptAssets.d.ts.map +1 -1
  36. package/bin/web/WebPromptAssets.js +1 -11
  37. package/bin/web/WebPromptAssets.js.map +1 -1
  38. package/bin/web/runtime/Install.d.ts +19 -0
  39. package/bin/web/runtime/Install.d.ts.map +1 -0
  40. package/bin/web/runtime/Install.js +178 -0
  41. package/bin/web/runtime/Install.js.map +1 -0
  42. package/bin/web/types/WebPlugin.d.ts +37 -109
  43. package/bin/web/types/WebPlugin.d.ts.map +1 -1
  44. package/bin/web/types/WebPlugin.js +5 -7
  45. package/bin/web/types/WebPlugin.js.map +1 -1
  46. package/package.json +2 -2
  47. package/src/BuiltinPlugins.ts +0 -4
  48. package/src/asr/Plugin.ts +264 -483
  49. package/src/asr/types/AsrPlugin.ts +118 -0
  50. package/src/image/ImagePlugin.ts +23 -5
  51. package/src/index.ts +12 -0
  52. package/src/tts/Plugin.ts +225 -492
  53. package/src/tts/types/TtsPlugin.ts +67 -102
  54. package/src/web/PROMPT.ts +1 -1
  55. package/src/web/PROMPT.ts.txt +32 -6
  56. package/src/web/Plugin.ts +119 -453
  57. package/src/web/WebPromptAssets.ts +1 -13
  58. package/src/web/runtime/Install.ts +241 -0
  59. package/src/web/types/WebPlugin.ts +37 -113
  60. package/bin/asr/Config.d.ts +0 -43
  61. package/bin/asr/Config.d.ts.map +0 -1
  62. package/bin/asr/Config.js +0 -107
  63. package/bin/asr/Config.js.map +0 -1
  64. package/bin/asr/Dependency.d.ts +0 -77
  65. package/bin/asr/Dependency.d.ts.map +0 -1
  66. package/bin/asr/Dependency.js +0 -238
  67. package/bin/asr/Dependency.js.map +0 -1
  68. package/bin/asr/InboundAugment.d.ts +0 -17
  69. package/bin/asr/InboundAugment.d.ts.map +0 -1
  70. package/bin/asr/InboundAugment.js +0 -47
  71. package/bin/asr/InboundAugment.js.map +0 -1
  72. package/bin/asr/ModelCatalog.d.ts +0 -29
  73. package/bin/asr/ModelCatalog.d.ts.map +0 -1
  74. package/bin/asr/ModelCatalog.js +0 -25
  75. package/bin/asr/ModelCatalog.js.map +0 -1
  76. package/bin/tts/Dependency.d.ts +0 -90
  77. package/bin/tts/Dependency.d.ts.map +0 -1
  78. package/bin/tts/Dependency.js +0 -344
  79. package/bin/tts/Dependency.js.map +0 -1
  80. package/bin/tts/PluginSupport.d.ts +0 -25
  81. package/bin/tts/PluginSupport.d.ts.map +0 -1
  82. package/bin/tts/PluginSupport.js +0 -72
  83. package/bin/tts/PluginSupport.js.map +0 -1
  84. package/bin/tts/runtime/Catalog.d.ts +0 -21
  85. package/bin/tts/runtime/Catalog.d.ts.map +0 -1
  86. package/bin/tts/runtime/Catalog.js +0 -90
  87. package/bin/tts/runtime/Catalog.js.map +0 -1
  88. package/bin/tts/runtime/DependencyInstaller.d.ts +0 -143
  89. package/bin/tts/runtime/DependencyInstaller.d.ts.map +0 -1
  90. package/bin/tts/runtime/DependencyInstaller.js +0 -261
  91. package/bin/tts/runtime/DependencyInstaller.js.map +0 -1
  92. package/bin/tts/runtime/Installer.d.ts +0 -89
  93. package/bin/tts/runtime/Installer.d.ts.map +0 -1
  94. package/bin/tts/runtime/Installer.js +0 -188
  95. package/bin/tts/runtime/Installer.js.map +0 -1
  96. package/bin/tts/runtime/Paths.d.ts +0 -20
  97. package/bin/tts/runtime/Paths.d.ts.map +0 -1
  98. package/bin/tts/runtime/Paths.js +0 -32
  99. package/bin/tts/runtime/Paths.js.map +0 -1
  100. package/bin/tts/runtime/Synthesizer.d.ts +0 -44
  101. package/bin/tts/runtime/Synthesizer.d.ts.map +0 -1
  102. package/bin/tts/runtime/Synthesizer.js +0 -363
  103. package/bin/tts/runtime/Synthesizer.js.map +0 -1
  104. package/bin/tts/types/Tts.d.ts +0 -91
  105. package/bin/tts/types/Tts.d.ts.map +0 -1
  106. package/bin/tts/types/Tts.js +0 -9
  107. package/bin/tts/types/Tts.js.map +0 -1
  108. package/bin/voice/Config.d.ts +0 -43
  109. package/bin/voice/Config.d.ts.map +0 -1
  110. package/bin/voice/Config.js +0 -104
  111. package/bin/voice/Config.js.map +0 -1
  112. package/bin/voice/Dependency.d.ts +0 -77
  113. package/bin/voice/Dependency.d.ts.map +0 -1
  114. package/bin/voice/Dependency.js +0 -237
  115. package/bin/voice/Dependency.js.map +0 -1
  116. package/bin/voice/InboundAugment.d.ts +0 -17
  117. package/bin/voice/InboundAugment.d.ts.map +0 -1
  118. package/bin/voice/InboundAugment.js +0 -47
  119. package/bin/voice/InboundAugment.js.map +0 -1
  120. package/bin/voice/ModelCatalog.d.ts +0 -29
  121. package/bin/voice/ModelCatalog.d.ts.map +0 -1
  122. package/bin/voice/ModelCatalog.js +0 -25
  123. package/bin/voice/ModelCatalog.js.map +0 -1
  124. package/bin/voice/runtime/Catalog.d.ts +0 -18
  125. package/bin/voice/runtime/Catalog.d.ts.map +0 -1
  126. package/bin/voice/runtime/Catalog.js +0 -61
  127. package/bin/voice/runtime/Catalog.js.map +0 -1
  128. package/bin/voice/runtime/DependencyInstaller.d.ts +0 -145
  129. package/bin/voice/runtime/DependencyInstaller.d.ts.map +0 -1
  130. package/bin/voice/runtime/DependencyInstaller.js +0 -309
  131. package/bin/voice/runtime/DependencyInstaller.js.map +0 -1
  132. package/bin/voice/runtime/Installer.d.ts +0 -94
  133. package/bin/voice/runtime/Installer.d.ts.map +0 -1
  134. package/bin/voice/runtime/Installer.js +0 -200
  135. package/bin/voice/runtime/Installer.js.map +0 -1
  136. package/bin/voice/runtime/Paths.d.ts +0 -8
  137. package/bin/voice/runtime/Paths.d.ts.map +0 -1
  138. package/bin/voice/runtime/Paths.js +0 -26
  139. package/bin/voice/runtime/Paths.js.map +0 -1
  140. package/bin/voice/runtime/Transcriber.d.ts +0 -57
  141. package/bin/voice/runtime/Transcriber.d.ts.map +0 -1
  142. package/bin/voice/runtime/Transcriber.js +0 -329
  143. package/bin/voice/runtime/Transcriber.js.map +0 -1
  144. package/bin/voice/types/Voice.d.ts +0 -58
  145. package/bin/voice/types/Voice.d.ts.map +0 -1
  146. package/bin/voice/types/Voice.js +0 -9
  147. package/bin/voice/types/Voice.js.map +0 -1
  148. package/bin/voice/types/VoicePlugin.d.ts +0 -190
  149. package/bin/voice/types/VoicePlugin.d.ts.map +0 -1
  150. package/bin/voice/types/VoicePlugin.js +0 -9
  151. package/bin/voice/types/VoicePlugin.js.map +0 -1
  152. package/bin/web/Dependency.d.ts +0 -10
  153. package/bin/web/Dependency.d.ts.map +0 -1
  154. package/bin/web/Dependency.js +0 -10
  155. package/bin/web/Dependency.js.map +0 -1
  156. package/bin/web/PROMPT.agent-browser.d.ts +0 -7
  157. package/bin/web/PROMPT.agent-browser.d.ts.map +0 -1
  158. package/bin/web/PROMPT.agent-browser.js +0 -8
  159. package/bin/web/PROMPT.agent-browser.js.map +0 -1
  160. package/bin/web/PROMPT.web-access.d.ts +0 -7
  161. package/bin/web/PROMPT.web-access.d.ts.map +0 -1
  162. package/bin/web/PROMPT.web-access.js +0 -8
  163. package/bin/web/PROMPT.web-access.js.map +0 -1
  164. package/bin/web/runtime/Config.d.ts +0 -21
  165. package/bin/web/runtime/Config.d.ts.map +0 -1
  166. package/bin/web/runtime/Config.js +0 -79
  167. package/bin/web/runtime/Config.js.map +0 -1
  168. package/bin/web/runtime/Source.d.ts +0 -29
  169. package/bin/web/runtime/Source.d.ts.map +0 -1
  170. package/bin/web/runtime/Source.js +0 -209
  171. package/bin/web/runtime/Source.js.map +0 -1
  172. package/src/asr/Config.ts +0 -138
  173. package/src/asr/Dependency.ts +0 -336
  174. package/src/asr/InboundAugment.ts +0 -59
  175. package/src/asr/ModelCatalog.ts +0 -43
  176. package/src/tts/Dependency.ts +0 -473
  177. package/src/tts/PluginSupport.ts +0 -85
  178. package/src/tts/runtime/Catalog.ts +0 -97
  179. package/src/tts/runtime/DependencyInstaller.ts +0 -436
  180. package/src/tts/runtime/Installer.ts +0 -297
  181. package/src/tts/runtime/Paths.ts +0 -39
  182. package/src/tts/runtime/Synthesizer.ts +0 -480
  183. package/src/tts/types/Tts.ts +0 -99
  184. package/src/voice/Config.ts +0 -135
  185. package/src/voice/Dependency.ts +0 -329
  186. package/src/voice/InboundAugment.ts +0 -59
  187. package/src/voice/ModelCatalog.ts +0 -43
  188. package/src/voice/runtime/Catalog.ts +0 -68
  189. package/src/voice/runtime/DependencyInstaller.ts +0 -505
  190. package/src/voice/runtime/Installer.ts +0 -324
  191. package/src/voice/runtime/Paths.ts +0 -26
  192. package/src/voice/runtime/Transcriber.ts +0 -467
  193. package/src/voice/types/Voice.ts +0 -68
  194. package/src/voice/types/VoicePlugin.ts +0 -194
  195. package/src/web/Dependency.ts +0 -17
  196. package/src/web/PROMPT.agent-browser.ts +0 -9
  197. package/src/web/PROMPT.agent-browser.ts.txt +0 -17
  198. package/src/web/PROMPT.web-access.ts +0 -9
  199. package/src/web/PROMPT.web-access.ts.txt +0 -13
  200. package/src/web/runtime/Config.ts +0 -105
  201. 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"}