@jingyi0605/codingns4dsh 0.2.0-rc3 → 0.2.1-beta.2

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 (420) hide show
  1. package/README.en.md +27 -16
  2. package/README.md +44 -29
  3. package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +1 -1
  4. package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts.map +1 -1
  5. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js +2 -2
  6. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js.map +1 -1
  7. package/data/build/dist/bootstrap/index.d.ts +1 -1
  8. package/data/build/dist/bootstrap/index.d.ts.map +1 -1
  9. package/data/build/dist/client/bundle.js +3361 -227
  10. package/data/build/dist/client/bundle.js.map +1 -1
  11. package/data/build/dist/client/cli-catalog.d.ts +1 -1
  12. package/data/build/dist/client/cli-catalog.d.ts.map +1 -1
  13. package/data/build/dist/client/cli-catalog.js +3 -3
  14. package/data/build/dist/client/cli-catalog.js.map +1 -1
  15. package/data/build/dist/client/cli-slots.d.ts +4 -0
  16. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  17. package/data/build/dist/client/cli-slots.js +70 -9
  18. package/data/build/dist/client/cli-slots.js.map +1 -1
  19. package/data/build/dist/client/context-breakdown-dom.d.ts +1 -1
  20. package/data/build/dist/client/context-breakdown-dom.d.ts.map +1 -1
  21. package/data/build/dist/client/context-breakdown-dom.js +1 -1
  22. package/data/build/dist/client/context-breakdown-dom.js.map +1 -1
  23. package/data/build/dist/client/features/assistant-panel.d.ts +5 -0
  24. package/data/build/dist/client/features/assistant-panel.d.ts.map +1 -0
  25. package/data/build/dist/client/features/assistant-panel.js +127 -0
  26. package/data/build/dist/client/features/assistant-panel.js.map +1 -0
  27. package/data/build/dist/client/features/global-voice-assistant.d.ts +10 -0
  28. package/data/build/dist/client/features/global-voice-assistant.d.ts.map +1 -0
  29. package/data/build/dist/client/features/global-voice-assistant.js +330 -0
  30. package/data/build/dist/client/features/global-voice-assistant.js.map +1 -0
  31. package/data/build/dist/client/features/index.d.ts +2 -0
  32. package/data/build/dist/client/features/index.d.ts.map +1 -1
  33. package/data/build/dist/client/features/index.js +4 -0
  34. package/data/build/dist/client/features/index.js.map +1 -1
  35. package/data/build/dist/client/features/lan-access.d.ts.map +1 -1
  36. package/data/build/dist/client/features/lan-access.js +3 -1
  37. package/data/build/dist/client/features/lan-access.js.map +1 -1
  38. package/data/build/dist/client/features/types.d.ts +4 -1
  39. package/data/build/dist/client/features/types.d.ts.map +1 -1
  40. package/data/build/dist/client/features/voice-conversation-dialog.d.ts +20 -0
  41. package/data/build/dist/client/features/voice-conversation-dialog.d.ts.map +1 -0
  42. package/data/build/dist/client/features/voice-conversation-dialog.js +59 -0
  43. package/data/build/dist/client/features/voice-conversation-dialog.js.map +1 -0
  44. package/data/build/dist/client/features/voice-initialization-dialog.d.ts +10 -0
  45. package/data/build/dist/client/features/voice-initialization-dialog.d.ts.map +1 -0
  46. package/data/build/dist/client/features/voice-initialization-dialog.js +90 -0
  47. package/data/build/dist/client/features/voice-initialization-dialog.js.map +1 -0
  48. package/data/build/dist/client/features/workspace-session-enhancement-panel.d.ts.map +1 -1
  49. package/data/build/dist/client/features/workspace-session-enhancement-panel.js +57 -2
  50. package/data/build/dist/client/features/workspace-session-enhancement-panel.js.map +1 -1
  51. package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
  52. package/data/build/dist/client/features/workspace-session-enhancement.js +27 -0
  53. package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
  54. package/data/build/dist/client/global-voice-runtime-registry.d.ts +27 -0
  55. package/data/build/dist/client/global-voice-runtime-registry.d.ts.map +1 -0
  56. package/data/build/dist/client/global-voice-runtime-registry.js +12 -0
  57. package/data/build/dist/client/global-voice-runtime-registry.js.map +1 -0
  58. package/data/build/dist/client/index.d.ts +1 -1
  59. package/data/build/dist/client/index.d.ts.map +1 -1
  60. package/data/build/dist/client/locale.d.ts.map +1 -1
  61. package/data/build/dist/client/locale.js +185 -1
  62. package/data/build/dist/client/locale.js.map +1 -1
  63. package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -1
  64. package/data/build/dist/client/locales/fileWorkspace.js +4 -0
  65. package/data/build/dist/client/locales/fileWorkspace.js.map +1 -1
  66. package/data/build/dist/client/locales/terminalAuth.d.ts.map +1 -1
  67. package/data/build/dist/client/locales/terminalAuth.js +2 -0
  68. package/data/build/dist/client/locales/terminalAuth.js.map +1 -1
  69. package/data/build/dist/client/locales/usage.d.ts.map +1 -1
  70. package/data/build/dist/client/locales/usage.js +4 -0
  71. package/data/build/dist/client/locales/usage.js.map +1 -1
  72. package/data/build/dist/client/mobile-session-interaction.d.ts +9 -0
  73. package/data/build/dist/client/mobile-session-interaction.d.ts.map +1 -1
  74. package/data/build/dist/client/mobile-session-interaction.js +63 -0
  75. package/data/build/dist/client/mobile-session-interaction.js.map +1 -1
  76. package/data/build/dist/client/model-catalog-cache.d.ts +23 -0
  77. package/data/build/dist/client/model-catalog-cache.d.ts.map +1 -1
  78. package/data/build/dist/client/model-catalog-cache.js +81 -9
  79. package/data/build/dist/client/model-catalog-cache.js.map +1 -1
  80. package/data/build/dist/client/service-tier.d.ts +11 -0
  81. package/data/build/dist/client/service-tier.d.ts.map +1 -1
  82. package/data/build/dist/client/service-tier.js +15 -0
  83. package/data/build/dist/client/service-tier.js.map +1 -1
  84. package/data/build/dist/client/session-changed-files-view.d.ts.map +1 -1
  85. package/data/build/dist/client/session-changed-files-view.js +162 -58
  86. package/data/build/dist/client/session-changed-files-view.js.map +1 -1
  87. package/data/build/dist/client/sherpa-voice-adapter.d.ts +46 -0
  88. package/data/build/dist/client/sherpa-voice-adapter.d.ts.map +1 -0
  89. package/data/build/dist/client/sherpa-voice-adapter.js +252 -0
  90. package/data/build/dist/client/sherpa-voice-adapter.js.map +1 -0
  91. package/data/build/dist/client/skill-command.d.ts +10 -0
  92. package/data/build/dist/client/skill-command.d.ts.map +1 -0
  93. package/data/build/dist/client/skill-command.js +258 -0
  94. package/data/build/dist/client/skill-command.js.map +1 -0
  95. package/data/build/dist/client/skill-reference-dom.d.ts +38 -0
  96. package/data/build/dist/client/skill-reference-dom.d.ts.map +1 -0
  97. package/data/build/dist/client/skill-reference-dom.js +187 -0
  98. package/data/build/dist/client/skill-reference-dom.js.map +1 -0
  99. package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
  100. package/data/build/dist/client/subscription-slot.js +51 -3
  101. package/data/build/dist/client/subscription-slot.js.map +1 -1
  102. package/data/build/dist/client/terminal/model.d.ts +40 -2
  103. package/data/build/dist/client/terminal/model.d.ts.map +1 -1
  104. package/data/build/dist/client/terminal/model.js +151 -24
  105. package/data/build/dist/client/terminal/model.js.map +1 -1
  106. package/data/build/dist/client/terminal/styles.d.ts +8 -0
  107. package/data/build/dist/client/terminal/styles.d.ts.map +1 -1
  108. package/data/build/dist/client/terminal/styles.js +23 -2
  109. package/data/build/dist/client/terminal/styles.js.map +1 -1
  110. package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
  111. package/data/build/dist/client/terminal/ui.js +161 -26
  112. package/data/build/dist/client/terminal/ui.js.map +1 -1
  113. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  114. package/data/build/dist/client/terminal/xterm-view.js +218 -42
  115. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  116. package/data/build/dist/client/voice-capture.d.ts +32 -0
  117. package/data/build/dist/client/voice-capture.d.ts.map +1 -0
  118. package/data/build/dist/client/voice-capture.js +158 -0
  119. package/data/build/dist/client/voice-capture.js.map +1 -0
  120. package/data/build/dist/client/voice-device-manager.d.ts +24 -0
  121. package/data/build/dist/client/voice-device-manager.d.ts.map +1 -0
  122. package/data/build/dist/client/voice-device-manager.js +197 -0
  123. package/data/build/dist/client/voice-device-manager.js.map +1 -0
  124. package/data/build/dist/client/voice-output.d.ts +14 -0
  125. package/data/build/dist/client/voice-output.d.ts.map +1 -0
  126. package/data/build/dist/client/voice-output.js +32 -0
  127. package/data/build/dist/client/voice-output.js.map +1 -0
  128. package/data/build/dist/client/voice-security.d.ts +8 -0
  129. package/data/build/dist/client/voice-security.d.ts.map +1 -0
  130. package/data/build/dist/client/voice-security.js +26 -0
  131. package/data/build/dist/client/voice-security.js.map +1 -0
  132. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +12 -1
  133. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
  134. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +32 -0
  135. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
  136. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +23 -3
  137. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -1
  138. package/data/build/dist/host/cli-adapters/acp-cli-driver.js +137 -14
  139. package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
  140. package/data/build/dist/host/cli-adapters/acp-elicitation.d.ts +31 -0
  141. package/data/build/dist/host/cli-adapters/acp-elicitation.d.ts.map +1 -0
  142. package/data/build/dist/host/cli-adapters/acp-elicitation.js +144 -0
  143. package/data/build/dist/host/cli-adapters/acp-elicitation.js.map +1 -0
  144. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts +41 -3
  145. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts.map +1 -1
  146. package/data/build/dist/host/cli-adapters/antigravity-driver.js +213 -12
  147. package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
  148. package/data/build/dist/host/cli-adapters/antigravity-subscription.d.ts +121 -0
  149. package/data/build/dist/host/cli-adapters/antigravity-subscription.d.ts.map +1 -0
  150. package/data/build/dist/host/cli-adapters/antigravity-subscription.js +504 -0
  151. package/data/build/dist/host/cli-adapters/antigravity-subscription.js.map +1 -0
  152. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +31 -1
  153. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  154. package/data/build/dist/host/cli-adapters/claude-driver.js +307 -9
  155. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  156. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts +7 -1
  157. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -1
  158. package/data/build/dist/host/cli-adapters/codebuddy-driver.js +147 -6
  159. package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
  160. package/data/build/dist/host/cli-adapters/codex-driver.d.ts +28 -2
  161. package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
  162. package/data/build/dist/host/cli-adapters/codex-driver.js +234 -5
  163. package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
  164. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  165. package/data/build/dist/host/cli-adapters/command-code-driver.js +20 -8
  166. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  167. package/data/build/dist/host/cli-adapters/command-code-subscription.js +7 -4
  168. package/data/build/dist/host/cli-adapters/command-code-subscription.js.map +1 -1
  169. package/data/build/dist/host/cli-adapters/cursor-driver.d.ts +10 -1
  170. package/data/build/dist/host/cli-adapters/cursor-driver.d.ts.map +1 -1
  171. package/data/build/dist/host/cli-adapters/cursor-driver.js +74 -4
  172. package/data/build/dist/host/cli-adapters/cursor-driver.js.map +1 -1
  173. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js +1 -1
  174. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js.map +1 -1
  175. package/data/build/dist/host/cli-adapters/driver.d.ts +21 -1
  176. package/data/build/dist/host/cli-adapters/driver.d.ts.map +1 -1
  177. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  178. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +15 -3
  179. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  180. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  181. package/data/build/dist/host/cli-adapters/feature.js +22 -3
  182. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  183. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts +2 -1
  184. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts.map +1 -1
  185. package/data/build/dist/host/cli-adapters/gemini-driver.js +70 -11
  186. package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
  187. package/data/build/dist/host/cli-adapters/grok-driver.d.ts +3 -2
  188. package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
  189. package/data/build/dist/host/cli-adapters/grok-driver.js +69 -14
  190. package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
  191. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  192. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  193. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
  194. package/data/build/dist/host/cli-adapters/kimi-driver.js +6 -6
  195. package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
  196. package/data/build/dist/host/cli-adapters/kiro-driver.js +1 -1
  197. package/data/build/dist/host/cli-adapters/kiro-driver.js.map +1 -1
  198. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts +6 -2
  199. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts.map +1 -1
  200. package/data/build/dist/host/cli-adapters/mcode-driver.js +95 -24
  201. package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
  202. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +49 -0
  203. package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
  204. package/data/build/dist/host/cli-adapters/model-catalog.js +126 -0
  205. package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
  206. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +55 -1
  207. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -1
  208. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +148 -6
  209. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -1
  210. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +7 -0
  211. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -1
  212. package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
  213. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +11 -0
  214. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
  215. package/data/build/dist/host/cli-adapters/opencode-driver.js +92 -8
  216. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  217. package/data/build/dist/host/cli-adapters/pi-driver.d.ts.map +1 -1
  218. package/data/build/dist/host/cli-adapters/pi-driver.js +4 -0
  219. package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
  220. package/data/build/dist/host/cli-adapters/process-utils.d.ts +10 -3
  221. package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
  222. package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
  223. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +4 -1
  224. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
  225. package/data/build/dist/host/cli-adapters/provider-subscription.js +8 -1
  226. package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
  227. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts +19 -4
  228. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts.map +1 -1
  229. package/data/build/dist/host/cli-adapters/qoder-driver.js +202 -11
  230. package/data/build/dist/host/cli-adapters/qoder-driver.js.map +1 -1
  231. package/data/build/dist/host/cli-adapters/qoder-subscription.js +3 -1
  232. package/data/build/dist/host/cli-adapters/qoder-subscription.js.map +1 -1
  233. package/data/build/dist/host/cli-adapters/reasoning-content.d.ts +11 -0
  234. package/data/build/dist/host/cli-adapters/reasoning-content.d.ts.map +1 -0
  235. package/data/build/dist/host/cli-adapters/reasoning-content.js +79 -0
  236. package/data/build/dist/host/cli-adapters/reasoning-content.js.map +1 -0
  237. package/data/build/dist/host/cli-adapters/registry.d.ts +24 -1
  238. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  239. package/data/build/dist/host/cli-adapters/registry.js +109 -4
  240. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  241. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts +3 -2
  242. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts.map +1 -1
  243. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +8 -2
  244. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js.map +1 -1
  245. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +3 -2
  246. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  247. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +16 -2
  248. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  249. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts.map +1 -1
  250. package/data/build/dist/host/cli-adapters/subagent-tool.js +40 -10
  251. package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -1
  252. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts +4 -1
  253. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts.map +1 -1
  254. package/data/build/dist/host/cli-bridge/bridge-holder.js.map +1 -1
  255. package/data/build/dist/host/cli-bridge/bridge-server.d.ts +11 -3
  256. package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -1
  257. package/data/build/dist/host/cli-bridge/bridge-server.js +8 -4
  258. package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -1
  259. package/data/build/dist/host/cli-bridge/command-code-mod.js +18 -2
  260. package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -1
  261. package/data/build/dist/host/cli-bridge/dispatch.d.ts.map +1 -1
  262. package/data/build/dist/host/cli-bridge/dispatch.js +30 -5
  263. package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -1
  264. package/data/build/dist/host/cli-bridge/injections.d.ts +10 -1
  265. package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -1
  266. package/data/build/dist/host/cli-bridge/injections.js +30 -10
  267. package/data/build/dist/host/cli-bridge/injections.js.map +1 -1
  268. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +49 -7
  269. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -1
  270. package/data/build/dist/host/features/assistant-dispatch.d.ts +45 -0
  271. package/data/build/dist/host/features/assistant-dispatch.d.ts.map +1 -0
  272. package/data/build/dist/host/features/assistant-dispatch.js +49 -0
  273. package/data/build/dist/host/features/assistant-dispatch.js.map +1 -0
  274. package/data/build/dist/host/features/assistant-intent.d.ts +46 -0
  275. package/data/build/dist/host/features/assistant-intent.d.ts.map +1 -0
  276. package/data/build/dist/host/features/assistant-intent.js +149 -0
  277. package/data/build/dist/host/features/assistant-intent.js.map +1 -0
  278. package/data/build/dist/host/features/assistant-scope-settings.d.ts +25 -0
  279. package/data/build/dist/host/features/assistant-scope-settings.d.ts.map +1 -0
  280. package/data/build/dist/host/features/assistant-scope-settings.js +33 -0
  281. package/data/build/dist/host/features/assistant-scope-settings.js.map +1 -0
  282. package/data/build/dist/host/features/assistant-scope.d.ts +79 -0
  283. package/data/build/dist/host/features/assistant-scope.d.ts.map +1 -0
  284. package/data/build/dist/host/features/assistant-scope.js +107 -0
  285. package/data/build/dist/host/features/assistant-scope.js.map +1 -0
  286. package/data/build/dist/host/features/assistant-session-index.d.ts +44 -0
  287. package/data/build/dist/host/features/assistant-session-index.d.ts.map +1 -0
  288. package/data/build/dist/host/features/assistant-session-index.js +109 -0
  289. package/data/build/dist/host/features/assistant-session-index.js.map +1 -0
  290. package/data/build/dist/host/features/assistant-summary.d.ts +28 -0
  291. package/data/build/dist/host/features/assistant-summary.d.ts.map +1 -0
  292. package/data/build/dist/host/features/assistant-summary.js +166 -0
  293. package/data/build/dist/host/features/assistant-summary.js.map +1 -0
  294. package/data/build/dist/host/features/assistant-voice-stream.d.ts +10 -0
  295. package/data/build/dist/host/features/assistant-voice-stream.d.ts.map +1 -0
  296. package/data/build/dist/host/features/assistant-voice-stream.js +106 -0
  297. package/data/build/dist/host/features/assistant-voice-stream.js.map +1 -0
  298. package/data/build/dist/host/features/assistant-voice-turn.d.ts +27 -0
  299. package/data/build/dist/host/features/assistant-voice-turn.d.ts.map +1 -0
  300. package/data/build/dist/host/features/assistant-voice-turn.js +54 -0
  301. package/data/build/dist/host/features/assistant-voice-turn.js.map +1 -0
  302. package/data/build/dist/host/features/assistant-waiting-state.d.ts +14 -0
  303. package/data/build/dist/host/features/assistant-waiting-state.d.ts.map +1 -0
  304. package/data/build/dist/host/features/assistant-waiting-state.js +17 -0
  305. package/data/build/dist/host/features/assistant-waiting-state.js.map +1 -0
  306. package/data/build/dist/host/features/global-voice-coordinator.d.ts +55 -0
  307. package/data/build/dist/host/features/global-voice-coordinator.d.ts.map +1 -0
  308. package/data/build/dist/host/features/global-voice-coordinator.js +221 -0
  309. package/data/build/dist/host/features/global-voice-coordinator.js.map +1 -0
  310. package/data/build/dist/host/features/global-voice-rpc.d.ts +25 -0
  311. package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -0
  312. package/data/build/dist/host/features/global-voice-rpc.js +862 -0
  313. package/data/build/dist/host/features/global-voice-rpc.js.map +1 -0
  314. package/data/build/dist/host/features/index.d.ts +10 -0
  315. package/data/build/dist/host/features/index.d.ts.map +1 -1
  316. package/data/build/dist/host/features/index.js +10 -0
  317. package/data/build/dist/host/features/index.js.map +1 -1
  318. package/data/build/dist/host/features/peer-host.d.ts +5 -0
  319. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  320. package/data/build/dist/host/features/peer-host.js +232 -2
  321. package/data/build/dist/host/features/peer-host.js.map +1 -1
  322. package/data/build/dist/host/features/sherpa-voice-runtime.d.ts +42 -0
  323. package/data/build/dist/host/features/sherpa-voice-runtime.d.ts.map +1 -0
  324. package/data/build/dist/host/features/sherpa-voice-runtime.js +193 -0
  325. package/data/build/dist/host/features/sherpa-voice-runtime.js.map +1 -0
  326. package/data/build/dist/host/features/types.d.ts +26 -0
  327. package/data/build/dist/host/features/types.d.ts.map +1 -1
  328. package/data/build/dist/host/features/voice-agent-actions.d.ts +26 -0
  329. package/data/build/dist/host/features/voice-agent-actions.d.ts.map +1 -0
  330. package/data/build/dist/host/features/voice-agent-actions.js +128 -0
  331. package/data/build/dist/host/features/voice-agent-actions.js.map +1 -0
  332. package/data/build/dist/host/features/voice-agent-service.d.ts +117 -0
  333. package/data/build/dist/host/features/voice-agent-service.d.ts.map +1 -0
  334. package/data/build/dist/host/features/voice-agent-service.js +243 -0
  335. package/data/build/dist/host/features/voice-agent-service.js.map +1 -0
  336. package/data/build/dist/host/features/voice-model-setup.d.ts +20 -0
  337. package/data/build/dist/host/features/voice-model-setup.d.ts.map +1 -0
  338. package/data/build/dist/host/features/voice-model-setup.js +89 -0
  339. package/data/build/dist/host/features/voice-model-setup.js.map +1 -0
  340. package/data/build/dist/host/index.d.ts +3 -3
  341. package/data/build/dist/host/index.d.ts.map +1 -1
  342. package/data/build/dist/host/index.js +8 -2
  343. package/data/build/dist/host/index.js.map +1 -1
  344. package/data/build/dist/host/lan-access-dsh.js.map +1 -1
  345. package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.d.ts.map +1 -1
  346. package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js +53 -2
  347. package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js.map +1 -1
  348. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js +15 -1
  349. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
  350. package/data/build/dist/host/native-session-bridge.d.ts +2 -0
  351. package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
  352. package/data/build/dist/host/native-session-bridge.js +1 -0
  353. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  354. package/data/build/dist/host/rpc.d.ts.map +1 -1
  355. package/data/build/dist/host/rpc.js +9 -4
  356. package/data/build/dist/host/rpc.js.map +1 -1
  357. package/data/build/dist/host/settings.d.ts.map +1 -1
  358. package/data/build/dist/host/settings.js +19 -1
  359. package/data/build/dist/host/settings.js.map +1 -1
  360. package/data/build/dist/host/terminal/backends/conpty-backend.js.map +1 -1
  361. package/data/build/dist/host/terminal/terminal-controller.d.ts.map +1 -1
  362. package/data/build/dist/host/terminal/terminal-controller.js +4 -0
  363. package/data/build/dist/host/terminal/terminal-controller.js.map +1 -1
  364. package/data/build/dist/host/terminal/terminal-service.d.ts +21 -1
  365. package/data/build/dist/host/terminal/terminal-service.d.ts.map +1 -1
  366. package/data/build/dist/host/terminal/terminal-service.js +118 -7
  367. package/data/build/dist/host/terminal/terminal-service.js.map +1 -1
  368. package/data/build/dist/index.d.ts +2 -2
  369. package/data/build/dist/index.d.ts.map +1 -1
  370. package/data/build/dist/index.js +1 -1
  371. package/data/build/dist/index.js.map +1 -1
  372. package/data/build/dist/shared/contracts/assistant.d.ts +70 -0
  373. package/data/build/dist/shared/contracts/assistant.d.ts.map +1 -0
  374. package/data/build/dist/shared/contracts/assistant.js +2 -0
  375. package/data/build/dist/shared/contracts/assistant.js.map +1 -0
  376. package/data/build/dist/shared/contracts/cli-adapter.d.ts +33 -1
  377. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  378. package/data/build/dist/shared/contracts/config.d.ts +30 -0
  379. package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
  380. package/data/build/dist/shared/contracts/config.js +20 -0
  381. package/data/build/dist/shared/contracts/config.js.map +1 -1
  382. package/data/build/dist/shared/contracts/errors.d.ts +2 -2
  383. package/data/build/dist/shared/contracts/errors.d.ts.map +1 -1
  384. package/data/build/dist/shared/contracts/subscription.d.ts +30 -0
  385. package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
  386. package/data/build/dist/shared/contracts/subscription.js.map +1 -1
  387. package/data/build/dist/shared/contracts/terminal.d.ts +2 -0
  388. package/data/build/dist/shared/contracts/terminal.d.ts.map +1 -1
  389. package/data/build/dist/shared/contracts/version.d.ts +12 -5
  390. package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
  391. package/data/build/dist/shared/contracts/version.js +11 -4
  392. package/data/build/dist/shared/contracts/version.js.map +1 -1
  393. package/data/build/dist/shared/contracts/voice-runtime.d.ts +90 -0
  394. package/data/build/dist/shared/contracts/voice-runtime.d.ts.map +1 -0
  395. package/data/build/dist/shared/contracts/voice-runtime.js +16 -0
  396. package/data/build/dist/shared/contracts/voice-runtime.js.map +1 -0
  397. package/data/build/dist/shared/index.d.ts +8 -2
  398. package/data/build/dist/shared/index.d.ts.map +1 -1
  399. package/data/build/dist/shared/index.js +5 -1
  400. package/data/build/dist/shared/index.js.map +1 -1
  401. package/data/build/dist/shared/voice-models.d.ts +21 -0
  402. package/data/build/dist/shared/voice-models.d.ts.map +1 -0
  403. package/data/build/dist/shared/voice-models.js +27 -0
  404. package/data/build/dist/shared/voice-models.js.map +1 -0
  405. package/data/build/dist/shared/voice-stream.d.ts +42 -0
  406. package/data/build/dist/shared/voice-stream.d.ts.map +1 -0
  407. package/data/build/dist/shared/voice-stream.js +99 -0
  408. package/data/build/dist/shared/voice-stream.js.map +1 -0
  409. package/data/build/dist/shared/voice-text.d.ts +3 -0
  410. package/data/build/dist/shared/voice-text.d.ts.map +1 -0
  411. package/data/build/dist/shared/voice-text.js +14 -0
  412. package/data/build/dist/shared/voice-text.js.map +1 -0
  413. package/data/build/dist/typert.host.d.ts.map +1 -1
  414. package/data/build/dist/typert.host.js +1 -0
  415. package/data/build/dist/typert.host.js.map +1 -1
  416. package/package.json +56 -26
  417. package/profile/README.md +8 -5
  418. package/profile/package.json +5 -3
  419. package/profile/version.json +3 -3
  420. package/version.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-panel.js","sourceRoot":"","sources":["../../../../../src/client/features/assistant-panel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { CodingNsClientFeatureModule } from './types.js';
3
+ import type { CodingNsClientServices } from './types.js';
4
+ /** Client 根级语音入口;使用 shell.overlay,绝不绑定当前 session。 */
5
+ export declare const globalVoiceAssistantFeature: CodingNsClientFeatureModule;
6
+ declare function GlobalVoiceOverlay({ services }: {
7
+ readonly services: CodingNsClientServices;
8
+ }): ReactElement;
9
+ export { GlobalVoiceOverlay };
10
+ //# sourceMappingURL=global-voice-assistant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-voice-assistant.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/global-voice-assistant.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAoBxD,qDAAqD;AACrD,eAAO,MAAM,2BAA2B,EAAE,2BAyCzC,CAAA;AAED,iBAAS,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;CAAE,GAAG,YAAY,CA4PrG;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,330 @@
1
+ import { createElement, useEffect, useRef, useState } from 'react';
2
+ import { DEFAULT_ASSISTANT_VOICE_SETTINGS } from '../../shared/contracts/config.js';
3
+ import { CODINGNS_RPC_CHANNEL } from '../../shared/contracts/transport.js';
4
+ import { useCodingNsTranslator } from '../locale.js';
5
+ import { AssistantPanel } from './assistant-panel.js';
6
+ import { ClientSherpaVoiceAdapter } from '../sherpa-voice-adapter.js';
7
+ import { inspectBrowserVoiceSecurity } from '../voice-security.js';
8
+ import { getGlobalVoiceAdapter, registerGlobalVoiceAdapter } from '../global-voice-runtime-registry.js';
9
+ import { VoiceInitializationDialog } from './voice-initialization-dialog.js';
10
+ import { VoiceConversationDialog } from './voice-conversation-dialog.js';
11
+ const GLOBAL_ASSISTANT_BUTTON_SIZE = 38;
12
+ /** Client 根级语音入口;使用 shell.overlay,绝不绑定当前 session。 */
13
+ export const globalVoiceAssistantFeature = {
14
+ descriptor: {
15
+ name: 'globalVoiceAssistant',
16
+ version: '0.1.0',
17
+ enabledByDefault: false,
18
+ dependencies: [],
19
+ runtime: 'client',
20
+ ui: {
21
+ label: 'Global smart assistant (Testing)',
22
+ description: 'Choose the workspaces that the global assistant may read and control.',
23
+ labelKey: 'feature.assistant.label',
24
+ descriptionKey: 'feature.assistant.description',
25
+ order: 30,
26
+ defaultOpen: false,
27
+ },
28
+ },
29
+ start(context) {
30
+ const ui = context.services.uiContext;
31
+ if (ui === undefined)
32
+ return;
33
+ const actionOwnerId = createVoiceLeaseOwnerId();
34
+ const adapter = new ClientSherpaVoiceAdapter({ ownerId: actionOwnerId, services: context.services });
35
+ void context.services.rpc.call(CODINGNS_RPC_CHANNEL, 'assistant/voice/register-client', {
36
+ ownerId: actionOwnerId,
37
+ capabilities: adapter.capabilities,
38
+ secureContext: inspectBrowserVoiceSecurity().secure,
39
+ }).catch(() => undefined);
40
+ const disposeAdapter = registerGlobalVoiceAdapter(context.services, adapter);
41
+ context.resources.add(() => {
42
+ disposeAdapter();
43
+ adapter.dispose();
44
+ void context.services.rpc.call(CODINGNS_RPC_CHANNEL, 'assistant/voice/unregister-client', { ownerId: actionOwnerId }).catch(() => undefined);
45
+ });
46
+ const disposer = ui.slots.inject('shell.overlay', () => ui.slots.register({
47
+ name: 'shell.overlay',
48
+ id: 'codingns4dsh-global-voice-assistant',
49
+ order: 40,
50
+ inject: () => ({ services: context.services }),
51
+ }, GlobalVoiceOverlay));
52
+ context.resources.add(disposer);
53
+ },
54
+ settingsPanel: AssistantPanel,
55
+ };
56
+ function GlobalVoiceOverlay({ services }) {
57
+ const [snapshot, setSnapshot] = useState({ state: 'disabled' });
58
+ const [setupOpen, setSetupOpen] = useState(false);
59
+ const [conversationOpen, setConversationOpen] = useState(false);
60
+ const [conversationPending, setConversationPending] = useState(false);
61
+ const [partialText, setPartialText] = useState('');
62
+ const [transcript, setTranscript] = useState([]);
63
+ const [settingsValue, setSettingsValue] = useState(() => services.settings.getSnapshot().value);
64
+ const ownerIdRef = useRef(undefined);
65
+ const eventSequenceRef = useRef(0);
66
+ if (ownerIdRef.current === undefined)
67
+ ownerIdRef.current = createVoiceLeaseOwnerId();
68
+ const t = useCodingNsTranslator(services.locale);
69
+ const nativeAdapter = getGlobalVoiceAdapter(services);
70
+ const ownerId = nativeAdapter?.configuredOwnerId ?? ownerIdRef.current;
71
+ const browserVoiceSecurity = inspectBrowserVoiceSecurity();
72
+ const voiceSettings = settingsValue?.assistant?.voice ?? DEFAULT_ASSISTANT_VOICE_SETTINGS;
73
+ const needsSetup = !isVoiceSettingsReady(voiceSettings);
74
+ // 全局助理只使用 Sherpa-ONNX 流式模式;运行时不可用时明确显示错误。
75
+ const adapter = nativeAdapter?.capabilities.realtime === true
76
+ && browserVoiceSecurity.secure
77
+ && !needsSetup
78
+ && voiceSettings.provider === 'sherpa-onnx'
79
+ ? nativeAdapter
80
+ : undefined;
81
+ const realtimeUnavailableMessage = !browserVoiceSecurity.secure
82
+ ? t('voice.secureContextRequired')
83
+ : nativeAdapter?.capabilities.realtime !== true
84
+ ? t('voice.dialog.unavailable')
85
+ : voiceSettings.provider !== 'sherpa-onnx'
86
+ ? t('voice.dialog.unavailable')
87
+ : undefined;
88
+ useEffect(() => {
89
+ const refresh = () => setSettingsValue(services.settings.getSnapshot().value);
90
+ refresh();
91
+ return services.settings.subscribe(refresh);
92
+ }, [services.settings]);
93
+ useEffect(() => {
94
+ if (adapter !== undefined) {
95
+ setSnapshot({ state: 'disabled', active: false });
96
+ const unsubscribe = adapter.subscribe((event) => {
97
+ if (event.type === 'state' || event.type === 'wake' || event.type === 'barge-in' || event.type === 'error') {
98
+ void services.rpc.call(CODINGNS_RPC_CHANNEL, 'assistant/voice/event', { ownerId, event, sequence: ++eventSequenceRef.current }).catch(() => undefined);
99
+ }
100
+ if (event.type === 'partial')
101
+ setPartialText(event.text);
102
+ else if (event.type === 'final' && event.text.trim() !== '') {
103
+ setTranscript((previous) => [...previous, event.text.trim()]);
104
+ setPartialText('');
105
+ }
106
+ if (event.type === 'state')
107
+ setSnapshot({ state: event.state, active: event.state !== 'disabled', ownerId });
108
+ else if (event.type === 'barge-in')
109
+ setSnapshot({ state: 'interrupted', active: true, ownerId });
110
+ else if (event.type === 'error') {
111
+ const message = event.code === 'voice_empty_transcript'
112
+ ? t('voice.emptyTranscript')
113
+ : event.code === 'voice_invalid_transcript'
114
+ ? t('voice.invalidTranscript')
115
+ : event.message;
116
+ setSnapshot({ state: 'error', active: true, ownerId, message });
117
+ if (!event.recoverable) {
118
+ void adapter.stop().catch(() => undefined);
119
+ }
120
+ }
121
+ });
122
+ const onPageHide = () => {
123
+ void adapter.stop().catch(() => undefined);
124
+ };
125
+ if (typeof window !== 'undefined')
126
+ window.addEventListener('pagehide', onPageHide);
127
+ return () => {
128
+ unsubscribe();
129
+ if (typeof window !== 'undefined')
130
+ window.removeEventListener('pagehide', onPageHide);
131
+ void adapter.stop().catch(() => undefined);
132
+ };
133
+ }
134
+ setSnapshot({
135
+ state: 'error',
136
+ active: false,
137
+ ownerId,
138
+ ...(realtimeUnavailableMessage === undefined ? {} : { message: realtimeUnavailableMessage }),
139
+ });
140
+ return undefined;
141
+ }, [adapter, ownerId, realtimeUnavailableMessage, services, t]);
142
+ useEffect(() => {
143
+ if (adapter === undefined)
144
+ return undefined;
145
+ const timer = setInterval(() => {
146
+ if (adapter.ownerId === undefined)
147
+ return;
148
+ void services.rpc.call(CODINGNS_RPC_CHANNEL, 'assistant/voice/heartbeat', { ownerId }).catch(() => undefined);
149
+ }, 10_000);
150
+ return () => clearInterval(timer);
151
+ }, [adapter, ownerId, services]);
152
+ const startConversation = async () => {
153
+ if (conversationPending || snapshot.active === true)
154
+ return;
155
+ setConversationPending(true);
156
+ setPartialText('');
157
+ setSnapshot((previous) => ({ ...previous, state: 'loading', active: false, ownerId }));
158
+ try {
159
+ if (adapter === undefined)
160
+ throw new Error(realtimeUnavailableMessage ?? t('voice.dialog.unavailable'));
161
+ await adapter.start(ownerId);
162
+ }
163
+ catch (error) {
164
+ setSnapshot({ state: 'error', active: false, ownerId, message: error instanceof Error ? error.message : String(error) });
165
+ }
166
+ finally {
167
+ setConversationPending(false);
168
+ }
169
+ };
170
+ const stopConversation = async () => {
171
+ if (!conversationPending && snapshot.active !== true)
172
+ return;
173
+ setConversationPending(true);
174
+ try {
175
+ if (adapter !== undefined)
176
+ await adapter.stop();
177
+ setPartialText('');
178
+ }
179
+ catch (error) {
180
+ setSnapshot({ state: 'error', active: false, ownerId, message: error instanceof Error ? error.message : String(error) });
181
+ }
182
+ finally {
183
+ setConversationPending(false);
184
+ }
185
+ };
186
+ const closeConversation = () => {
187
+ if (snapshot.active === true) {
188
+ void stopConversation().finally(() => setConversationOpen(false));
189
+ return;
190
+ }
191
+ setConversationOpen(false);
192
+ };
193
+ const openConversation = () => {
194
+ if (needsSetup) {
195
+ setSetupOpen(true);
196
+ return;
197
+ }
198
+ setConversationOpen(true);
199
+ };
200
+ useEffect(() => {
201
+ const doc = typeof document === 'undefined' ? undefined : document;
202
+ if (doc === undefined)
203
+ return undefined;
204
+ const assistantButtonSize = `${GLOBAL_ASSISTANT_BUTTON_SIZE}px`;
205
+ let mountedNative;
206
+ let mountedRow;
207
+ let mountedParent;
208
+ let mountedNextSibling;
209
+ let mountedNativeInlineStyle;
210
+ const mount = () => {
211
+ const buttons = [...doc.querySelectorAll('button')];
212
+ const native = buttons.find((candidate) => {
213
+ const classes = typeof candidate.className === 'string' ? candidate.className.split(/\s+/u) : [];
214
+ return classes.some((name) => name.endsWith('_newSession'));
215
+ }) ?? buttons.find((candidate) => {
216
+ const aria = candidate.getAttribute('aria-label') ?? '';
217
+ return /新建会话|新建对话|new session|new conversation/iu.test(aria);
218
+ });
219
+ if (native === undefined || native.parentElement === null || native.parentElement.querySelector('[data-codingns-global-voice-button]') !== null)
220
+ return;
221
+ const button = doc.createElement('button');
222
+ button.type = 'button';
223
+ button.setAttribute('data-codingns-global-voice-button', 'true');
224
+ const label = needsSetup ? t('voice.setup.open') : t('voice.globalAssistant');
225
+ button.setAttribute('aria-label', label);
226
+ button.setAttribute('aria-description', [t('voice.microphoneNotice'), t('voice.audioNotice'), snapshot.message].filter(Boolean).join(' '));
227
+ button.setAttribute('aria-haspopup', 'dialog');
228
+ button.setAttribute('aria-expanded', String(conversationOpen || setupOpen));
229
+ button.setAttribute('data-codingns-voice-state', snapshot.state ?? 'disabled');
230
+ button.title = label;
231
+ button.innerHTML = '<svg aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m12 2 1.45 5.55L19 9l-5.55 1.45L12 16l-1.45-5.55L5 9l5.55-1.45L12 2Z"/><path d="m5 15 .7 2.3L8 18l-2.3.7L5 21l-.7-2.3L2 18l2.3-.7L5 15Z"/><path d="m19 14 .45 1.55L21 16l-1.55.45L19 18l-.45-1.55L17 16l1.55-.45L19 14Z"/></svg>';
232
+ button.style.cssText = `display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;cursor:pointer;background:var(--ds-color-fill-tertiary,rgba(127,127,127,.12));flex:0 1 ${assistantButtonSize};min-width:${assistantButtonSize};width:${assistantButtonSize};max-width:${assistantButtonSize};height:${assistantButtonSize};aspect-ratio:1 / 1;box-sizing:border-box;white-space:nowrap;margin:0`;
233
+ button.addEventListener('click', openConversation);
234
+ const parent = native.parentElement;
235
+ const row = doc.createElement('div');
236
+ row.setAttribute('data-codingns-global-voice-row', 'true');
237
+ row.style.cssText = 'display:flex;flex:0 1 auto;flex-flow:row nowrap;align-items:center;gap:4px;min-width:0;width:calc(100% - 4px);max-width:100%;box-sizing:border-box;overflow:hidden;margin:0 2px 12px';
238
+ mountedNative = native;
239
+ mountedRow = row;
240
+ mountedParent = parent;
241
+ mountedNextSibling = native.nextSibling;
242
+ mountedNativeInlineStyle = {
243
+ flex: native.style.flex,
244
+ minWidth: native.style.minWidth,
245
+ width: native.style.width,
246
+ maxWidth: native.style.maxWidth,
247
+ boxSizing: native.style.boxSizing,
248
+ whiteSpace: native.style.whiteSpace,
249
+ margin: native.style.margin,
250
+ };
251
+ parent.insertBefore(row, native);
252
+ row.append(native, button);
253
+ native.style.flex = '1 1 auto';
254
+ native.style.minWidth = '0';
255
+ native.style.width = 'auto';
256
+ native.style.maxWidth = '100%';
257
+ native.style.boxSizing = 'border-box';
258
+ native.style.whiteSpace = 'nowrap';
259
+ native.style.margin = '0';
260
+ button.style.flex = `0 1 ${assistantButtonSize}`;
261
+ button.style.width = assistantButtonSize;
262
+ button.style.minWidth = assistantButtonSize;
263
+ button.style.maxWidth = assistantButtonSize;
264
+ button.style.height = assistantButtonSize;
265
+ };
266
+ mount();
267
+ const observer = typeof MutationObserver === 'undefined' ? undefined : new MutationObserver(mount);
268
+ observer?.observe(doc.body ?? doc.documentElement, { childList: true, subtree: true });
269
+ return () => {
270
+ observer?.disconnect();
271
+ if (mountedNative !== undefined && mountedNativeInlineStyle !== undefined) {
272
+ mountedNative.style.flex = mountedNativeInlineStyle.flex;
273
+ mountedNative.style.minWidth = mountedNativeInlineStyle.minWidth;
274
+ mountedNative.style.width = mountedNativeInlineStyle.width;
275
+ mountedNative.style.maxWidth = mountedNativeInlineStyle.maxWidth;
276
+ mountedNative.style.boxSizing = mountedNativeInlineStyle.boxSizing;
277
+ mountedNative.style.whiteSpace = mountedNativeInlineStyle.whiteSpace;
278
+ mountedNative.style.margin = mountedNativeInlineStyle.margin;
279
+ }
280
+ if (mountedNative !== undefined && mountedParent !== undefined && mountedParent.isConnected) {
281
+ if (mountedNextSibling !== null && mountedNextSibling !== undefined && mountedNextSibling.parentNode === mountedParent)
282
+ mountedParent.insertBefore(mountedNative, mountedNextSibling);
283
+ else
284
+ mountedParent.appendChild(mountedNative);
285
+ }
286
+ mountedRow?.remove();
287
+ doc.querySelectorAll('[data-codingns-global-voice-button]').forEach((node) => node.remove());
288
+ };
289
+ }, [adapter, conversationOpen, needsSetup, openConversation, setSetupOpen, setupOpen, snapshot.state, t]);
290
+ return createElement('span', { 'data-codingns-global-voice': 'true', ...(setupOpen || conversationOpen ? {} : { 'aria-hidden': 'true' }) }, setupOpen ? createElement(VoiceInitializationDialog, {
291
+ services,
292
+ value: voiceSettings,
293
+ onClose: () => setSetupOpen(false),
294
+ }) : conversationOpen ? createElement(VoiceConversationDialog, {
295
+ t,
296
+ active: snapshot.active === true,
297
+ pending: conversationPending,
298
+ state: snapshot.state,
299
+ message: snapshot.message,
300
+ partialText,
301
+ transcript,
302
+ realtimeAvailable: adapter !== undefined,
303
+ unavailableMessage: realtimeUnavailableMessage,
304
+ onStart: () => { void startConversation(); },
305
+ onStop: () => { void stopConversation(); },
306
+ onClose: closeConversation,
307
+ onClear: () => { setTranscript([]); setPartialText(''); },
308
+ }) : null);
309
+ }
310
+ export { GlobalVoiceOverlay };
311
+ function createVoiceLeaseOwnerId() {
312
+ try {
313
+ const randomUUID = globalThis.crypto?.randomUUID;
314
+ if (typeof randomUUID === 'function')
315
+ return `codingns4dsh:global-voice:${randomUUID.call(globalThis.crypto)}`;
316
+ }
317
+ catch {
318
+ // 某些旧浏览器暴露 crypto 但禁用 randomUUID,继续使用随机后缀。
319
+ }
320
+ return `codingns4dsh:global-voice:${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
321
+ }
322
+ function isVoiceSettingsReady(settings) {
323
+ if (!settings.initialized || settings.provider !== 'sherpa-onnx')
324
+ return false;
325
+ return settings.asrEncoder.trim() !== ''
326
+ && settings.asrDecoder.trim() !== ''
327
+ && settings.asrJoiner.trim() !== ''
328
+ && settings.asrTokens.trim() !== '';
329
+ }
330
+ //# sourceMappingURL=global-voice-assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-voice-assistant.js","sourceRoot":"","sources":["../../../../../src/client/features/global-voice-assistant.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface CodingNsSettingsModule {
26
26
  */
27
27
  export declare function settingsModules(registry: FeatureRegistry<CodingNsClientServices, CodingNsClientFeatureModule>): readonly CodingNsSettingsModule[];
28
28
  export { lanAccessFeature, loginProtectionFeature, reverseProxyFeature, cliAdaptersFeature, workspaceSessionEnhancementFeature, mobileAccessFeature, terminalEnhancementFeature, debugFeature, gitManagementFeature, fileManagementFeature, peerHostFeature };
29
+ export { globalVoiceAssistantFeature } from './global-voice-assistant.js';
30
+ export { ClientSherpaVoiceAdapter } from '../sherpa-voice-adapter.js';
29
31
  export { createPeerHostPageTransport, installPeerHostConnectionRouting } from './peer-host.js';
30
32
  export { startBrowserRelayConnection } from './reverse-proxy.js';
31
33
  export { LanAccessPanel } from './lan-access-panel.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAA;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAErF,8CAA8C;AAC9C,eAAO,MAAM,eAAe,EAAE,SAAS,2BAA2B,EAYjE,CAAA;AAED,yBAAyB;AACzB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAA;IAC5C,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAA;CACjC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,GAC7E,SAAS,sBAAsB,EAAE,CAUnC;AAED,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAA;AAC7P,OAAO,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAA;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACnI,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAA;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,YAAY,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { debugFeature } from './debug.js';
9
9
  import { gitManagementFeature } from '../git-management.js';
10
10
  import { fileManagementFeature } from './file-management.js';
11
11
  import { peerHostFeature } from './peer-host.js';
12
+ import { globalVoiceAssistantFeature } from './global-voice-assistant.js';
12
13
  /** Client 侧功能模块清单:新增模块在这里登记一行,不需要改动设置页和入口。 */
13
14
  export const CLIENT_FEATURES = [
14
15
  lanAccessFeature,
@@ -22,6 +23,7 @@ export const CLIENT_FEATURES = [
22
23
  gitManagementFeature,
23
24
  fileManagementFeature,
24
25
  peerHostFeature,
26
+ globalVoiceAssistantFeature,
25
27
  ];
26
28
  /**
27
29
  * 汇总需要在设置页显示的模块,按 ui.order 升序。
@@ -42,6 +44,8 @@ export function settingsModules(registry) {
42
44
  return entries;
43
45
  }
44
46
  export { lanAccessFeature, loginProtectionFeature, reverseProxyFeature, cliAdaptersFeature, workspaceSessionEnhancementFeature, mobileAccessFeature, terminalEnhancementFeature, debugFeature, gitManagementFeature, fileManagementFeature, peerHostFeature };
47
+ export { globalVoiceAssistantFeature } from './global-voice-assistant.js';
48
+ export { ClientSherpaVoiceAdapter } from '../sherpa-voice-adapter.js';
45
49
  export { createPeerHostPageTransport, installPeerHostConnectionRouting } from './peer-host.js';
46
50
  export { startBrowserRelayConnection } from './reverse-proxy.js';
47
51
  export { LanAccessPanel } from './lan-access-panel.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/client/features/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/client/features/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lan-access.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/lan-access.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAE7D;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,2BA4C9B,CAAA"}
1
+ {"version":3,"file":"lan-access.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/lan-access.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAE7D;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,2BA8C9B,CAAA"}
@@ -33,7 +33,9 @@ export const lanAccessFeature = {
33
33
  let prompt;
34
34
  // 局域网入口在手机浏览器中复用 DSH 原生会话列表;交互修正控制器自身
35
35
  // 按窄屏和触摸能力门禁,桌面端不会注册全局监听。
36
- const mobileSessionInteraction = startMobileSessionInteractionDom();
36
+ const mobileSessionInteraction = startMobileSessionInteractionDom({
37
+ sidebarRight: context.services.sidebarRight,
38
+ });
37
39
  const sync = () => {
38
40
  const pwa = context.services.settings.getSnapshot().value?.lanAccessDsh.pwa ?? DEFAULT_LAN_ACCESS_DSH_PWA_SETTINGS;
39
41
  if (!pwa.enabled || !pwa.installPrompt) {
@@ -1 +1 @@
1
- {"version":3,"file":"lan-access.js","sourceRoot":"","sources":["../../../../../src/client/features/lan-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAmC,MAAM,0BAA0B,CAAA;AACjG,OAAO,EAAE,gCAAgC,EAA2C,MAAM,kCAAkC,CAAA;AAC5H,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,QAAQ;QACjB,EAAE,EAAE;YACF,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,2HAA2H;YACxI,QAAQ,EAAE,yBAAyB;YACnC,cAAc,EAAE,+BAA+B;YAC/C,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,IAAI;SACpB;KACF;IACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,sBAAsB,EAAE,CAAA;QACxB,IAAI,MAA8C,CAAA;QAClD,sCAAsC;QACtC,0BAA0B;QAC1B,MAAM,wBAAwB,GAAuC,gCAAgC,EAAE,CAAA;QACvG,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,IAAI,mCAAmC,CAAA;YAClH,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvC,MAAM,EAAE,OAAO,EAAE,CAAA;gBACjB,MAAM,GAAG,SAAS,CAAA;gBAClB,OAAM;YACR,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBACnE,OAAM;YACR,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAChE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,OAAO,EAAE,CAAA;YACjB,MAAM,GAAG,SAAS,CAAA;YAClB,wBAAwB,CAAC,OAAO,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,IAAI,EAAE,CAAA;IACR,CAAC;IACD,aAAa,EAAE,cAAc;CAC9B,CAAA"}
1
+ {"version":3,"file":"lan-access.js","sourceRoot":"","sources":["../../../../../src/client/features/lan-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAmC,MAAM,0BAA0B,CAAA;AACjG,OAAO,EAAE,gCAAgC,EAA2C,MAAM,kCAAkC,CAAA;AAC5H,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,QAAQ;QACjB,EAAE,EAAE;YACF,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,2HAA2H;YACxI,QAAQ,EAAE,yBAAyB;YACnC,cAAc,EAAE,+BAA+B;YAC/C,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,IAAI;SACpB;KACF;IACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,sBAAsB,EAAE,CAAA;QACxB,IAAI,MAA8C,CAAA;QAClD,sCAAsC;QACtC,0BAA0B;QAC1B,MAAM,wBAAwB,GAAuC,gCAAgC,CAAC;YACpG,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY;SAC5C,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,IAAI,mCAAmC,CAAA;YAClH,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvC,MAAM,EAAE,OAAO,EAAE,CAAA;gBACjB,MAAM,GAAG,SAAS,CAAA;gBAClB,OAAM;YACR,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBACnE,OAAM;YACR,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAChE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,OAAO,EAAE,CAAA;YACjB,MAAM,GAAG,SAAS,CAAA;YAClB,wBAAwB,CAAC,OAAO,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,IAAI,EAAE,CAAA;IACR,CAAC;IACD,aAAa,EAAE,cAAc;CAC9B,CAAA"}
@@ -50,10 +50,13 @@ export interface CodingNsClientServices {
50
50
  readonly layout?: {
51
51
  toggleSidebar(): void;
52
52
  };
53
- /** DSH 右侧栏服务;手势用它读取状态并开合右栏。 */
53
+ /** DSH 右侧栏服务;手势用它读取状态并开合右栏,移动端会话切换监听 mounted。 */
54
54
  readonly sidebarRight?: {
55
55
  isExpanded(): boolean;
56
56
  toggleExpanded(): void;
57
+ mounted?: {
58
+ subscribe(listener: () => void): () => void;
59
+ };
57
60
  };
58
61
  /** 通知与推送客户端;局域网 PWA 面板用它请求权限、订阅与注销 Service Worker。 */
59
62
  readonly notifications?: PwaNotificationClient;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { CodingNsTranslator } from '../locale.js';
3
+ export interface VoiceConversationDialogProps {
4
+ readonly t: CodingNsTranslator;
5
+ readonly active: boolean;
6
+ readonly pending: boolean;
7
+ readonly state?: string | undefined;
8
+ readonly message?: string | undefined;
9
+ readonly partialText: string;
10
+ readonly transcript: readonly string[];
11
+ readonly realtimeAvailable: boolean;
12
+ readonly unavailableMessage?: string | undefined;
13
+ readonly onStart: () => void;
14
+ readonly onStop: () => void;
15
+ readonly onClose: () => void;
16
+ readonly onClear: () => void;
17
+ }
18
+ /** 全局语音助理独立对话窗口;打开窗口不会自动申请麦克风。 */
19
+ export declare function VoiceConversationDialog({ t, active, pending, state, message, partialText, transcript, realtimeAvailable, unavailableMessage, onStart, onStop, onClose, onClear, }: VoiceConversationDialogProps): ReactElement;
20
+ //# sourceMappingURL=voice-conversation-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-conversation-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/voice-conversation-dialog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGtD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED,kCAAkC;AAClC,wBAAgB,uBAAuB,CAAC,EACtC,CAAC,EACD,MAAM,EACN,OAAO,EACP,KAAK,EACL,OAAO,EACP,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,4BAA4B,GAAG,YAAY,CAoE7C"}
@@ -0,0 +1,59 @@
1
+ import { createElement, useEffect, useRef } from 'react';
2
+ import { dshSettingsButtonStyle, dshSettingsHelpStyle, dshSettingsPrimaryButtonStyle, dshThemeColor } from '../theme.js';
3
+ /** 全局语音助理独立对话窗口;打开窗口不会自动申请麦克风。 */
4
+ export function VoiceConversationDialog({ t, active, pending, state, message, partialText, transcript, realtimeAvailable, unavailableMessage, onStart, onStop, onClose, onClear, }) {
5
+ const status = statusLabel(t, state, active);
6
+ const canStart = !active && !pending;
7
+ const transcriptRef = useRef(null);
8
+ useEffect(() => {
9
+ const element = transcriptRef.current;
10
+ if (element !== null)
11
+ element.scrollTop = element.scrollHeight;
12
+ }, [partialText, transcript.length]);
13
+ return createElement('div', {
14
+ role: 'presentation',
15
+ onPointerDown: () => { if (!pending)
16
+ onClose(); },
17
+ style: {
18
+ position: 'fixed', inset: 0, zIndex: 10000, display: 'flex', alignItems: 'center', justifyContent: 'center',
19
+ padding: 16, background: dshThemeColor.overlay, boxSizing: 'border-box',
20
+ },
21
+ }, createElement('div', {
22
+ role: 'dialog',
23
+ 'aria-modal': true,
24
+ 'aria-label': t('voice.dialog.title'),
25
+ onPointerDown: (event) => event.stopPropagation(),
26
+ style: {
27
+ display: 'flex', flexDirection: 'column', gap: 14, width: 'min(620px, 100%)', maxHeight: 'min(700px, 100%)',
28
+ overflowY: 'auto', padding: 24, color: dshThemeColor.labelPrimary, background: dshThemeColor.menuBackground,
29
+ border: `1px solid ${dshThemeColor.border}`, borderRadius: 12, boxShadow: dshThemeColor.prominentShadow,
30
+ boxSizing: 'border-box',
31
+ },
32
+ }, createElement('div', { style: { display: 'flex', alignItems: 'flex-start', justifyContent: 'space-between', gap: 16 } }, createElement('div', { style: { display: 'grid', gap: 6, minWidth: 0 } }, createElement('strong', { style: { fontSize: 18, lineHeight: 1.4 } }, t('voice.dialog.title')), createElement('span', { style: dshSettingsHelpStyle }, t('voice.dialog.description'))), createElement('span', { role: 'status', style: { flex: '0 0 auto', color: active ? dshThemeColor.success : dshThemeColor.labelSecondary, fontSize: 12 } }, status)), createElement('div', { style: { padding: '10px 12px', borderRadius: 8, background: dshThemeColor.surfaceSubtle, color: dshThemeColor.labelSecondary, fontSize: 12, lineHeight: 1.5 } }, realtimeAvailable ? t('voice.dialog.realtimeHint') : unavailableMessage ?? t('voice.dialog.unavailable')), createElement('div', {
33
+ 'aria-live': 'polite',
34
+ ref: transcriptRef,
35
+ style: {
36
+ display: 'flex', flexDirection: 'column', gap: 8, minHeight: 180, maxHeight: 340, overflowY: 'auto',
37
+ padding: 14, border: `1px solid ${dshThemeColor.border}`, borderRadius: 8, background: dshThemeColor.inputBackground,
38
+ boxSizing: 'border-box',
39
+ },
40
+ }, createElement('div', { style: { color: dshThemeColor.labelTertiary, fontSize: 12, fontWeight: 600 } }, t('voice.dialog.liveText')), transcript.length === 0 && partialText === ''
41
+ ? createElement('div', { style: { color: dshThemeColor.labelTertiary, fontSize: 14, lineHeight: 1.6 } }, t('voice.dialog.empty'))
42
+ : null, ...transcript.map((text, index) => createElement('div', { key: `${index}-${text}`, style: { color: dshThemeColor.labelPrimary, fontSize: 15, lineHeight: 1.65 } }, text)), partialText === '' ? null : createElement('div', { style: { color: dshThemeColor.accent, fontSize: 15, lineHeight: 1.65 } }, partialText)), message === undefined || message === '' || state !== 'error'
43
+ ? null
44
+ : createElement('div', { role: 'alert', style: { color: dshThemeColor.error, fontSize: 13, lineHeight: 1.5 } }, message), createElement('div', { style: { display: 'flex', justifyContent: 'space-between', gap: 8, paddingTop: 3 } }, createElement('button', { type: 'button', disabled: transcript.length === 0 && partialText === '', onClick: onClear, style: dshSettingsButtonStyle }, t('voice.dialog.clear')), createElement('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 8 } }, createElement('button', { type: 'button', disabled: pending, onClick: onClose, style: dshSettingsButtonStyle }, t('voice.dialog.close')), active
45
+ ? createElement('button', { type: 'button', onClick: onStop, style: dshSettingsButtonStyle }, t('voice.dialog.stop'))
46
+ : createElement('button', { type: 'button', disabled: !canStart || !realtimeAvailable, onClick: onStart, style: dshSettingsPrimaryButtonStyle }, t('voice.dialog.start'))))));
47
+ }
48
+ function statusLabel(t, state, active) {
49
+ if (state === 'loading')
50
+ return t('voice.dialog.status.loading');
51
+ if (state === 'listening')
52
+ return t('voice.dialog.status.listening');
53
+ if (state === 'recording')
54
+ return t('voice.dialog.status.recording');
55
+ if (state === 'error')
56
+ return t('voice.dialog.status.error');
57
+ return active ? t('voice.dialog.status.active') : t('voice.dialog.status.idle');
58
+ }
59
+ //# sourceMappingURL=voice-conversation-dialog.js.map