@jingyi0605/codingns4dsh 0.2.1-beta.2 → 0.2.1-beta.4

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 (888) hide show
  1. package/README.en.md +8 -8
  2. package/README.md +103 -14
  3. package/THIRD_PARTY_NOTICES +141 -0
  4. package/assets/assistant-basics/female-v1.png +0 -0
  5. package/assets/assistant-basics/male-v1.png +0 -0
  6. package/assets/desktop-assistant/20261008-WebView2/345/210/206/345/217/221/350/257/264/346/230/216.md +14 -0
  7. package/assets/desktop-assistant/webview2/LICENSE.txt +27 -0
  8. package/assets/desktop-assistant/webview2/Microsoft.Web.WebView2.Core.dll +0 -0
  9. package/assets/desktop-assistant/webview2/Microsoft.Web.WebView2.Wpf.dll +0 -0
  10. package/assets/desktop-assistant/webview2/NOTICE.txt +85 -0
  11. package/assets/desktop-assistant/webview2/arm64/WebView2Loader.dll +0 -0
  12. package/assets/desktop-assistant/webview2/x64/WebView2Loader.dll +0 -0
  13. package/assets/desktop-assistant/webview2/x86/WebView2Loader.dll +0 -0
  14. package/assets/moss/LICENSE +201 -0
  15. package/assets/moss/ort_cpu_runtime.py +839 -0
  16. package/assets/moss/worker.py +278 -0
  17. package/assets/voice/bilingual-zh-en-bpe.vocab +500 -0
  18. package/avatar-packages/catalog.json +259 -0
  19. package/avatar-packages/manifests/bubu-codebrew-bear.avatar.json +13 -0
  20. package/avatar-packages/manifests/ds-whale-live2d.avatar.json +27 -0
  21. package/avatar-packages/manifests/ds-whale-sprite.avatar.json +13 -0
  22. package/avatar-packages/manifests/live2d-haru.avatar.json +13 -0
  23. package/avatar-packages/manifests/live2d-hiyori.avatar.json +13 -0
  24. package/avatar-packages/manifests/live2d-mao.avatar.json +13 -0
  25. package/avatar-packages/manifests/live2d-mark.avatar.json +13 -0
  26. package/avatar-packages/manifests/live2d-rice.avatar.json +13 -0
  27. package/avatar-packages/manifests/live2d-wanko.avatar.json +13 -0
  28. package/avatar-packages/manifests/nastya.avatar.json +13 -0
  29. package/avatar-packages/manifests/scout-corgi.avatar.json +13 -0
  30. package/avatar-packages/manifests/xiaoman.avatar.json +13 -0
  31. package/data/build/dist/client/assistant-settings-styles.d.ts +7 -0
  32. package/data/build/dist/client/assistant-settings-styles.d.ts.map +1 -0
  33. package/data/build/dist/client/assistant-settings-styles.js +6 -0
  34. package/data/build/dist/client/assistant-settings-styles.js.map +1 -0
  35. package/data/build/dist/client/avatar/builtin.d.ts +5 -0
  36. package/data/build/dist/client/avatar/builtin.d.ts.map +1 -0
  37. package/data/build/dist/client/avatar/builtin.js +9 -0
  38. package/data/build/dist/client/avatar/builtin.js.map +1 -0
  39. package/data/build/dist/client/avatar/cache-status.d.ts +4 -0
  40. package/data/build/dist/client/avatar/cache-status.d.ts.map +1 -0
  41. package/data/build/dist/client/avatar/cache-status.js +40 -0
  42. package/data/build/dist/client/avatar/cache-status.js.map +1 -0
  43. package/data/build/dist/client/avatar/catalog-panel.d.ts +49 -0
  44. package/data/build/dist/client/avatar/catalog-panel.d.ts.map +1 -0
  45. package/data/build/dist/client/avatar/catalog-panel.js +245 -0
  46. package/data/build/dist/client/avatar/catalog-panel.js.map +1 -0
  47. package/data/build/dist/client/avatar/catalog-picker.d.ts +38 -0
  48. package/data/build/dist/client/avatar/catalog-picker.d.ts.map +1 -0
  49. package/data/build/dist/client/avatar/catalog-picker.js +65 -0
  50. package/data/build/dist/client/avatar/catalog-picker.js.map +1 -0
  51. package/data/build/dist/client/avatar/desktop-bridge.d.ts +21 -0
  52. package/data/build/dist/client/avatar/desktop-bridge.d.ts.map +1 -0
  53. package/data/build/dist/client/avatar/desktop-bridge.js +109 -0
  54. package/data/build/dist/client/avatar/desktop-bridge.js.map +1 -0
  55. package/data/build/dist/client/avatar/desktop-entry.d.ts +2 -0
  56. package/data/build/dist/client/avatar/desktop-entry.d.ts.map +1 -0
  57. package/data/build/dist/client/avatar/desktop-entry.js +34 -0
  58. package/data/build/dist/client/avatar/desktop-entry.js.map +1 -0
  59. package/data/build/dist/client/avatar/desktop-view.d.ts +23 -0
  60. package/data/build/dist/client/avatar/desktop-view.d.ts.map +1 -0
  61. package/data/build/dist/client/avatar/desktop-view.js +72 -0
  62. package/data/build/dist/client/avatar/desktop-view.js.map +1 -0
  63. package/data/build/dist/client/avatar/engine.d.ts +45 -0
  64. package/data/build/dist/client/avatar/engine.d.ts.map +1 -0
  65. package/data/build/dist/client/avatar/engine.js +165 -0
  66. package/data/build/dist/client/avatar/engine.js.map +1 -0
  67. package/data/build/dist/client/avatar/floating.d.ts +20 -0
  68. package/data/build/dist/client/avatar/floating.d.ts.map +1 -0
  69. package/data/build/dist/client/avatar/floating.js +99 -0
  70. package/data/build/dist/client/avatar/floating.js.map +1 -0
  71. package/data/build/dist/client/avatar/image.d.ts +5 -0
  72. package/data/build/dist/client/avatar/image.d.ts.map +1 -0
  73. package/data/build/dist/client/avatar/image.js +22 -0
  74. package/data/build/dist/client/avatar/image.js.map +1 -0
  75. package/data/build/dist/client/avatar/live2d.d.ts +65 -0
  76. package/data/build/dist/client/avatar/live2d.d.ts.map +1 -0
  77. package/data/build/dist/client/avatar/live2d.js +278 -0
  78. package/data/build/dist/client/avatar/live2d.js.map +1 -0
  79. package/data/build/dist/client/avatar/loading.d.ts +27 -0
  80. package/data/build/dist/client/avatar/loading.d.ts.map +1 -0
  81. package/data/build/dist/client/avatar/loading.js +74 -0
  82. package/data/build/dist/client/avatar/loading.js.map +1 -0
  83. package/data/build/dist/client/avatar/manager.d.ts +71 -0
  84. package/data/build/dist/client/avatar/manager.d.ts.map +1 -0
  85. package/data/build/dist/client/avatar/manager.js +321 -0
  86. package/data/build/dist/client/avatar/manager.js.map +1 -0
  87. package/data/build/dist/client/avatar/portrait-capture.d.ts +30 -0
  88. package/data/build/dist/client/avatar/portrait-capture.d.ts.map +1 -0
  89. package/data/build/dist/client/avatar/portrait-capture.js +233 -0
  90. package/data/build/dist/client/avatar/portrait-capture.js.map +1 -0
  91. package/data/build/dist/client/avatar/portrait-editor.d.ts +14 -0
  92. package/data/build/dist/client/avatar/portrait-editor.d.ts.map +1 -0
  93. package/data/build/dist/client/avatar/portrait-editor.js +105 -0
  94. package/data/build/dist/client/avatar/portrait-editor.js.map +1 -0
  95. package/data/build/dist/client/avatar/portrait-service.d.ts +51 -0
  96. package/data/build/dist/client/avatar/portrait-service.d.ts.map +1 -0
  97. package/data/build/dist/client/avatar/portrait-service.js +244 -0
  98. package/data/build/dist/client/avatar/portrait-service.js.map +1 -0
  99. package/data/build/dist/client/avatar/portrait.d.ts +28 -0
  100. package/data/build/dist/client/avatar/portrait.d.ts.map +1 -0
  101. package/data/build/dist/client/avatar/portrait.js +56 -0
  102. package/data/build/dist/client/avatar/portrait.js.map +1 -0
  103. package/data/build/dist/client/avatar/preview-capture.d.ts +4 -0
  104. package/data/build/dist/client/avatar/preview-capture.d.ts.map +1 -0
  105. package/data/build/dist/client/avatar/preview-capture.js +100 -0
  106. package/data/build/dist/client/avatar/preview-capture.js.map +1 -0
  107. package/data/build/dist/client/avatar/preview-store.d.ts +41 -0
  108. package/data/build/dist/client/avatar/preview-store.d.ts.map +1 -0
  109. package/data/build/dist/client/avatar/preview-store.js +171 -0
  110. package/data/build/dist/client/avatar/preview-store.js.map +1 -0
  111. package/data/build/dist/client/avatar/preview.d.ts +14 -0
  112. package/data/build/dist/client/avatar/preview.d.ts.map +1 -0
  113. package/data/build/dist/client/avatar/preview.js +56 -0
  114. package/data/build/dist/client/avatar/preview.js.map +1 -0
  115. package/data/build/dist/client/avatar/registration.d.ts +2 -0
  116. package/data/build/dist/client/avatar/registration.d.ts.map +1 -0
  117. package/data/build/dist/client/avatar/registration.js +2 -0
  118. package/data/build/dist/client/avatar/registration.js.map +1 -0
  119. package/data/build/dist/client/avatar/registry.d.ts +45 -0
  120. package/data/build/dist/client/avatar/registry.d.ts.map +1 -0
  121. package/data/build/dist/client/avatar/registry.js +34 -0
  122. package/data/build/dist/client/avatar/registry.js.map +1 -0
  123. package/data/build/dist/client/avatar/settings-panel.d.ts +21 -0
  124. package/data/build/dist/client/avatar/settings-panel.d.ts.map +1 -0
  125. package/data/build/dist/client/avatar/settings-panel.js +169 -0
  126. package/data/build/dist/client/avatar/settings-panel.js.map +1 -0
  127. package/data/build/dist/client/avatar/slot.d.ts +17 -0
  128. package/data/build/dist/client/avatar/slot.d.ts.map +1 -0
  129. package/data/build/dist/client/avatar/slot.js +70 -0
  130. package/data/build/dist/client/avatar/slot.js.map +1 -0
  131. package/data/build/dist/client/avatar/spritesheet.d.ts +19 -0
  132. package/data/build/dist/client/avatar/spritesheet.d.ts.map +1 -0
  133. package/data/build/dist/client/avatar/spritesheet.js +91 -0
  134. package/data/build/dist/client/avatar/spritesheet.js.map +1 -0
  135. package/data/build/dist/client/avatar/temporary-preview.d.ts +25 -0
  136. package/data/build/dist/client/avatar/temporary-preview.d.ts.map +1 -0
  137. package/data/build/dist/client/avatar/temporary-preview.js +61 -0
  138. package/data/build/dist/client/avatar/temporary-preview.js.map +1 -0
  139. package/data/build/dist/client/bundle.js +25066 -2837
  140. package/data/build/dist/client/bundle.js.map +1 -1
  141. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  142. package/data/build/dist/client/cli-slots.js +9 -9
  143. package/data/build/dist/client/cli-slots.js.map +1 -1
  144. package/data/build/dist/client/desktop-assistant.js +8585 -0
  145. package/data/build/dist/client/features/assistant-composer-input.d.ts +10 -0
  146. package/data/build/dist/client/features/assistant-composer-input.d.ts.map +1 -0
  147. package/data/build/dist/client/features/assistant-composer-input.js +40 -0
  148. package/data/build/dist/client/features/assistant-composer-input.js.map +1 -0
  149. package/data/build/dist/client/features/assistant-configuration-session.d.ts +45 -0
  150. package/data/build/dist/client/features/assistant-configuration-session.d.ts.map +1 -0
  151. package/data/build/dist/client/features/assistant-configuration-session.js +252 -0
  152. package/data/build/dist/client/features/assistant-configuration-session.js.map +1 -0
  153. package/data/build/dist/client/features/assistant-configuration-tabs.d.ts +34 -0
  154. package/data/build/dist/client/features/assistant-configuration-tabs.d.ts.map +1 -0
  155. package/data/build/dist/client/features/assistant-configuration-tabs.js +48 -0
  156. package/data/build/dist/client/features/assistant-configuration-tabs.js.map +1 -0
  157. package/data/build/dist/client/features/assistant-conversation-message.d.ts +27 -0
  158. package/data/build/dist/client/features/assistant-conversation-message.d.ts.map +1 -0
  159. package/data/build/dist/client/features/assistant-conversation-message.js +55 -0
  160. package/data/build/dist/client/features/assistant-conversation-message.js.map +1 -0
  161. package/data/build/dist/client/features/assistant-debug-dialog.d.ts +3 -0
  162. package/data/build/dist/client/features/assistant-debug-dialog.d.ts.map +1 -0
  163. package/data/build/dist/client/features/assistant-debug-dialog.js +3 -0
  164. package/data/build/dist/client/features/assistant-debug-dialog.js.map +1 -0
  165. package/data/build/dist/client/features/assistant-debug-workbench.d.ts +48 -0
  166. package/data/build/dist/client/features/assistant-debug-workbench.d.ts.map +1 -0
  167. package/data/build/dist/client/features/assistant-debug-workbench.js +376 -0
  168. package/data/build/dist/client/features/assistant-debug-workbench.js.map +1 -0
  169. package/data/build/dist/client/features/assistant-floating-call.d.ts +33 -0
  170. package/data/build/dist/client/features/assistant-floating-call.d.ts.map +1 -0
  171. package/data/build/dist/client/features/assistant-floating-call.js +67 -0
  172. package/data/build/dist/client/features/assistant-floating-call.js.map +1 -0
  173. package/data/build/dist/client/features/assistant-panel.d.ts +2 -2
  174. package/data/build/dist/client/features/assistant-panel.d.ts.map +1 -1
  175. package/data/build/dist/client/features/assistant-panel.js +10 -123
  176. package/data/build/dist/client/features/assistant-panel.js.map +1 -1
  177. package/data/build/dist/client/features/assistant-realtime-call.d.ts +57 -0
  178. package/data/build/dist/client/features/assistant-realtime-call.d.ts.map +1 -0
  179. package/data/build/dist/client/features/assistant-realtime-call.js +131 -0
  180. package/data/build/dist/client/features/assistant-realtime-call.js.map +1 -0
  181. package/data/build/dist/client/features/assistant-record-style.d.ts +5 -0
  182. package/data/build/dist/client/features/assistant-record-style.d.ts.map +1 -0
  183. package/data/build/dist/client/features/assistant-record-style.js +25 -0
  184. package/data/build/dist/client/features/assistant-record-style.js.map +1 -0
  185. package/data/build/dist/client/features/assistant-voice-initialization.d.ts +26 -0
  186. package/data/build/dist/client/features/assistant-voice-initialization.d.ts.map +1 -0
  187. package/data/build/dist/client/features/assistant-voice-initialization.js +138 -0
  188. package/data/build/dist/client/features/assistant-voice-initialization.js.map +1 -0
  189. package/data/build/dist/client/features/assistant-voice-settings-group.d.ts +19 -0
  190. package/data/build/dist/client/features/assistant-voice-settings-group.d.ts.map +1 -0
  191. package/data/build/dist/client/features/assistant-voice-settings-group.js +34 -0
  192. package/data/build/dist/client/features/assistant-voice-settings-group.js.map +1 -0
  193. package/data/build/dist/client/features/assistant-voice-settings.d.ts +13 -0
  194. package/data/build/dist/client/features/assistant-voice-settings.d.ts.map +1 -0
  195. package/data/build/dist/client/features/assistant-voice-settings.js +184 -0
  196. package/data/build/dist/client/features/assistant-voice-settings.js.map +1 -0
  197. package/data/build/dist/client/features/assistant-workbench-controls.d.ts +72 -0
  198. package/data/build/dist/client/features/assistant-workbench-controls.d.ts.map +1 -0
  199. package/data/build/dist/client/features/assistant-workbench-controls.js +145 -0
  200. package/data/build/dist/client/features/assistant-workbench-controls.js.map +1 -0
  201. package/data/build/dist/client/features/assistant-workbench-entry.d.ts +4 -0
  202. package/data/build/dist/client/features/assistant-workbench-entry.d.ts.map +1 -0
  203. package/data/build/dist/client/features/assistant-workbench-entry.js +7 -0
  204. package/data/build/dist/client/features/assistant-workbench-entry.js.map +1 -0
  205. package/data/build/dist/client/features/assistant-workbench.d.ts +109 -0
  206. package/data/build/dist/client/features/assistant-workbench.d.ts.map +1 -0
  207. package/data/build/dist/client/features/assistant-workbench.js +568 -0
  208. package/data/build/dist/client/features/assistant-workbench.js.map +1 -0
  209. package/data/build/dist/client/features/global-voice-assistant.d.ts.map +1 -1
  210. package/data/build/dist/client/features/global-voice-assistant.js +88 -32
  211. package/data/build/dist/client/features/global-voice-assistant.js.map +1 -1
  212. package/data/build/dist/client/features/lan-access.js +2 -2
  213. package/data/build/dist/client/features/lan-access.js.map +1 -1
  214. package/data/build/dist/client/features/mobile-access.d.ts.map +1 -1
  215. package/data/build/dist/client/features/mobile-access.js +9 -0
  216. package/data/build/dist/client/features/mobile-access.js.map +1 -1
  217. package/data/build/dist/client/features/peer-host.d.ts +2 -0
  218. package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
  219. package/data/build/dist/client/features/peer-host.js +66 -73
  220. package/data/build/dist/client/features/peer-host.js.map +1 -1
  221. package/data/build/dist/client/features/types.d.ts +4 -0
  222. package/data/build/dist/client/features/types.d.ts.map +1 -1
  223. package/data/build/dist/client/features/voice-conversation-dialog.d.ts +9 -2
  224. package/data/build/dist/client/features/voice-conversation-dialog.d.ts.map +1 -1
  225. package/data/build/dist/client/features/voice-conversation-dialog.js +29 -7
  226. package/data/build/dist/client/features/voice-conversation-dialog.js.map +1 -1
  227. package/data/build/dist/client/features/voice-initialization-dialog.d.ts +42 -2
  228. package/data/build/dist/client/features/voice-initialization-dialog.d.ts.map +1 -1
  229. package/data/build/dist/client/features/voice-initialization-dialog.js +181 -67
  230. package/data/build/dist/client/features/voice-initialization-dialog.js.map +1 -1
  231. package/data/build/dist/client/global-voice-runtime-registry.d.ts +4 -0
  232. package/data/build/dist/client/global-voice-runtime-registry.d.ts.map +1 -1
  233. package/data/build/dist/client/global-voice-runtime-registry.js.map +1 -1
  234. package/data/build/dist/client/index.d.ts +11 -0
  235. package/data/build/dist/client/index.d.ts.map +1 -1
  236. package/data/build/dist/client/index.js +10 -0
  237. package/data/build/dist/client/index.js.map +1 -1
  238. package/data/build/dist/client/locale.d.ts.map +1 -1
  239. package/data/build/dist/client/locale.js +51 -14
  240. package/data/build/dist/client/locale.js.map +1 -1
  241. package/data/build/dist/client/locales/assistantAvatar.d.ts +138 -0
  242. package/data/build/dist/client/locales/assistantAvatar.d.ts.map +1 -0
  243. package/data/build/dist/client/locales/assistantAvatar.js +273 -0
  244. package/data/build/dist/client/locales/assistantAvatar.js.map +1 -0
  245. package/data/build/dist/client/locales/assistantDebug.d.ts +4 -0
  246. package/data/build/dist/client/locales/assistantDebug.d.ts.map +1 -0
  247. package/data/build/dist/client/locales/assistantDebug.js +362 -0
  248. package/data/build/dist/client/locales/assistantDebug.js.map +1 -0
  249. package/data/build/dist/client/locales/assistantTts.d.ts +80 -0
  250. package/data/build/dist/client/locales/assistantTts.d.ts.map +1 -0
  251. package/data/build/dist/client/locales/assistantTts.js +76 -0
  252. package/data/build/dist/client/locales/assistantTts.js.map +1 -0
  253. package/data/build/dist/client/locales/assistantWorkbench.d.ts +126 -0
  254. package/data/build/dist/client/locales/assistantWorkbench.d.ts.map +1 -0
  255. package/data/build/dist/client/locales/assistantWorkbench.js +96 -0
  256. package/data/build/dist/client/locales/assistantWorkbench.js.map +1 -0
  257. package/data/build/dist/client/locales/peerHostWorkspace.d.ts.map +1 -1
  258. package/data/build/dist/client/locales/peerHostWorkspace.js +16 -2
  259. package/data/build/dist/client/locales/peerHostWorkspace.js.map +1 -1
  260. package/data/build/dist/client/locales/terminalAuth.d.ts.map +1 -1
  261. package/data/build/dist/client/locales/terminalAuth.js +80 -0
  262. package/data/build/dist/client/locales/terminalAuth.js.map +1 -1
  263. package/data/build/dist/client/locales/voiceModels.d.ts +45 -0
  264. package/data/build/dist/client/locales/voiceModels.d.ts.map +1 -0
  265. package/data/build/dist/client/locales/voiceModels.js +85 -0
  266. package/data/build/dist/client/locales/voiceModels.js.map +1 -0
  267. package/data/build/dist/client/mobile-rightbar-tabs-dom.d.ts +29 -0
  268. package/data/build/dist/client/mobile-rightbar-tabs-dom.d.ts.map +1 -0
  269. package/data/build/dist/client/mobile-rightbar-tabs-dom.js +93 -0
  270. package/data/build/dist/client/mobile-rightbar-tabs-dom.js.map +1 -0
  271. package/data/build/dist/client/mobile-rightbar-visibility.d.ts +32 -0
  272. package/data/build/dist/client/mobile-rightbar-visibility.d.ts.map +1 -0
  273. package/data/build/dist/client/mobile-rightbar-visibility.js +188 -0
  274. package/data/build/dist/client/mobile-rightbar-visibility.js.map +1 -0
  275. package/data/build/dist/client/mobile-session-interaction.d.ts +9 -19
  276. package/data/build/dist/client/mobile-session-interaction.d.ts.map +1 -1
  277. package/data/build/dist/client/mobile-session-interaction.js +25 -169
  278. package/data/build/dist/client/mobile-session-interaction.js.map +1 -1
  279. package/data/build/dist/client/mobile-sidebar-gestures.d.ts +4 -0
  280. package/data/build/dist/client/mobile-sidebar-gestures.d.ts.map +1 -1
  281. package/data/build/dist/client/mobile-sidebar-gestures.js +17 -9
  282. package/data/build/dist/client/mobile-sidebar-gestures.js.map +1 -1
  283. package/data/build/dist/client/model-catalog-cache.d.ts +4 -4
  284. package/data/build/dist/client/model-catalog-cache.d.ts.map +1 -1
  285. package/data/build/dist/client/model-catalog-cache.js +57 -32
  286. package/data/build/dist/client/model-catalog-cache.js.map +1 -1
  287. package/data/build/dist/client/moss-voice-output.d.ts +39 -0
  288. package/data/build/dist/client/moss-voice-output.d.ts.map +1 -0
  289. package/data/build/dist/client/moss-voice-output.js +241 -0
  290. package/data/build/dist/client/moss-voice-output.js.map +1 -0
  291. package/data/build/dist/client/peer-host-native-projection.d.ts +4 -3
  292. package/data/build/dist/client/peer-host-native-projection.d.ts.map +1 -1
  293. package/data/build/dist/client/peer-host-native-projection.js +7 -6
  294. package/data/build/dist/client/peer-host-native-projection.js.map +1 -1
  295. package/data/build/dist/client/peer-host-native-store-projection.js +9 -21
  296. package/data/build/dist/client/peer-host-native-store-projection.js.map +1 -1
  297. package/data/build/dist/client/peer-host-workspace-tab.d.ts.map +1 -1
  298. package/data/build/dist/client/peer-host-workspace-tab.js +139 -10
  299. package/data/build/dist/client/peer-host-workspace-tab.js.map +1 -1
  300. package/data/build/dist/client/settings-bridge.d.ts +1 -0
  301. package/data/build/dist/client/settings-bridge.d.ts.map +1 -1
  302. package/data/build/dist/client/settings-bridge.js +9 -1
  303. package/data/build/dist/client/settings-bridge.js.map +1 -1
  304. package/data/build/dist/client/sherpa-voice-adapter.d.ts +23 -2
  305. package/data/build/dist/client/sherpa-voice-adapter.d.ts.map +1 -1
  306. package/data/build/dist/client/sherpa-voice-adapter.js +384 -91
  307. package/data/build/dist/client/sherpa-voice-adapter.js.map +1 -1
  308. package/data/build/dist/client/skill-command.d.ts +1 -1
  309. package/data/build/dist/client/skill-command.d.ts.map +1 -1
  310. package/data/build/dist/client/skill-command.js +25 -2
  311. package/data/build/dist/client/skill-command.js.map +1 -1
  312. package/data/build/dist/client/skill-reference-dom.js +1 -1
  313. package/data/build/dist/client/skill-reference-dom.js.map +1 -1
  314. package/data/build/dist/client/streaming-sentence-queue.d.ts +20 -0
  315. package/data/build/dist/client/streaming-sentence-queue.d.ts.map +1 -0
  316. package/data/build/dist/client/streaming-sentence-queue.js +130 -0
  317. package/data/build/dist/client/streaming-sentence-queue.js.map +1 -0
  318. package/data/build/dist/client/terminal/log-preview.d.ts +14 -0
  319. package/data/build/dist/client/terminal/log-preview.d.ts.map +1 -0
  320. package/data/build/dist/client/terminal/log-preview.js +23 -0
  321. package/data/build/dist/client/terminal/log-preview.js.map +1 -0
  322. package/data/build/dist/client/terminal/model.d.ts +38 -7
  323. package/data/build/dist/client/terminal/model.d.ts.map +1 -1
  324. package/data/build/dist/client/terminal/model.js +188 -32
  325. package/data/build/dist/client/terminal/model.js.map +1 -1
  326. package/data/build/dist/client/terminal/recovery.d.ts +7 -3
  327. package/data/build/dist/client/terminal/recovery.d.ts.map +1 -1
  328. package/data/build/dist/client/terminal/recovery.js +45 -41
  329. package/data/build/dist/client/terminal/recovery.js.map +1 -1
  330. package/data/build/dist/client/terminal/selection-actions.d.ts +63 -0
  331. package/data/build/dist/client/terminal/selection-actions.d.ts.map +1 -0
  332. package/data/build/dist/client/terminal/selection-actions.js +132 -0
  333. package/data/build/dist/client/terminal/selection-actions.js.map +1 -0
  334. package/data/build/dist/client/terminal/share-menu.d.ts +17 -0
  335. package/data/build/dist/client/terminal/share-menu.d.ts.map +1 -0
  336. package/data/build/dist/client/terminal/share-menu.js +131 -0
  337. package/data/build/dist/client/terminal/share-menu.js.map +1 -0
  338. package/data/build/dist/client/terminal/sharing.d.ts +42 -0
  339. package/data/build/dist/client/terminal/sharing.d.ts.map +1 -0
  340. package/data/build/dist/client/terminal/sharing.js +144 -0
  341. package/data/build/dist/client/terminal/sharing.js.map +1 -0
  342. package/data/build/dist/client/terminal/snapshot.d.ts +32 -0
  343. package/data/build/dist/client/terminal/snapshot.d.ts.map +1 -0
  344. package/data/build/dist/client/terminal/snapshot.js +108 -0
  345. package/data/build/dist/client/terminal/snapshot.js.map +1 -0
  346. package/data/build/dist/client/terminal/styles.d.ts +14 -0
  347. package/data/build/dist/client/terminal/styles.d.ts.map +1 -1
  348. package/data/build/dist/client/terminal/styles.js +41 -3
  349. package/data/build/dist/client/terminal/styles.js.map +1 -1
  350. package/data/build/dist/client/terminal/surface-cache.d.ts +10 -0
  351. package/data/build/dist/client/terminal/surface-cache.d.ts.map +1 -0
  352. package/data/build/dist/client/terminal/surface-cache.js +19 -0
  353. package/data/build/dist/client/terminal/surface-cache.js.map +1 -0
  354. package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
  355. package/data/build/dist/client/terminal/ui.js +78 -21
  356. package/data/build/dist/client/terminal/ui.js.map +1 -1
  357. package/data/build/dist/client/terminal/xterm-view.d.ts +5 -2
  358. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  359. package/data/build/dist/client/terminal/xterm-view.js +429 -397
  360. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  361. package/data/build/dist/client/touch-input-focus.d.ts +30 -0
  362. package/data/build/dist/client/touch-input-focus.d.ts.map +1 -0
  363. package/data/build/dist/client/touch-input-focus.js +190 -0
  364. package/data/build/dist/client/touch-input-focus.js.map +1 -0
  365. package/data/build/dist/client/voice-capture.d.ts +9 -0
  366. package/data/build/dist/client/voice-capture.d.ts.map +1 -1
  367. package/data/build/dist/client/voice-capture.js +35 -1
  368. package/data/build/dist/client/voice-capture.js.map +1 -1
  369. package/data/build/dist/client/voice-chat-updates.d.ts +12 -0
  370. package/data/build/dist/client/voice-chat-updates.d.ts.map +1 -0
  371. package/data/build/dist/client/voice-chat-updates.js +39 -0
  372. package/data/build/dist/client/voice-chat-updates.js.map +1 -0
  373. package/data/build/dist/client/voice-diagnostics.d.ts +19 -0
  374. package/data/build/dist/client/voice-diagnostics.d.ts.map +1 -0
  375. package/data/build/dist/client/voice-diagnostics.js +73 -0
  376. package/data/build/dist/client/voice-diagnostics.js.map +1 -0
  377. package/data/build/dist/client/voice-model-setup-progress.d.ts +8 -0
  378. package/data/build/dist/client/voice-model-setup-progress.d.ts.map +1 -0
  379. package/data/build/dist/client/voice-model-setup-progress.js +27 -0
  380. package/data/build/dist/client/voice-model-setup-progress.js.map +1 -0
  381. package/data/build/dist/client/voice-stream-uploader.d.ts +41 -0
  382. package/data/build/dist/client/voice-stream-uploader.d.ts.map +1 -0
  383. package/data/build/dist/client/voice-stream-uploader.js +154 -0
  384. package/data/build/dist/client/voice-stream-uploader.js.map +1 -0
  385. package/data/build/dist/dsh-capabilities/client/config-forms-adapter.d.ts +4 -0
  386. package/data/build/dist/dsh-capabilities/client/config-forms-adapter.d.ts.map +1 -1
  387. package/data/build/dist/dsh-capabilities/client/config-forms-adapter.js +9 -0
  388. package/data/build/dist/dsh-capabilities/client/config-forms-adapter.js.map +1 -1
  389. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +5 -1
  390. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
  391. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +25 -0
  392. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
  393. package/data/build/dist/dsh-capabilities/client/terminal-sharing-adapter.d.ts +33 -0
  394. package/data/build/dist/dsh-capabilities/client/terminal-sharing-adapter.d.ts.map +1 -0
  395. package/data/build/dist/dsh-capabilities/client/terminal-sharing-adapter.js +187 -0
  396. package/data/build/dist/dsh-capabilities/client/terminal-sharing-adapter.js.map +1 -0
  397. package/data/build/dist/dsh-capabilities/host/assistant-agent-adapter.d.ts +55 -0
  398. package/data/build/dist/dsh-capabilities/host/assistant-agent-adapter.d.ts.map +1 -0
  399. package/data/build/dist/dsh-capabilities/host/assistant-agent-adapter.js +264 -0
  400. package/data/build/dist/dsh-capabilities/host/assistant-agent-adapter.js.map +1 -0
  401. package/data/build/dist/dsh-capabilities/host/assistant-attachment-adapter.d.ts +16 -0
  402. package/data/build/dist/dsh-capabilities/host/assistant-attachment-adapter.d.ts.map +1 -0
  403. package/data/build/dist/dsh-capabilities/host/assistant-attachment-adapter.js +69 -0
  404. package/data/build/dist/dsh-capabilities/host/assistant-attachment-adapter.js.map +1 -0
  405. package/data/build/dist/dsh-capabilities/host/assistant-llm-adapter.d.ts +36 -0
  406. package/data/build/dist/dsh-capabilities/host/assistant-llm-adapter.d.ts.map +1 -0
  407. package/data/build/dist/dsh-capabilities/host/assistant-llm-adapter.js +112 -0
  408. package/data/build/dist/dsh-capabilities/host/assistant-llm-adapter.js.map +1 -0
  409. package/data/build/dist/dsh-capabilities/host/assistant-web-search-adapter.d.ts +4 -0
  410. package/data/build/dist/dsh-capabilities/host/assistant-web-search-adapter.d.ts.map +1 -0
  411. package/data/build/dist/dsh-capabilities/host/assistant-web-search-adapter.js +41 -0
  412. package/data/build/dist/dsh-capabilities/host/assistant-web-search-adapter.js.map +1 -0
  413. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.d.ts +28 -0
  414. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.d.ts.map +1 -0
  415. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.js +109 -0
  416. package/data/build/dist/dsh-capabilities/host/sidebar-session-compat.js.map +1 -0
  417. package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
  418. package/data/build/dist/dsh-capabilities/matrix.js +3 -0
  419. package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
  420. package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
  421. package/data/build/dist/dsh-capabilities/routes.js +18 -0
  422. package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
  423. package/data/build/dist/dsh-capabilities/settings-store.d.ts +2 -0
  424. package/data/build/dist/dsh-capabilities/settings-store.d.ts.map +1 -1
  425. package/data/build/dist/dsh-capabilities/settings-store.js.map +1 -1
  426. package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
  427. package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
  428. package/data/build/dist/dsh-capabilities/types.js.map +1 -1
  429. package/data/build/dist/host/avatar/catalog.d.ts +21 -0
  430. package/data/build/dist/host/avatar/catalog.d.ts.map +1 -0
  431. package/data/build/dist/host/avatar/catalog.js +123 -0
  432. package/data/build/dist/host/avatar/catalog.js.map +1 -0
  433. package/data/build/dist/host/avatar/engine.d.ts +42 -0
  434. package/data/build/dist/host/avatar/engine.d.ts.map +1 -0
  435. package/data/build/dist/host/avatar/engine.js +167 -0
  436. package/data/build/dist/host/avatar/engine.js.map +1 -0
  437. package/data/build/dist/host/avatar/materials.d.ts +28 -0
  438. package/data/build/dist/host/avatar/materials.d.ts.map +1 -0
  439. package/data/build/dist/host/avatar/materials.js +183 -0
  440. package/data/build/dist/host/avatar/materials.js.map +1 -0
  441. package/data/build/dist/host/avatar/packages.d.ts +34 -0
  442. package/data/build/dist/host/avatar/packages.d.ts.map +1 -0
  443. package/data/build/dist/host/avatar/packages.js +200 -0
  444. package/data/build/dist/host/avatar/packages.js.map +1 -0
  445. package/data/build/dist/host/avatar/registry.d.ts +12 -0
  446. package/data/build/dist/host/avatar/registry.d.ts.map +1 -0
  447. package/data/build/dist/host/avatar/registry.js +22 -0
  448. package/data/build/dist/host/avatar/registry.js.map +1 -0
  449. package/data/build/dist/host/avatar/remote.d.ts +18 -0
  450. package/data/build/dist/host/avatar/remote.d.ts.map +1 -0
  451. package/data/build/dist/host/avatar/remote.js +103 -0
  452. package/data/build/dist/host/avatar/remote.js.map +1 -0
  453. package/data/build/dist/host/avatar/sources.d.ts +11 -0
  454. package/data/build/dist/host/avatar/sources.d.ts.map +1 -0
  455. package/data/build/dist/host/avatar/sources.js +78 -0
  456. package/data/build/dist/host/avatar/sources.js.map +1 -0
  457. package/data/build/dist/host/avatar/temporary-previews.d.ts +26 -0
  458. package/data/build/dist/host/avatar/temporary-previews.d.ts.map +1 -0
  459. package/data/build/dist/host/avatar/temporary-previews.js +139 -0
  460. package/data/build/dist/host/avatar/temporary-previews.js.map +1 -0
  461. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +18 -1
  462. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -1
  463. package/data/build/dist/host/cli-adapters/acp-cli-driver.js +26 -8
  464. package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
  465. package/data/build/dist/host/cli-adapters/attachment-utils.d.ts +16 -5
  466. package/data/build/dist/host/cli-adapters/attachment-utils.d.ts.map +1 -1
  467. package/data/build/dist/host/cli-adapters/attachment-utils.js +152 -42
  468. package/data/build/dist/host/cli-adapters/attachment-utils.js.map +1 -1
  469. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +14 -8
  470. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  471. package/data/build/dist/host/cli-adapters/claude-driver.js +101 -76
  472. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  473. package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
  474. package/data/build/dist/host/cli-adapters/codex-driver.js +84 -9
  475. package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
  476. package/data/build/dist/host/cli-adapters/command-code-acp-loader.d.ts +23 -0
  477. package/data/build/dist/host/cli-adapters/command-code-acp-loader.d.ts.map +1 -0
  478. package/data/build/dist/host/cli-adapters/command-code-acp-loader.js +39 -0
  479. package/data/build/dist/host/cli-adapters/command-code-acp-loader.js.map +1 -0
  480. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts +17 -6
  481. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  482. package/data/build/dist/host/cli-adapters/command-code-driver.js +430 -20
  483. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  484. package/data/build/dist/host/cli-adapters/command-code-subscription.d.ts +1 -1
  485. package/data/build/dist/host/cli-adapters/command-code-subscription.d.ts.map +1 -1
  486. package/data/build/dist/host/cli-adapters/command-code-subscription.js +7 -4
  487. package/data/build/dist/host/cli-adapters/command-code-subscription.js.map +1 -1
  488. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  489. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +28 -0
  490. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  491. package/data/build/dist/host/cli-adapters/dsh-tool-history.d.ts.map +1 -1
  492. package/data/build/dist/host/cli-adapters/dsh-tool-history.js +23 -1
  493. package/data/build/dist/host/cli-adapters/dsh-tool-history.js.map +1 -1
  494. package/data/build/dist/host/cli-adapters/feature.js +1 -1
  495. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  496. package/data/build/dist/host/cli-adapters/grok-driver.d.ts +4 -2
  497. package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
  498. package/data/build/dist/host/cli-adapters/grok-driver.js +208 -9
  499. package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
  500. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts +2 -0
  501. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  502. package/data/build/dist/host/cli-adapters/json-rpc-process.js +8 -3
  503. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  504. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts +4 -0
  505. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
  506. package/data/build/dist/host/cli-adapters/kimi-driver.js +11 -4
  507. package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
  508. package/data/build/dist/host/cli-adapters/mcode-driver.js +2 -2
  509. package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
  510. package/data/build/dist/host/cli-adapters/new-api-subscription.d.ts.map +1 -1
  511. package/data/build/dist/host/cli-adapters/new-api-subscription.js +11 -58
  512. package/data/build/dist/host/cli-adapters/new-api-subscription.js.map +1 -1
  513. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +5 -2
  514. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
  515. package/data/build/dist/host/cli-adapters/opencode-driver.js +136 -18
  516. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  517. package/data/build/dist/host/cli-adapters/pi-driver.d.ts.map +1 -1
  518. package/data/build/dist/host/cli-adapters/pi-driver.js +2 -1
  519. package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
  520. package/data/build/dist/host/cli-adapters/process-utils.d.ts +10 -0
  521. package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
  522. package/data/build/dist/host/cli-adapters/process-utils.js +20 -0
  523. package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
  524. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +3 -0
  525. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
  526. package/data/build/dist/host/cli-adapters/provider-subscription.js +42 -8
  527. package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
  528. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  529. package/data/build/dist/host/cli-adapters/registry.js +5 -3
  530. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  531. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts.map +1 -1
  532. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +2 -9
  533. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js.map +1 -1
  534. package/data/build/dist/host/cli-adapters/skill-filesystem.d.ts +25 -0
  535. package/data/build/dist/host/cli-adapters/skill-filesystem.d.ts.map +1 -0
  536. package/data/build/dist/host/cli-adapters/skill-filesystem.js +161 -0
  537. package/data/build/dist/host/cli-adapters/skill-filesystem.js.map +1 -0
  538. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +1 -0
  539. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  540. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +4 -0
  541. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  542. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts +8 -2
  543. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts.map +1 -1
  544. package/data/build/dist/host/cli-adapters/zcode-driver.js +166 -55
  545. package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -1
  546. package/data/build/dist/host/cli-adapters/zcode-interactions.d.ts +18 -0
  547. package/data/build/dist/host/cli-adapters/zcode-interactions.d.ts.map +1 -0
  548. package/data/build/dist/host/cli-adapters/zcode-interactions.js +90 -0
  549. package/data/build/dist/host/cli-adapters/zcode-interactions.js.map +1 -0
  550. package/data/build/dist/host/cli-adapters/zcode-provider-config.d.ts +26 -0
  551. package/data/build/dist/host/cli-adapters/zcode-provider-config.d.ts.map +1 -0
  552. package/data/build/dist/host/cli-adapters/zcode-provider-config.js +102 -0
  553. package/data/build/dist/host/cli-adapters/zcode-provider-config.js.map +1 -0
  554. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts +2 -7
  555. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts.map +1 -1
  556. package/data/build/dist/host/cli-adapters/zcode-subscription.js.map +1 -1
  557. package/data/build/dist/host/cli-adapters/zcode-telemetry.d.ts +17 -0
  558. package/data/build/dist/host/cli-adapters/zcode-telemetry.d.ts.map +1 -0
  559. package/data/build/dist/host/cli-adapters/zcode-telemetry.js +124 -0
  560. package/data/build/dist/host/cli-adapters/zcode-telemetry.js.map +1 -0
  561. package/data/build/dist/host/cli-bridge/injections.d.ts +2 -9
  562. package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -1
  563. package/data/build/dist/host/cli-bridge/injections.js +7 -17
  564. package/data/build/dist/host/cli-bridge/injections.js.map +1 -1
  565. package/data/build/dist/host/desktop-assistant/controller.d.ts +44 -0
  566. package/data/build/dist/host/desktop-assistant/controller.d.ts.map +1 -0
  567. package/data/build/dist/host/desktop-assistant/controller.js +150 -0
  568. package/data/build/dist/host/desktop-assistant/controller.js.map +1 -0
  569. package/data/build/dist/host/desktop-assistant/feature.d.ts +9 -0
  570. package/data/build/dist/host/desktop-assistant/feature.d.ts.map +1 -0
  571. package/data/build/dist/host/desktop-assistant/feature.js +102 -0
  572. package/data/build/dist/host/desktop-assistant/feature.js.map +1 -0
  573. package/data/build/dist/host/desktop-assistant/launcher.d.ts +5 -0
  574. package/data/build/dist/host/desktop-assistant/launcher.d.ts.map +1 -0
  575. package/data/build/dist/host/desktop-assistant/launcher.js +84 -0
  576. package/data/build/dist/host/desktop-assistant/launcher.js.map +1 -0
  577. package/data/build/dist/host/desktop-assistant/mac-agent.d.ts +5 -0
  578. package/data/build/dist/host/desktop-assistant/mac-agent.d.ts.map +1 -0
  579. package/data/build/dist/host/desktop-assistant/mac-agent.js +122 -0
  580. package/data/build/dist/host/desktop-assistant/mac-agent.js.map +1 -0
  581. package/data/build/dist/host/desktop-assistant/process.d.ts +4 -0
  582. package/data/build/dist/host/desktop-assistant/process.d.ts.map +1 -0
  583. package/data/build/dist/host/desktop-assistant/process.js +25 -0
  584. package/data/build/dist/host/desktop-assistant/process.js.map +1 -0
  585. package/data/build/dist/host/desktop-assistant/server.d.ts +12 -0
  586. package/data/build/dist/host/desktop-assistant/server.d.ts.map +1 -0
  587. package/data/build/dist/host/desktop-assistant/server.js +74 -0
  588. package/data/build/dist/host/desktop-assistant/server.js.map +1 -0
  589. package/data/build/dist/host/desktop-assistant/win-agent.d.ts +2 -0
  590. package/data/build/dist/host/desktop-assistant/win-agent.d.ts.map +1 -0
  591. package/data/build/dist/host/desktop-assistant/win-agent.js +197 -0
  592. package/data/build/dist/host/desktop-assistant/win-agent.js.map +1 -0
  593. package/data/build/dist/host/features/assistant-avatar-assets.d.ts +3 -0
  594. package/data/build/dist/host/features/assistant-avatar-assets.d.ts.map +1 -0
  595. package/data/build/dist/host/features/assistant-avatar-assets.js +3 -0
  596. package/data/build/dist/host/features/assistant-avatar-assets.js.map +1 -0
  597. package/data/build/dist/host/features/assistant-avatar-basics.d.ts +3 -0
  598. package/data/build/dist/host/features/assistant-avatar-basics.d.ts.map +1 -0
  599. package/data/build/dist/host/features/assistant-avatar-basics.js +34 -0
  600. package/data/build/dist/host/features/assistant-avatar-basics.js.map +1 -0
  601. package/data/build/dist/host/features/assistant-avatar-legacy-assets.d.ts +6 -0
  602. package/data/build/dist/host/features/assistant-avatar-legacy-assets.d.ts.map +1 -0
  603. package/data/build/dist/host/features/assistant-avatar-legacy-assets.js +146 -0
  604. package/data/build/dist/host/features/assistant-avatar-legacy-assets.js.map +1 -0
  605. package/data/build/dist/host/features/assistant-avatar-runtime.d.ts +20 -0
  606. package/data/build/dist/host/features/assistant-avatar-runtime.d.ts.map +1 -0
  607. package/data/build/dist/host/features/assistant-avatar-runtime.js +235 -0
  608. package/data/build/dist/host/features/assistant-avatar-runtime.js.map +1 -0
  609. package/data/build/dist/host/features/assistant-conversation-storage.d.ts +8 -0
  610. package/data/build/dist/host/features/assistant-conversation-storage.d.ts.map +1 -0
  611. package/data/build/dist/host/features/assistant-conversation-storage.js +38 -0
  612. package/data/build/dist/host/features/assistant-conversation-storage.js.map +1 -0
  613. package/data/build/dist/host/features/assistant-conversation.d.ts +57 -0
  614. package/data/build/dist/host/features/assistant-conversation.d.ts.map +1 -0
  615. package/data/build/dist/host/features/assistant-conversation.js +364 -0
  616. package/data/build/dist/host/features/assistant-conversation.js.map +1 -0
  617. package/data/build/dist/host/features/assistant-dispatch.d.ts +2 -2
  618. package/data/build/dist/host/features/assistant-dispatch.d.ts.map +1 -1
  619. package/data/build/dist/host/features/assistant-dispatch.js +4 -3
  620. package/data/build/dist/host/features/assistant-dispatch.js.map +1 -1
  621. package/data/build/dist/host/features/assistant-index-analysis.d.ts +49 -0
  622. package/data/build/dist/host/features/assistant-index-analysis.d.ts.map +1 -0
  623. package/data/build/dist/host/features/assistant-index-analysis.js +255 -0
  624. package/data/build/dist/host/features/assistant-index-analysis.js.map +1 -0
  625. package/data/build/dist/host/features/assistant-index-journal.d.ts +20 -0
  626. package/data/build/dist/host/features/assistant-index-journal.d.ts.map +1 -0
  627. package/data/build/dist/host/features/assistant-index-journal.js +40 -0
  628. package/data/build/dist/host/features/assistant-index-journal.js.map +1 -0
  629. package/data/build/dist/host/features/assistant-index-retry.d.ts +12 -0
  630. package/data/build/dist/host/features/assistant-index-retry.d.ts.map +1 -0
  631. package/data/build/dist/host/features/assistant-index-retry.js +54 -0
  632. package/data/build/dist/host/features/assistant-index-retry.js.map +1 -0
  633. package/data/build/dist/host/features/assistant-index-updates.d.ts +40 -0
  634. package/data/build/dist/host/features/assistant-index-updates.d.ts.map +1 -0
  635. package/data/build/dist/host/features/assistant-index-updates.js +183 -0
  636. package/data/build/dist/host/features/assistant-index-updates.js.map +1 -0
  637. package/data/build/dist/host/features/assistant-lifecycle-settings.d.ts +5 -0
  638. package/data/build/dist/host/features/assistant-lifecycle-settings.d.ts.map +1 -0
  639. package/data/build/dist/host/features/assistant-lifecycle-settings.js +72 -0
  640. package/data/build/dist/host/features/assistant-lifecycle-settings.js.map +1 -0
  641. package/data/build/dist/host/features/assistant-management-tools.d.ts +34 -0
  642. package/data/build/dist/host/features/assistant-management-tools.d.ts.map +1 -0
  643. package/data/build/dist/host/features/assistant-management-tools.js +69 -0
  644. package/data/build/dist/host/features/assistant-management-tools.js.map +1 -0
  645. package/data/build/dist/host/features/assistant-prompts.d.ts +6 -0
  646. package/data/build/dist/host/features/assistant-prompts.d.ts.map +1 -0
  647. package/data/build/dist/host/features/assistant-prompts.js +62 -0
  648. package/data/build/dist/host/features/assistant-prompts.js.map +1 -0
  649. package/data/build/dist/host/features/assistant-session-index.d.ts +6 -1
  650. package/data/build/dist/host/features/assistant-session-index.d.ts.map +1 -1
  651. package/data/build/dist/host/features/assistant-session-index.js +11 -12
  652. package/data/build/dist/host/features/assistant-session-index.js.map +1 -1
  653. package/data/build/dist/host/features/assistant-structured-index.d.ts +21 -0
  654. package/data/build/dist/host/features/assistant-structured-index.d.ts.map +1 -0
  655. package/data/build/dist/host/features/assistant-structured-index.js +138 -0
  656. package/data/build/dist/host/features/assistant-structured-index.js.map +1 -0
  657. package/data/build/dist/host/features/assistant-summary.d.ts.map +1 -1
  658. package/data/build/dist/host/features/assistant-summary.js +7 -1
  659. package/data/build/dist/host/features/assistant-summary.js.map +1 -1
  660. package/data/build/dist/host/features/assistant-text-chat.d.ts +29 -0
  661. package/data/build/dist/host/features/assistant-text-chat.d.ts.map +1 -0
  662. package/data/build/dist/host/features/assistant-text-chat.js +195 -0
  663. package/data/build/dist/host/features/assistant-text-chat.js.map +1 -0
  664. package/data/build/dist/host/features/assistant-tts-service.d.ts +47 -0
  665. package/data/build/dist/host/features/assistant-tts-service.d.ts.map +1 -0
  666. package/data/build/dist/host/features/assistant-tts-service.js +507 -0
  667. package/data/build/dist/host/features/assistant-tts-service.js.map +1 -0
  668. package/data/build/dist/host/features/assistant-voice-chat.d.ts +35 -0
  669. package/data/build/dist/host/features/assistant-voice-chat.d.ts.map +1 -0
  670. package/data/build/dist/host/features/assistant-voice-chat.js +133 -0
  671. package/data/build/dist/host/features/assistant-voice-chat.js.map +1 -0
  672. package/data/build/dist/host/features/assistant-voice-hotwords.d.ts +33 -0
  673. package/data/build/dist/host/features/assistant-voice-hotwords.d.ts.map +1 -0
  674. package/data/build/dist/host/features/assistant-voice-hotwords.js +114 -0
  675. package/data/build/dist/host/features/assistant-voice-hotwords.js.map +1 -0
  676. package/data/build/dist/host/features/assistant-voice-initialization.d.ts +26 -0
  677. package/data/build/dist/host/features/assistant-voice-initialization.d.ts.map +1 -0
  678. package/data/build/dist/host/features/assistant-voice-initialization.js +68 -0
  679. package/data/build/dist/host/features/assistant-voice-initialization.js.map +1 -0
  680. package/data/build/dist/host/features/assistant-voice-sources.d.ts +13 -0
  681. package/data/build/dist/host/features/assistant-voice-sources.d.ts.map +1 -0
  682. package/data/build/dist/host/features/assistant-voice-sources.js +72 -0
  683. package/data/build/dist/host/features/assistant-voice-sources.js.map +1 -0
  684. package/data/build/dist/host/features/assistant-voice-stream.d.ts +10 -0
  685. package/data/build/dist/host/features/assistant-voice-stream.d.ts.map +1 -1
  686. package/data/build/dist/host/features/assistant-voice-stream.js +208 -5
  687. package/data/build/dist/host/features/assistant-voice-stream.js.map +1 -1
  688. package/data/build/dist/host/features/global-voice-rpc.d.ts +8 -1
  689. package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -1
  690. package/data/build/dist/host/features/global-voice-rpc.js +1055 -153
  691. package/data/build/dist/host/features/global-voice-rpc.js.map +1 -1
  692. package/data/build/dist/host/features/index.d.ts.map +1 -1
  693. package/data/build/dist/host/features/index.js +4 -0
  694. package/data/build/dist/host/features/index.js.map +1 -1
  695. package/data/build/dist/host/features/moss-tts-worker.d.ts +32 -0
  696. package/data/build/dist/host/features/moss-tts-worker.d.ts.map +1 -0
  697. package/data/build/dist/host/features/moss-tts-worker.js +216 -0
  698. package/data/build/dist/host/features/moss-tts-worker.js.map +1 -0
  699. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  700. package/data/build/dist/host/features/peer-host.js +38 -7
  701. package/data/build/dist/host/features/peer-host.js.map +1 -1
  702. package/data/build/dist/host/features/sherpa-voice-runtime.d.ts +11 -0
  703. package/data/build/dist/host/features/sherpa-voice-runtime.d.ts.map +1 -1
  704. package/data/build/dist/host/features/sherpa-voice-runtime.js +72 -17
  705. package/data/build/dist/host/features/sherpa-voice-runtime.js.map +1 -1
  706. package/data/build/dist/host/features/types.d.ts +9 -1
  707. package/data/build/dist/host/features/types.d.ts.map +1 -1
  708. package/data/build/dist/host/features/voice-model-management.d.ts +22 -0
  709. package/data/build/dist/host/features/voice-model-management.d.ts.map +1 -0
  710. package/data/build/dist/host/features/voice-model-management.js +178 -0
  711. package/data/build/dist/host/features/voice-model-management.js.map +1 -0
  712. package/data/build/dist/host/features/voice-model-probe.d.ts +8 -0
  713. package/data/build/dist/host/features/voice-model-probe.d.ts.map +1 -0
  714. package/data/build/dist/host/features/voice-model-probe.js +76 -0
  715. package/data/build/dist/host/features/voice-model-probe.js.map +1 -0
  716. package/data/build/dist/host/features/voice-model-setup.d.ts +5 -2
  717. package/data/build/dist/host/features/voice-model-setup.d.ts.map +1 -1
  718. package/data/build/dist/host/features/voice-model-setup.js +40 -13
  719. package/data/build/dist/host/features/voice-model-setup.js.map +1 -1
  720. package/data/build/dist/host/features/voice-process-environment.d.ts +3 -0
  721. package/data/build/dist/host/features/voice-process-environment.d.ts.map +1 -0
  722. package/data/build/dist/host/features/voice-process-environment.js +16 -0
  723. package/data/build/dist/host/features/voice-process-environment.js.map +1 -0
  724. package/data/build/dist/host/features/voice-python-runtime.d.ts +21 -0
  725. package/data/build/dist/host/features/voice-python-runtime.d.ts.map +1 -0
  726. package/data/build/dist/host/features/voice-python-runtime.js +189 -0
  727. package/data/build/dist/host/features/voice-python-runtime.js.map +1 -0
  728. package/data/build/dist/host/index-injection.d.ts.map +1 -1
  729. package/data/build/dist/host/index-injection.js +5 -1
  730. package/data/build/dist/host/index-injection.js.map +1 -1
  731. package/data/build/dist/host/index.d.ts +5 -0
  732. package/data/build/dist/host/index.d.ts.map +1 -1
  733. package/data/build/dist/host/index.js +33 -12
  734. package/data/build/dist/host/index.js.map +1 -1
  735. package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
  736. package/data/build/dist/host/lan-access-dsh.js +2 -1
  737. package/data/build/dist/host/lan-access-dsh.js.map +1 -1
  738. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts +1 -0
  739. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts.map +1 -1
  740. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js +1 -0
  741. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js.map +1 -1
  742. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts +2 -0
  743. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts.map +1 -1
  744. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js +5 -0
  745. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js.map +1 -1
  746. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts.map +1 -1
  747. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js +15 -1
  748. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
  749. package/data/build/dist/host/rpc.d.ts.map +1 -1
  750. package/data/build/dist/host/rpc.js +50 -4
  751. package/data/build/dist/host/rpc.js.map +1 -1
  752. package/data/build/dist/host/settings.d.ts +2 -1
  753. package/data/build/dist/host/settings.d.ts.map +1 -1
  754. package/data/build/dist/host/settings.js +77 -13
  755. package/data/build/dist/host/settings.js.map +1 -1
  756. package/data/build/dist/host/stage0-dev-hmr.d.ts +6 -0
  757. package/data/build/dist/host/stage0-dev-hmr.d.ts.map +1 -0
  758. package/data/build/dist/host/stage0-dev-hmr.js +20 -0
  759. package/data/build/dist/host/stage0-dev-hmr.js.map +1 -0
  760. package/data/build/dist/host/tar-archive.d.ts +8 -0
  761. package/data/build/dist/host/tar-archive.d.ts.map +1 -0
  762. package/data/build/dist/host/tar-archive.js +17 -0
  763. package/data/build/dist/host/tar-archive.js.map +1 -0
  764. package/data/build/dist/host/voice-diagnostics.d.ts +34 -0
  765. package/data/build/dist/host/voice-diagnostics.d.ts.map +1 -0
  766. package/data/build/dist/host/voice-diagnostics.js +124 -0
  767. package/data/build/dist/host/voice-diagnostics.js.map +1 -0
  768. package/data/build/dist/shared/assistant-attachments.d.ts +27 -0
  769. package/data/build/dist/shared/assistant-attachments.d.ts.map +1 -0
  770. package/data/build/dist/shared/assistant-attachments.js +45 -0
  771. package/data/build/dist/shared/assistant-attachments.js.map +1 -0
  772. package/data/build/dist/shared/assistant-avatar-adapters.d.ts +18 -0
  773. package/data/build/dist/shared/assistant-avatar-adapters.d.ts.map +1 -0
  774. package/data/build/dist/shared/assistant-avatar-adapters.js +119 -0
  775. package/data/build/dist/shared/assistant-avatar-adapters.js.map +1 -0
  776. package/data/build/dist/shared/assistant-avatar-catalog.d.ts +37 -0
  777. package/data/build/dist/shared/assistant-avatar-catalog.d.ts.map +1 -0
  778. package/data/build/dist/shared/assistant-avatar-catalog.js +21 -0
  779. package/data/build/dist/shared/assistant-avatar-catalog.js.map +1 -0
  780. package/data/build/dist/shared/assistant-avatar-engine.d.ts +31 -0
  781. package/data/build/dist/shared/assistant-avatar-engine.d.ts.map +1 -0
  782. package/data/build/dist/shared/assistant-avatar-engine.js +28 -0
  783. package/data/build/dist/shared/assistant-avatar-engine.js.map +1 -0
  784. package/data/build/dist/shared/assistant-avatar-installation.d.ts +17 -0
  785. package/data/build/dist/shared/assistant-avatar-installation.d.ts.map +1 -0
  786. package/data/build/dist/shared/assistant-avatar-installation.js +7 -0
  787. package/data/build/dist/shared/assistant-avatar-installation.js.map +1 -0
  788. package/data/build/dist/shared/assistant-avatar-legacy-resources.d.ts +6 -0
  789. package/data/build/dist/shared/assistant-avatar-legacy-resources.d.ts.map +1 -0
  790. package/data/build/dist/shared/assistant-avatar-legacy-resources.js +20 -0
  791. package/data/build/dist/shared/assistant-avatar-legacy-resources.js.map +1 -0
  792. package/data/build/dist/shared/assistant-avatar-legacy.d.ts +15 -0
  793. package/data/build/dist/shared/assistant-avatar-legacy.d.ts.map +1 -0
  794. package/data/build/dist/shared/assistant-avatar-legacy.js +34 -0
  795. package/data/build/dist/shared/assistant-avatar-legacy.js.map +1 -0
  796. package/data/build/dist/shared/assistant-avatar-presets.d.ts +3 -0
  797. package/data/build/dist/shared/assistant-avatar-presets.d.ts.map +1 -0
  798. package/data/build/dist/shared/assistant-avatar-presets.js +3 -0
  799. package/data/build/dist/shared/assistant-avatar-presets.js.map +1 -0
  800. package/data/build/dist/shared/assistant-avatar-registration.d.ts +16 -0
  801. package/data/build/dist/shared/assistant-avatar-registration.d.ts.map +1 -0
  802. package/data/build/dist/shared/assistant-avatar-registration.js +33 -0
  803. package/data/build/dist/shared/assistant-avatar-registration.js.map +1 -0
  804. package/data/build/dist/shared/assistant-avatar-resources.d.ts +26 -0
  805. package/data/build/dist/shared/assistant-avatar-resources.d.ts.map +1 -0
  806. package/data/build/dist/shared/assistant-avatar-resources.js +4 -0
  807. package/data/build/dist/shared/assistant-avatar-resources.js.map +1 -0
  808. package/data/build/dist/shared/assistant-avatar.d.ts +103 -0
  809. package/data/build/dist/shared/assistant-avatar.d.ts.map +1 -0
  810. package/data/build/dist/shared/assistant-avatar.js +240 -0
  811. package/data/build/dist/shared/assistant-avatar.js.map +1 -0
  812. package/data/build/dist/shared/assistant-commands.d.ts +3 -0
  813. package/data/build/dist/shared/assistant-commands.d.ts.map +1 -0
  814. package/data/build/dist/shared/assistant-commands.js +3 -0
  815. package/data/build/dist/shared/assistant-commands.js.map +1 -0
  816. package/data/build/dist/shared/assistant-lifecycle.d.ts +17 -0
  817. package/data/build/dist/shared/assistant-lifecycle.d.ts.map +1 -0
  818. package/data/build/dist/shared/assistant-lifecycle.js +45 -0
  819. package/data/build/dist/shared/assistant-lifecycle.js.map +1 -0
  820. package/data/build/dist/shared/assistant-message-timeline.d.ts +13 -0
  821. package/data/build/dist/shared/assistant-message-timeline.d.ts.map +1 -0
  822. package/data/build/dist/shared/assistant-message-timeline.js +22 -0
  823. package/data/build/dist/shared/assistant-message-timeline.js.map +1 -0
  824. package/data/build/dist/shared/assistant-prompts.d.ts +12 -0
  825. package/data/build/dist/shared/assistant-prompts.d.ts.map +1 -0
  826. package/data/build/dist/shared/assistant-prompts.js +32 -0
  827. package/data/build/dist/shared/assistant-prompts.js.map +1 -0
  828. package/data/build/dist/shared/assistant-tts.d.ts +93 -0
  829. package/data/build/dist/shared/assistant-tts.d.ts.map +1 -0
  830. package/data/build/dist/shared/assistant-tts.js +80 -0
  831. package/data/build/dist/shared/assistant-tts.js.map +1 -0
  832. package/data/build/dist/shared/assistant-voice-sessions.d.ts +13 -0
  833. package/data/build/dist/shared/assistant-voice-sessions.d.ts.map +1 -0
  834. package/data/build/dist/shared/assistant-voice-sessions.js +16 -0
  835. package/data/build/dist/shared/assistant-voice-sessions.js.map +1 -0
  836. package/data/build/dist/shared/contracts/assistant.d.ts +206 -0
  837. package/data/build/dist/shared/contracts/assistant.d.ts.map +1 -1
  838. package/data/build/dist/shared/contracts/cli-adapter.d.ts +4 -0
  839. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  840. package/data/build/dist/shared/contracts/config.d.ts +23 -0
  841. package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
  842. package/data/build/dist/shared/contracts/config.js +2 -0
  843. package/data/build/dist/shared/contracts/config.js.map +1 -1
  844. package/data/build/dist/shared/contracts/peer-host.d.ts +2 -0
  845. package/data/build/dist/shared/contracts/peer-host.d.ts.map +1 -1
  846. package/data/build/dist/shared/contracts/peer-host.js.map +1 -1
  847. package/data/build/dist/shared/contracts/terminal-share.d.ts +27 -0
  848. package/data/build/dist/shared/contracts/terminal-share.d.ts.map +1 -0
  849. package/data/build/dist/shared/contracts/terminal-share.js +2 -0
  850. package/data/build/dist/shared/contracts/terminal-share.js.map +1 -0
  851. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  852. package/data/build/dist/shared/contracts/version.js +1 -1
  853. package/data/build/dist/shared/contracts/voice-runtime.d.ts +15 -1
  854. package/data/build/dist/shared/contracts/voice-runtime.d.ts.map +1 -1
  855. package/data/build/dist/shared/contracts/voice-runtime.js.map +1 -1
  856. package/data/build/dist/shared/desktop-assistant.d.ts +35 -0
  857. package/data/build/dist/shared/desktop-assistant.d.ts.map +1 -0
  858. package/data/build/dist/shared/desktop-assistant.js +27 -0
  859. package/data/build/dist/shared/desktop-assistant.js.map +1 -0
  860. package/data/build/dist/shared/index.d.ts +16 -2
  861. package/data/build/dist/shared/index.d.ts.map +1 -1
  862. package/data/build/dist/shared/index.js +10 -0
  863. package/data/build/dist/shared/index.js.map +1 -1
  864. package/data/build/dist/shared/runtime-environment.d.ts +5 -0
  865. package/data/build/dist/shared/runtime-environment.d.ts.map +1 -0
  866. package/data/build/dist/shared/runtime-environment.js +7 -0
  867. package/data/build/dist/shared/runtime-environment.js.map +1 -0
  868. package/data/build/dist/shared/voice-diagnostics.d.ts +18 -0
  869. package/data/build/dist/shared/voice-diagnostics.d.ts.map +1 -0
  870. package/data/build/dist/shared/voice-diagnostics.js +57 -0
  871. package/data/build/dist/shared/voice-diagnostics.js.map +1 -0
  872. package/data/build/dist/shared/voice-initialization.d.ts +22 -0
  873. package/data/build/dist/shared/voice-initialization.d.ts.map +1 -0
  874. package/data/build/dist/shared/voice-initialization.js +4 -0
  875. package/data/build/dist/shared/voice-initialization.js.map +1 -0
  876. package/data/build/dist/shared/voice-models.d.ts +43 -0
  877. package/data/build/dist/shared/voice-models.d.ts.map +1 -1
  878. package/data/build/dist/shared/voice-models.js +23 -8
  879. package/data/build/dist/shared/voice-models.js.map +1 -1
  880. package/data/build/dist/shared/voice-stream.d.ts +12 -1
  881. package/data/build/dist/shared/voice-stream.d.ts.map +1 -1
  882. package/data/build/dist/shared/voice-stream.js +8 -1
  883. package/data/build/dist/shared/voice-stream.js.map +1 -1
  884. package/package.json +21 -3
  885. package/profile/README.md +2 -2
  886. package/profile/package.json +2 -2
  887. package/profile/version.json +1 -1
  888. package/version.json +1 -1
@@ -0,0 +1,124 @@
1
+ import { appendFile, mkdir, writeFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { monitorEventLoopDelay } from 'node:perf_hooks';
5
+ import { isStage0Runtime } from './stage0-dev-hmr.js';
6
+ import { sanitizeVoiceDiagnosticFields, subscribeVoiceDiagnostics, traceVoice } from '../shared/voice-diagnostics.js';
7
+ /** 有界批量写入:磁盘变慢时丢诊断并记录数量,不让通话等待磁盘。 */
8
+ export class VoiceDiagnosticWriter {
9
+ directory;
10
+ options;
11
+ pending = [];
12
+ pendingBytes = 0;
13
+ dropped = 0;
14
+ timer;
15
+ writing;
16
+ closed = false;
17
+ failed = false;
18
+ fileIndex = 0;
19
+ fileBytes = 0;
20
+ prefix;
21
+ constructor(directory, options = {}) {
22
+ this.directory = directory;
23
+ this.options = options;
24
+ this.prefix = `voice-performance-${new Date().toISOString().replace(/[:.]/gu, '-')}-${process.pid}-${randomUUID().slice(0, 8)}`;
25
+ }
26
+ get filePath() { return join(this.directory, `${this.prefix}.${this.fileIndex}.jsonl`); }
27
+ record(record, source = 'host') {
28
+ if (this.closed || this.failed || !/^[a-z][a-z0-9_.-]{0,99}$/u.test(record.event))
29
+ return;
30
+ const line = JSON.stringify({ timestamp: new Date(record.timestamp).toISOString(), receivedAt: new Date().toISOString(), source, event: record.event, fields: sanitizeVoiceDiagnosticFields(record.fields) }) + '\n';
31
+ const bytes = Buffer.byteLength(line);
32
+ if (this.pendingBytes + bytes > (this.options.maxPendingBytes ?? 1024 * 1024)) {
33
+ this.dropped++;
34
+ return;
35
+ }
36
+ this.pending.push(line);
37
+ this.pendingBytes += bytes;
38
+ this.schedule();
39
+ }
40
+ /** 单一写入任务保序;只由测试或释放资源等待,不从采集、播放路径 await。 */
41
+ async flush() {
42
+ if (this.timer !== undefined)
43
+ clearTimeout(this.timer);
44
+ this.timer = undefined;
45
+ if (this.writing !== undefined) {
46
+ await this.writing;
47
+ if (this.pending.length > 0)
48
+ await this.flush();
49
+ return;
50
+ }
51
+ if (this.failed || this.pending.length === 0)
52
+ return;
53
+ const lines = this.pending.join('');
54
+ const dropped = this.dropped;
55
+ this.pending = [];
56
+ this.pendingBytes = 0;
57
+ this.dropped = 0;
58
+ const task = this.write(lines, dropped).catch((error) => {
59
+ this.failed = true;
60
+ this.pending = [];
61
+ this.pendingBytes = 0;
62
+ // 文件日志不可用必须可见;只输出一次,避免异常重试刷屏。
63
+ console.warn('CodingNS voice diagnostic log write failed', error instanceof Error ? error.name : 'UnknownError');
64
+ });
65
+ this.writing = task;
66
+ try {
67
+ await task;
68
+ }
69
+ finally {
70
+ this.writing = undefined;
71
+ if (!this.closed && this.pending.length > 0)
72
+ this.schedule();
73
+ }
74
+ }
75
+ async dispose() { this.closed = true; await this.flush(); }
76
+ schedule() {
77
+ if (this.timer !== undefined || this.closed || this.writing !== undefined)
78
+ return;
79
+ this.timer = setTimeout(() => { this.timer = undefined; void this.flush(); }, 500);
80
+ this.timer.unref();
81
+ }
82
+ async write(lines, dropped) {
83
+ await mkdir(this.directory, { recursive: true, mode: 0o700 });
84
+ const content = lines + (dropped > 0 ? JSON.stringify({ timestamp: new Date().toISOString(), source: 'host', event: 'diagnostics.dropped', fields: { dropped } }) + '\n' : '');
85
+ const bytes = Buffer.byteLength(content);
86
+ if (this.fileBytes > 0 && this.fileBytes + bytes > (this.options.maxFileBytes ?? 20 * 1024 * 1024)) {
87
+ this.fileIndex = (this.fileIndex + 1) % (this.options.maxFiles ?? 5);
88
+ this.fileBytes = 0;
89
+ // 只循环本次启动生成的唯一文件名,不清理目录里已有的其他日志。
90
+ await writeFile(this.filePath, '', { mode: 0o600 });
91
+ }
92
+ await appendFile(this.filePath, content, { mode: 0o600 });
93
+ this.fileBytes += bytes;
94
+ }
95
+ }
96
+ /** 自动诊断仅在专用 Stage0 开启,日志固定落在该仓库 data/logs 下。 */
97
+ export function installVoiceDiagnostics(active) {
98
+ if (!isStage0Runtime() || process.env.CODINGNS4DSH_VOICE_DIAGNOSTICS === '0')
99
+ return undefined;
100
+ const writer = new VoiceDiagnosticWriter(join(process.env.CODINGNS4DSH_STAGE0_REPO_ROOT, 'data', 'logs'));
101
+ const unsubscribe = subscribeVoiceDiagnostics((record) => writer.record(record));
102
+ const delay = monitorEventLoopDelay({ resolution: 20 });
103
+ delay.enable();
104
+ let previousCpu = process.cpuUsage();
105
+ let previousTime = performance.now();
106
+ const timer = setInterval(() => {
107
+ const now = performance.now();
108
+ const cpu = process.cpuUsage();
109
+ const memory = process.memoryUsage();
110
+ if (active())
111
+ traceVoice('host.health', {
112
+ durationMs: now - previousTime, cpuPercent: (cpu.user - previousCpu.user + cpu.system - previousCpu.system) / ((now - previousTime) * 10),
113
+ rssMb: memory.rss / 1048576, heapMb: memory.heapUsed / 1048576,
114
+ eventLoopMeanMs: delay.mean / 1e6, eventLoopMaxMs: delay.max / 1e6, eventLoopP99Ms: delay.percentile(99) / 1e6,
115
+ });
116
+ previousCpu = cpu;
117
+ previousTime = now;
118
+ delay.reset();
119
+ }, 2000);
120
+ timer.unref();
121
+ traceVoice('diagnostics.started', {});
122
+ return { writer, dispose: async () => { clearInterval(timer); delay.disable(); unsubscribe(); await writer.dispose(); } };
123
+ }
124
+ //# sourceMappingURL=voice-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-diagnostics.js","sourceRoot":"","sources":["../../../../src/host/voice-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** 上传只携带字节,不能由浏览器指定 Host 文件路径或已有附件引用。 */
2
+ export interface AssistantAttachmentUpload {
3
+ readonly name: string;
4
+ readonly mediaType: string;
5
+ readonly data: string;
6
+ }
7
+ export interface AssistantAttachmentReference {
8
+ readonly attachmentId: string;
9
+ readonly name?: string;
10
+ readonly bytes: number;
11
+ readonly mediaType?: string;
12
+ readonly width?: number;
13
+ readonly height?: number;
14
+ }
15
+ export interface AssistantAttachment {
16
+ readonly type: 'image' | 'file';
17
+ readonly attachment: AssistantAttachmentReference;
18
+ }
19
+ export declare const ASSISTANT_ATTACHMENT_MAX_FILES = 6;
20
+ export declare const ASSISTANT_ATTACHMENT_MAX_BYTES: number;
21
+ export declare const ASSISTANT_ATTACHMENT_MAX_TOTAL_BYTES: number;
22
+ export declare const ASSISTANT_IMAGE_MEDIA_TYPES: readonly ["image/png", "image/jpeg", "image/webp", "image/gif"];
23
+ /** 在解码和写入前限制 JSON 上传的体积,所有真实图片校验仍交给 DSH。 */
24
+ export declare function readAssistantAttachmentUploads(value: unknown): readonly AssistantAttachmentUpload[];
25
+ /** 持久记录只保留宿主生成的引用,不保存上传编码或可执行路径。 */
26
+ export declare function readAssistantAttachments(value: unknown): readonly AssistantAttachment[];
27
+ //# sourceMappingURL=assistant-attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-attachments.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant-attachments.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,WAAW,yBAAyB;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACvH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAC/E;AACD,MAAM,WAAW,mBAAmB;IAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAA;CAAE;AAC3H,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAC/C,eAAO,MAAM,8BAA8B,QAAmB,CAAA;AAC9D,eAAO,MAAM,oCAAoC,QAAmB,CAAA;AACpE,eAAO,MAAM,2BAA2B,iEAAkE,CAAA;AAE1G,4CAA4C;AAC5C,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE,CAcnG;AAED,oCAAoC;AACpC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,mBAAmB,EAAE,CAavF"}
@@ -0,0 +1,45 @@
1
+ export const ASSISTANT_ATTACHMENT_MAX_FILES = 6;
2
+ export const ASSISTANT_ATTACHMENT_MAX_BYTES = 10 * 1024 * 1024;
3
+ export const ASSISTANT_ATTACHMENT_MAX_TOTAL_BYTES = 20 * 1024 * 1024;
4
+ export const ASSISTANT_IMAGE_MEDIA_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/gif'];
5
+ /** 在解码和写入前限制 JSON 上传的体积,所有真实图片校验仍交给 DSH。 */
6
+ export function readAssistantAttachmentUploads(value) {
7
+ if (value === undefined)
8
+ return [];
9
+ if (!Array.isArray(value) || value.length > ASSISTANT_ATTACHMENT_MAX_FILES)
10
+ throw new Error('助理附件数量无效,最多 6 个');
11
+ let total = 0;
12
+ return value.map((item) => {
13
+ if (item === null || typeof item !== 'object' || typeof item.name !== 'string' || !item.name.trim() || item.name.length > 200
14
+ || /[\\/\x00-\x1f]/u.test(item.name) || typeof item.mediaType !== 'string' || item.mediaType.length > 120
15
+ || typeof item.data !== 'string' || item.data.length > Math.ceil(ASSISTANT_ATTACHMENT_MAX_BYTES / 3) * 4)
16
+ throw new Error('助理附件无效或超过 10 MiB');
17
+ if (item.data.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(item.data))
18
+ throw new Error('助理附件编码无效');
19
+ const bytes = item.data.length / 4 * 3 - (item.data.endsWith('==') ? 2 : item.data.endsWith('=') ? 1 : 0);
20
+ if (bytes > ASSISTANT_ATTACHMENT_MAX_BYTES || (total += bytes) > ASSISTANT_ATTACHMENT_MAX_TOTAL_BYTES)
21
+ throw new Error('助理附件总大小超过 20 MiB');
22
+ if (item.mediaType.startsWith('image/') && !ASSISTANT_IMAGE_MEDIA_TYPES.some((type) => type === item.mediaType))
23
+ throw new Error('图片仅支持 PNG、JPEG、WebP 和 GIF');
24
+ return { name: item.name.trim(), mediaType: item.mediaType, data: item.data };
25
+ });
26
+ }
27
+ /** 持久记录只保留宿主生成的引用,不保存上传编码或可执行路径。 */
28
+ export function readAssistantAttachments(value) {
29
+ if (value === undefined)
30
+ return [];
31
+ if (!Array.isArray(value) || value.length > ASSISTANT_ATTACHMENT_MAX_FILES)
32
+ throw new Error('助理附件引用无效');
33
+ for (const item of value) {
34
+ const ref = item?.attachment;
35
+ if (!['image', 'file'].includes(item?.type) || ref === null || typeof ref !== 'object'
36
+ || typeof ref.attachmentId !== 'string' || !/^sha256:[a-f0-9]{64}$/u.test(ref.attachmentId)
37
+ || !Number.isSafeInteger(ref.bytes) || ref.bytes < 0 || ref.bytes > ASSISTANT_ATTACHMENT_MAX_BYTES
38
+ || ref.name !== undefined && (typeof ref.name !== 'string' || ref.name.length > 200 || /[\\/\x00-\x1f]/u.test(ref.name))
39
+ || item.type === 'image' && (!ASSISTANT_IMAGE_MEDIA_TYPES.some((type) => type === ref.mediaType)
40
+ || !Number.isSafeInteger(ref.width) || ref.width < 1 || !Number.isSafeInteger(ref.height) || ref.height < 1))
41
+ throw new Error('助理附件引用无效');
42
+ }
43
+ return structuredClone(value);
44
+ }
45
+ //# sourceMappingURL=assistant-attachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-attachments.js","sourceRoot":"","sources":["../../../../src/shared/assistant-attachments.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAA;AAC/C,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAC9D,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAU,CAAA;AAE1G,4CAA4C;AAC5C,MAAM,UAAU,8BAA8B,CAAC,KAAc;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,8BAA8B;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC9G,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG;eACxH,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;eACtG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QAC/I,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;QACzG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzG,IAAI,KAAK,GAAG,8BAA8B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,oCAAoC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QAC1I,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC7J,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IAC/E,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,8BAA8B;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IACvG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,EAAE,UAAU,CAAA;QAC5B,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;eACjF,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;eACxF,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,8BAA8B;eAC/F,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;eACrH,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC;mBAC3F,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/I,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAA0B,CAAA;AACxD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AssistantAvatarManifest, AssistantAvatarModel } from './assistant-avatar.js';
2
+ export interface AssistantAvatarAdapterContext {
3
+ readonly manifestUrl: string;
4
+ }
5
+ /** 适配器解释 JSON 数据,不负责下载脚本、会话或渲染实例。 */
6
+ export interface AssistantAvatarAdapter {
7
+ readonly id: string;
8
+ readonly labelKey?: string;
9
+ readonly name?: string;
10
+ matches(manifest: unknown): boolean;
11
+ parse(manifest: unknown, context: AssistantAvatarAdapterContext): AssistantAvatarModel;
12
+ }
13
+ /** 相对路径以清单实际响应 URL 为基准,重定向后不再使用旧目录。 */
14
+ export declare function resolveAssistantAvatarSource(source: unknown, manifestUrl: string): string;
15
+ export declare const BUILTIN_ASSISTANT_AVATAR_ADAPTERS: readonly AssistantAvatarAdapter[];
16
+ /** 导出原生清单时不重复嵌入导入器元数据,素材地址已统一为可访问地址。 */
17
+ export declare function assistantAvatarManifest(model: AssistantAvatarModel): AssistantAvatarManifest;
18
+ //# sourceMappingURL=assistant-avatar-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-adapters.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-adapters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,uBAAuB,EAAE,oBAAoB,EAAoD,MAAM,uBAAuB,CAAA;AAElK,MAAM,WAAW,6BAA6B;IAAG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAC/E,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6BAA6B,GAAG,oBAAoB,CAAA;CACvF;AAED,uCAAuC;AACvC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMzF;AAgGD,eAAO,MAAM,iCAAiC,EAAE,SAAS,sBAAsB,EAAiC,CAAA;AAEhH,wCAAwC;AACxC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,uBAAuB,CAO5F"}
@@ -0,0 +1,119 @@
1
+ import { copyAssistantAvatarModel, isAssistantAvatarSource, validateAssistantAvatarModel } from './assistant-avatar.js';
2
+ /** 相对路径以清单实际响应 URL 为基准,重定向后不再使用旧目录。 */
3
+ export function resolveAssistantAvatarSource(source, manifestUrl) {
4
+ if (typeof source !== 'string' || source.trim().length === 0 || source.trim().startsWith('//') || /[\\\u0000-\u001f]/u.test(source))
5
+ throw new TypeError('形象包资源地址无效');
6
+ if (!isAssistantAvatarSource(manifestUrl))
7
+ throw new TypeError('形象包清单地址无效');
8
+ const resolved = new URL(source, manifestUrl).href;
9
+ if (!isAssistantAvatarSource(resolved))
10
+ throw new TypeError('形象包资源地址无效');
11
+ return resolved;
12
+ }
13
+ function record(value) {
14
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
15
+ throw new TypeError('形象包清单必须是 JSON 对象');
16
+ return value;
17
+ }
18
+ function looksLike(value, key) {
19
+ return typeof value === 'object' && value !== null && key in value;
20
+ }
21
+ function asset(value, url) {
22
+ const input = record(value);
23
+ return { renderer: input.renderer, source: resolveAssistantAvatarSource(input.source, url),
24
+ spriteVersion: (input.spriteVersion ?? 2),
25
+ ...(input.stateSources === undefined ? {} : { stateSources: Object.fromEntries(Object.entries(record(input.stateSources)).map(([state, source]) => [state, resolveAssistantAvatarSource(source, url)])) }),
26
+ ...(input.motionGroups === undefined ? {} : { motionGroups: record(input.motionGroups) }),
27
+ ...(input.live2d === undefined ? {} : { live2d: record(input.live2d) }),
28
+ };
29
+ }
30
+ function build(input, base, context, adapterId, surfaces) {
31
+ const info = { adapterId, manifestUrl: context.manifestUrl,
32
+ ...(input.author === undefined ? {} : { author: input.author }),
33
+ ...(input.license === undefined ? {} : { license: input.license }),
34
+ ...(input.homepage === undefined ? {} : { homepage: resolveAssistantAvatarSource(input.homepage, context.manifestUrl) }), };
35
+ const model = { id: input.id, name: (input.name ?? input.displayName), ...base, package: info,
36
+ ...(surfaces === undefined ? {} : { surfaces }) };
37
+ validateAssistantAvatarModel(model);
38
+ return copyAssistantAvatarModel(model);
39
+ }
40
+ const native = {
41
+ id: 'codingns-pack', labelKey: 'avatar.adapter.native',
42
+ matches: (value) => looksLike(value, 'avatarManifestVersion'),
43
+ parse(value, context) {
44
+ const input = record(value);
45
+ if (input.avatarManifestVersion !== 1)
46
+ throw new TypeError('不支持的 CodingNS 形象包版本');
47
+ const surfaces = input.surfaces === undefined ? undefined : Object.fromEntries(Object.entries(record(input.surfaces)).map(([surface, source]) => [surface, asset(source, context.manifestUrl)]));
48
+ return build(input, asset(input.asset, context.manifestUrl), context, this.id, surfaces);
49
+ },
50
+ };
51
+ const codex = {
52
+ id: 'codex-pet', labelKey: 'avatar.adapter.codex',
53
+ matches: (value) => looksLike(value, 'spritesheetPath'),
54
+ parse(value, context) {
55
+ const input = record(value);
56
+ return build(input, { renderer: 'spritesheet', source: resolveAssistantAvatarSource(input.spritesheetPath, context.manifestUrl),
57
+ spriteVersion: input.spriteVersionNumber }, context, this.id);
58
+ },
59
+ };
60
+ const dsh = {
61
+ id: 'dsh-live2d-pet', labelKey: 'avatar.adapter.dsh',
62
+ matches: (value) => looksLike(value, 'petManifestVersion'),
63
+ parse(value, context) {
64
+ const input = record(value);
65
+ if (input.petManifestVersion !== 2 || input.renderer !== 'live2d')
66
+ throw new TypeError('不支持的 DSH 形象包格式');
67
+ const live2d = record(input.live2d);
68
+ const translate = live2d.translate === undefined ? undefined : record(live2d.translate);
69
+ // DSH 的 failed/asking 与 CodingNS 的 error/waiting 在适配边界转换。
70
+ const motions = live2d.motions === undefined ? {} : record(live2d.motions);
71
+ const states = {
72
+ idle: ['idle'], thinking: ['thinking', 'tool'], speaking: ['speaking'],
73
+ listening: ['listening', 'waiting'], waiting: ['waiting', 'asking', 'queued'], error: ['error', 'failed'],
74
+ };
75
+ const motionGroups = Object.fromEntries(Object.entries(states).flatMap(([state, aliases]) => {
76
+ const group = aliases.map((key) => motions[key]).find((item) => item !== undefined);
77
+ return group === undefined ? [] : [[state, group]];
78
+ }));
79
+ return build(input, { renderer: 'live2d', source: resolveAssistantAvatarSource(live2d.model, context.manifestUrl), spriteVersion: 2,
80
+ ...(Object.keys(motionGroups).length === 0 ? {} : { motionGroups }),
81
+ ...(live2d.scale === undefined && translate === undefined ? {} : { live2d: {
82
+ ...(live2d.scale === undefined ? {} : { scale: live2d.scale }),
83
+ ...(translate === undefined ? {} : { position: [translate.x, translate.y] }),
84
+ } }),
85
+ }, context, this.id);
86
+ },
87
+ };
88
+ const cubism = {
89
+ id: 'cubism-model', labelKey: 'avatar.adapter.cubism',
90
+ matches: (value) => looksLike(value, 'FileReferences') || looksLike(value, 'model'),
91
+ parse(value, context) {
92
+ const input = record(value);
93
+ const refs = input.FileReferences === undefined ? input : record(input.FileReferences);
94
+ const textures = refs.Textures ?? refs.textures;
95
+ if ((input.FileReferences !== undefined && input.Version !== 3) || !Array.isArray(textures) || textures.length === 0)
96
+ throw new TypeError('Live2D 模型清单不完整');
97
+ resolveAssistantAvatarSource(refs.Moc ?? refs.model, context.manifestUrl);
98
+ for (const texture of textures)
99
+ resolveAssistantAvatarSource(texture, context.manifestUrl);
100
+ // 模型没有角色 ID,使用来源的稳定指纹,重复导入不会生成无限副本。
101
+ let hash = 2166136261;
102
+ for (const character of context.manifestUrl)
103
+ hash = Math.imul(hash ^ character.charCodeAt(0), 16777619);
104
+ const filename = new URL(context.manifestUrl).pathname.split('/').pop() ?? 'Live2D';
105
+ return build({ id: `live2d-${(hash >>> 0).toString(36)}`, name: decodeURIComponent(filename).replace(/\.model3?\.json$/iu, '').slice(0, 80) || 'Live2D' }, { renderer: 'live2d', source: context.manifestUrl, spriteVersion: 2 }, context, this.id);
106
+ },
107
+ };
108
+ export const BUILTIN_ASSISTANT_AVATAR_ADAPTERS = [native, codex, dsh, cubism];
109
+ /** 导出原生清单时不重复嵌入导入器元数据,素材地址已统一为可访问地址。 */
110
+ export function assistantAvatarManifest(model) {
111
+ validateAssistantAvatarModel(model);
112
+ if (model.renderer === 'builtin')
113
+ throw new TypeError('内置形象不需要导出素材包');
114
+ const { id, name, package: info, surfaces, ...base } = copyAssistantAvatarModel(model);
115
+ return { avatarManifestVersion: 1, id, name, asset: base, ...(surfaces === undefined ? {} : { surfaces }),
116
+ ...(info?.author === undefined ? {} : { author: info.author }), ...(info?.license === undefined ? {} : { license: info.license }),
117
+ ...(info?.homepage === undefined ? {} : { homepage: info.homepage }) };
118
+ }
119
+ //# sourceMappingURL=assistant-avatar-adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-adapters.js","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /** 目录仅提供安装清单链接;浏览目录不注册角色,也不下载第三方素材。 */
2
+ export declare const ASSISTANT_AVATAR_CATALOG_URL = "https://github.com/jingyi0605/Codingns4DSH/blob/main/assets/assistant-avatar-catalog.md";
3
+ /** 使用说明单独版本化;升级说明后必须重新确认,不能继承旧版同意。 */
4
+ export declare const ASSISTANT_AVATAR_CONSENT_VERSION = "2026-10-07.1";
5
+ export declare const ASSISTANT_AVATAR_CATALOG_PREVIEW_PATH = "/api/codingns/assistant-avatar-catalog-preview";
6
+ /** 临时素材只通过随机预览租约读取,不与正式安装目录混用。 */
7
+ export declare const ASSISTANT_AVATAR_TEMPORARY_ASSET_PATH = "/api/codingns/assistant-avatar-temporary-assets";
8
+ export interface AssistantAvatarTemporaryPreview {
9
+ readonly lease: string;
10
+ readonly model: import('./assistant-avatar.js').AssistantAvatarModel;
11
+ }
12
+ export interface AssistantAvatarConsent {
13
+ readonly version: string;
14
+ readonly acceptedAt: number;
15
+ }
16
+ /** 目录只传元数据;完整素材始终由用户另外确认安装。 */
17
+ export interface AssistantAvatarCatalogEntry {
18
+ readonly id: string;
19
+ readonly number: number;
20
+ readonly name: string;
21
+ readonly author: string;
22
+ readonly description: string;
23
+ readonly remarks: string;
24
+ readonly repositoryUrl: string;
25
+ readonly licenseUrl: string;
26
+ readonly license: string;
27
+ readonly homepage: string;
28
+ readonly format: string;
29
+ readonly revision: string;
30
+ readonly bytes: number;
31
+ readonly files: number;
32
+ readonly previewAvailable: boolean;
33
+ }
34
+ export declare function validAssistantAvatarConsent(value: unknown): value is AssistantAvatarConsent;
35
+ export declare function hasAssistantAvatarConsent(value: unknown): boolean;
36
+ export declare function assistantAvatarCatalogPreviewUrl(entry: Pick<AssistantAvatarCatalogEntry, 'id' | 'revision'>): string;
37
+ //# sourceMappingURL=assistant-avatar-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-catalog.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-catalog.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,eAAO,MAAM,4BAA4B,4FAA4F,CAAA;AAErI,sCAAsC;AACtC,eAAO,MAAM,gCAAgC,iBAAiB,CAAA;AAC9D,eAAO,MAAM,qCAAqC,mDAAmD,CAAA;AACrG,kCAAkC;AAClC,eAAO,MAAM,qCAAqC,oDAAoD,CAAA;AACtG,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,uBAAuB,EAAE,oBAAoB,CAAA;CACrE;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AACD,+BAA+B;AAC/B,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CACnC;AACD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAK3F;AACD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjE;AACD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,MAAM,CAEpH"}
@@ -0,0 +1,21 @@
1
+ /** 目录仅提供安装清单链接;浏览目录不注册角色,也不下载第三方素材。 */
2
+ export const ASSISTANT_AVATAR_CATALOG_URL = 'https://github.com/jingyi0605/Codingns4DSH/blob/main/assets/assistant-avatar-catalog.md';
3
+ /** 使用说明单独版本化;升级说明后必须重新确认,不能继承旧版同意。 */
4
+ export const ASSISTANT_AVATAR_CONSENT_VERSION = '2026-10-07.1';
5
+ export const ASSISTANT_AVATAR_CATALOG_PREVIEW_PATH = '/api/codingns/assistant-avatar-catalog-preview';
6
+ /** 临时素材只通过随机预览租约读取,不与正式安装目录混用。 */
7
+ export const ASSISTANT_AVATAR_TEMPORARY_ASSET_PATH = '/api/codingns/assistant-avatar-temporary-assets';
8
+ export function validAssistantAvatarConsent(value) {
9
+ if (value === null || typeof value !== 'object')
10
+ return false;
11
+ const consent = value;
12
+ return typeof consent.version === 'string' && consent.version.length > 0 && consent.version.length <= 80
13
+ && Number.isSafeInteger(consent.acceptedAt) && consent.acceptedAt > 0;
14
+ }
15
+ export function hasAssistantAvatarConsent(value) {
16
+ return validAssistantAvatarConsent(value) && value.version === ASSISTANT_AVATAR_CONSENT_VERSION;
17
+ }
18
+ export function assistantAvatarCatalogPreviewUrl(entry) {
19
+ return `${ASSISTANT_AVATAR_CATALOG_PREVIEW_PATH}?${new URLSearchParams({ id: entry.id, revision: entry.revision })}`;
20
+ }
21
+ //# sourceMappingURL=assistant-avatar-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-catalog.js","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-catalog.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAG,yFAAyF,CAAA;AAErI,sCAAsC;AACtC,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAA;AAC9D,MAAM,CAAC,MAAM,qCAAqC,GAAG,gDAAgD,CAAA;AACrG,kCAAkC;AAClC,MAAM,CAAC,MAAM,qCAAqC,GAAG,iDAAiD,CAAA;AA2BtG,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,OAAO,GAAG,KAAwC,CAAA;IACxD,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;WACnG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAW,GAAG,CAAC,CAAA;AAC1E,CAAC;AACD,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,OAAO,2BAA2B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,gCAAgC,CAAA;AACjG,CAAC;AACD,MAAM,UAAU,gCAAgC,CAAC,KAA2D;IAC1G,OAAO,GAAG,qCAAqC,IAAI,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAA;AACtH,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Live2D 引擎的固定版本与许可契约。
3
+ *
4
+ * 引擎不随插件打包:Host 在用户确认引擎许可后,从固定 registry 地址下载
5
+ * 精确版本并校验摘要,安装到 CodingNS 自有目录;源码开发仍可直接解析
6
+ * 仓库中的开发依赖。升级版本必须同时更新 tarball 地址、摘要与许可说明。
7
+ */
8
+ export declare const ASSISTANT_AVATAR_ENGINE_VERSION = "2.1.1";
9
+ export declare const ASSISTANT_AVATAR_ENGINE_TARBALL = "https://registry.npmjs.org/l2d/-/l2d-2.1.1.tgz";
10
+ export declare const ASSISTANT_AVATAR_ENGINE_SHA512 = "Q9Rp3uDPiZyS4SJZ/RJ+tuR1YQ75gKhGeS2gZNCO6KvydDB6okPQJk+zsKt8KyJ6Y5g0okVMtj3Sisjxr35ptA==";
11
+ /** npm tarball 顶层固定为 package/,入口是真正的 ESM 文件而非全局 IIFE。 */
12
+ export declare const ASSISTANT_AVATAR_ENGINE_ENTRY = "package/dist/index.js";
13
+ /** 真实入口约 820 KB;明显偏小说明下载或解压不完整。 */
14
+ export declare const ASSISTANT_AVATAR_ENGINE_MIN_ENTRY_BYTES: number;
15
+ export declare const ASSISTANT_AVATAR_ENGINE_MAX_ARCHIVE_BYTES: number;
16
+ /** 引擎许可单独版本化:Cubism SDK 条款与第三方素材许可分别确认。 */
17
+ export declare const ASSISTANT_AVATAR_ENGINE_CONSENT_VERSION = "2026-10-08.1";
18
+ export interface AssistantAvatarEngineConsent {
19
+ readonly version: string;
20
+ readonly acceptedAt: number;
21
+ }
22
+ /** managed 为 CodingNS 自有目录安装,dependency 为源码开发或用户手工安装。 */
23
+ export type AssistantAvatarEngineSource = 'managed' | 'dependency' | 'missing';
24
+ export interface AssistantAvatarEngineStatus {
25
+ readonly installed: boolean;
26
+ readonly version: string;
27
+ readonly source: AssistantAvatarEngineSource;
28
+ }
29
+ export declare function validAssistantAvatarEngineConsent(value: unknown): value is AssistantAvatarEngineConsent;
30
+ export declare function hasAssistantAvatarEngineConsent(value: unknown): boolean;
31
+ //# sourceMappingURL=assistant-avatar-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-engine.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,UAAU,CAAA;AACtD,eAAO,MAAM,+BAA+B,mDAAmD,CAAA;AAC/F,eAAO,MAAM,8BAA8B,6FAA6F,CAAA;AACxI,yDAAyD;AACzD,eAAO,MAAM,6BAA6B,0BAA0B,CAAA;AACpE,mCAAmC;AACnC,eAAO,MAAM,uCAAuC,QAAa,CAAA;AACjE,eAAO,MAAM,yCAAyC,QAAkB,CAAA;AACxE,2CAA2C;AAC3C,eAAO,MAAM,uCAAuC,iBAAiB,CAAA;AACrE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AACD,yDAAyD;AACzD,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAA;AAC9E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAA;CAC7C;AACD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,4BAA4B,CAKvG;AACD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvE"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Live2D 引擎的固定版本与许可契约。
3
+ *
4
+ * 引擎不随插件打包:Host 在用户确认引擎许可后,从固定 registry 地址下载
5
+ * 精确版本并校验摘要,安装到 CodingNS 自有目录;源码开发仍可直接解析
6
+ * 仓库中的开发依赖。升级版本必须同时更新 tarball 地址、摘要与许可说明。
7
+ */
8
+ export const ASSISTANT_AVATAR_ENGINE_VERSION = '2.1.1';
9
+ export const ASSISTANT_AVATAR_ENGINE_TARBALL = 'https://registry.npmjs.org/l2d/-/l2d-2.1.1.tgz';
10
+ export const ASSISTANT_AVATAR_ENGINE_SHA512 = 'Q9Rp3uDPiZyS4SJZ/RJ+tuR1YQ75gKhGeS2gZNCO6KvydDB6okPQJk+zsKt8KyJ6Y5g0okVMtj3Sisjxr35ptA==';
11
+ /** npm tarball 顶层固定为 package/,入口是真正的 ESM 文件而非全局 IIFE。 */
12
+ export const ASSISTANT_AVATAR_ENGINE_ENTRY = 'package/dist/index.js';
13
+ /** 真实入口约 820 KB;明显偏小说明下载或解压不完整。 */
14
+ export const ASSISTANT_AVATAR_ENGINE_MIN_ENTRY_BYTES = 512 * 1024;
15
+ export const ASSISTANT_AVATAR_ENGINE_MAX_ARCHIVE_BYTES = 8 * 1024 * 1024;
16
+ /** 引擎许可单独版本化:Cubism SDK 条款与第三方素材许可分别确认。 */
17
+ export const ASSISTANT_AVATAR_ENGINE_CONSENT_VERSION = '2026-10-08.1';
18
+ export function validAssistantAvatarEngineConsent(value) {
19
+ if (value === null || typeof value !== 'object')
20
+ return false;
21
+ const consent = value;
22
+ return typeof consent.version === 'string' && consent.version.length > 0 && consent.version.length <= 80
23
+ && Number.isSafeInteger(consent.acceptedAt) && consent.acceptedAt > 0;
24
+ }
25
+ export function hasAssistantAvatarEngineConsent(value) {
26
+ return validAssistantAvatarEngineConsent(value) && value.version === ASSISTANT_AVATAR_ENGINE_CONSENT_VERSION;
27
+ }
28
+ //# sourceMappingURL=assistant-avatar-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-engine.js","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAA;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,gDAAgD,CAAA;AAC/F,MAAM,CAAC,MAAM,8BAA8B,GAAG,0FAA0F,CAAA;AACxI,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,uBAAuB,CAAA;AACpE,mCAAmC;AACnC,MAAM,CAAC,MAAM,uCAAuC,GAAG,GAAG,GAAG,IAAI,CAAA;AACjE,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AACxE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uCAAuC,GAAG,cAAc,CAAA;AAYrE,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,OAAO,GAAG,KAA8C,CAAA;IAC9D,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;WACnG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAW,GAAG,CAAC,CAAA;AAC1E,CAAC;AACD,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,OAAO,iCAAiC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,uCAAuC,CAAA;AAC9G,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { AssistantAvatarModel } from './assistant-avatar.js';
2
+ /** 固定入口通过内容版本和文件键读取已安装素材,不接受远程代理目标。 */
3
+ export declare const ASSISTANT_AVATAR_ASSET_PATH = "/api/codingns/assistant-avatar-assets";
4
+ export declare const ASSISTANT_AVATAR_STATUS_PATH = "/api/codingns/assistant-avatar-cache-status";
5
+ export interface AssistantAvatarCandidate {
6
+ readonly url: string;
7
+ readonly name: string;
8
+ }
9
+ export interface AssistantAvatarInstallation {
10
+ readonly id: string;
11
+ readonly model: AssistantAvatarModel;
12
+ readonly created: boolean;
13
+ readonly files: number;
14
+ readonly bytes: number;
15
+ }
16
+ export declare function assistantAvatarInstalledSource(id: string, file: string): string;
17
+ //# sourceMappingURL=assistant-avatar-installation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-installation.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-installation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAEjE,uCAAuC;AACvC,eAAO,MAAM,2BAA2B,0CAA0C,CAAA;AAClF,eAAO,MAAM,4BAA4B,gDAAgD,CAAA;AACzF,MAAM,WAAW,wBAAwB;IAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACzF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AACD,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/E"}
@@ -0,0 +1,7 @@
1
+ /** 固定入口通过内容版本和文件键读取已安装素材,不接受远程代理目标。 */
2
+ export const ASSISTANT_AVATAR_ASSET_PATH = '/api/codingns/assistant-avatar-assets';
3
+ export const ASSISTANT_AVATAR_STATUS_PATH = '/api/codingns/assistant-avatar-cache-status';
4
+ export function assistantAvatarInstalledSource(id, file) {
5
+ return `${ASSISTANT_AVATAR_ASSET_PATH}?pack=${id}&file=${encodeURIComponent(file)}`;
6
+ }
7
+ //# sourceMappingURL=assistant-avatar-installation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-installation.js","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-installation.ts"],"names":[],"mappings":"AAEA,uCAAuC;AACvC,MAAM,CAAC,MAAM,2BAA2B,GAAG,uCAAuC,CAAA;AAClF,MAAM,CAAC,MAAM,4BAA4B,GAAG,6CAA6C,CAAA;AASzF,MAAM,UAAU,8BAA8B,CAAC,EAAU,EAAE,IAAY;IACrE,OAAO,GAAG,2BAA2B,SAAS,EAAE,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;AACrF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { AssistantAvatarResourcePack } from './assistant-avatar-resources.js';
2
+ export { assistantAvatarCacheStatusPath } from './assistant-avatar-resources.js';
3
+ /** 地址包含上游提交与精简策略版本;修改资源或策略时必须更新版本,避免浏览器旧缓存。 */
4
+ export declare const WHALE_LIVE2D_RESOURCE_PACK: AssistantAvatarResourcePack;
5
+ export declare const ASSISTANT_AVATAR_RESOURCE_PACKS: readonly AssistantAvatarResourcePack[];
6
+ //# sourceMappingURL=assistant-avatar-legacy-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-legacy-resources.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-legacy-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAEhF,+CAA+C;AAC/C,eAAO,MAAM,0BAA0B,EAAE,2BAevC,CAAA;AAEF,eAAO,MAAM,+BAA+B,EAAE,SAAS,2BAA2B,EAAgD,CAAA"}
@@ -0,0 +1,20 @@
1
+ export { assistantAvatarCacheStatusPath } from './assistant-avatar-resources.js';
2
+ /** 地址包含上游提交与精简策略版本;修改资源或策略时必须更新版本,避免浏览器旧缓存。 */
3
+ export const WHALE_LIVE2D_RESOURCE_PACK = Object.freeze({
4
+ basePath: '/api/codingns/assistant-avatar-assets/whale-185c02bf-v1/',
5
+ upstreamRoot: 'https://raw.githubusercontent.com/A8Chann/dsh-pet-live2d/185c02bfbb3b886e1a236b5c2ec035cc085b9ca2/dsh-live2d-pet/pets/ds-whale-girl/',
6
+ manifest: 'c_0120.model3.json',
7
+ motionGroups: Object.freeze({ idle: 'Idle', thinking: 'Idle', listening: 'Idle', waiting: 'Idle', error: 'SprayWater' }),
8
+ files: Object.freeze([
9
+ { path: 'c_0120.model3.json', contentType: 'application/json', maxBytes: 262144 },
10
+ { path: 'model/c_0120.moc3', contentType: 'application/octet-stream', maxBytes: 4194304 },
11
+ { path: 'model/c_0120.physics3.json', contentType: 'application/json', maxBytes: 1048576 },
12
+ { path: 'model/c_0120.cdi3.json', contentType: 'application/json', maxBytes: 1048576, preload: false },
13
+ { path: 'textures/texture_00.png', contentType: 'image/png', maxBytes: 4194304 },
14
+ { path: 'textures/texture_01.png', contentType: 'image/png', maxBytes: 1048576 },
15
+ { path: 'motions/idle.motion3.json', contentType: 'application/json', maxBytes: 1048576 },
16
+ { path: 'motions/spray-water.motion3.json', contentType: 'application/json', maxBytes: 1048576 },
17
+ ].map((file) => Object.freeze(file))),
18
+ });
19
+ export const ASSISTANT_AVATAR_RESOURCE_PACKS = Object.freeze([WHALE_LIVE2D_RESOURCE_PACK]);
20
+ //# sourceMappingURL=assistant-avatar-legacy-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-avatar-legacy-resources.js","sourceRoot":"","sources":["../../../../src/shared/assistant-avatar-legacy-resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAEhF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAgC,MAAM,CAAC,MAAM,CAAC;IACnF,QAAQ,EAAE,0DAA0D;IACpE,YAAY,EAAE,sIAAsI;IACpJ,QAAQ,EAAE,oBAAoB;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACxH,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE;QACjF,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,OAAO,EAAE;QACzF,EAAE,IAAI,EAAE,4BAA4B,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE;QAC1F,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAc,EAAE;QAC/G,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;QAChF,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;QAChF,EAAE,IAAI,EAAE,2BAA2B,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE;QACzF,EAAE,IAAI,EAAE,kCAAkC,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE;KACjG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CACtC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAA2C,MAAM,CAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAA"}