@jingyi0605/codingns4dsh 0.2.0-beta.2 → 0.2.0-rc.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 +4 -4
  2. package/README.md +7 -5
  3. package/assets/provider-icons/minimax-code.svg +4 -0
  4. package/assets/provider-icons/zcode.svg +14 -0
  5. package/data/build/dist/client/account-bar.d.ts +2 -1
  6. package/data/build/dist/client/account-bar.d.ts.map +1 -1
  7. package/data/build/dist/client/account-bar.js +21 -16
  8. package/data/build/dist/client/account-bar.js.map +1 -1
  9. package/data/build/dist/client/bundle.js +4172 -1540
  10. package/data/build/dist/client/bundle.js.map +1 -1
  11. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  12. package/data/build/dist/client/cli-slots.js +20 -12
  13. package/data/build/dist/client/cli-slots.js.map +1 -1
  14. package/data/build/dist/client/debug/ui.d.ts +2 -1
  15. package/data/build/dist/client/debug/ui.d.ts.map +1 -1
  16. package/data/build/dist/client/debug/ui.js +39 -33
  17. package/data/build/dist/client/debug/ui.js.map +1 -1
  18. package/data/build/dist/client/delegate-command.d.ts +16 -0
  19. package/data/build/dist/client/delegate-command.d.ts.map +1 -0
  20. package/data/build/dist/client/delegate-command.js +138 -0
  21. package/data/build/dist/client/delegate-command.js.map +1 -0
  22. package/data/build/dist/client/delegate-plan.d.ts +31 -0
  23. package/data/build/dist/client/delegate-plan.d.ts.map +1 -0
  24. package/data/build/dist/client/delegate-plan.js +59 -0
  25. package/data/build/dist/client/delegate-plan.js.map +1 -0
  26. package/data/build/dist/client/delegate-ui-dom.d.ts +40 -0
  27. package/data/build/dist/client/delegate-ui-dom.d.ts.map +1 -0
  28. package/data/build/dist/client/delegate-ui-dom.js +363 -0
  29. package/data/build/dist/client/delegate-ui-dom.js.map +1 -0
  30. package/data/build/dist/client/external-tool-stream.d.ts.map +1 -1
  31. package/data/build/dist/client/external-tool-stream.js +44 -36
  32. package/data/build/dist/client/external-tool-stream.js.map +1 -1
  33. package/data/build/dist/client/features/cli-adapters.d.ts +7 -2
  34. package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
  35. package/data/build/dist/client/features/cli-adapters.js +52 -103
  36. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  37. package/data/build/dist/client/features/debug.d.ts.map +1 -1
  38. package/data/build/dist/client/features/debug.js +5 -3
  39. package/data/build/dist/client/features/debug.js.map +1 -1
  40. package/data/build/dist/client/features/file-management.d.ts.map +1 -1
  41. package/data/build/dist/client/features/file-management.js +7 -4
  42. package/data/build/dist/client/features/file-management.js.map +1 -1
  43. package/data/build/dist/client/features/lan-access-panel.js +10 -10
  44. package/data/build/dist/client/features/lan-access-panel.js.map +1 -1
  45. package/data/build/dist/client/features/lan-access.d.ts.map +1 -1
  46. package/data/build/dist/client/features/lan-access.js +8 -3
  47. package/data/build/dist/client/features/lan-access.js.map +1 -1
  48. package/data/build/dist/client/features/login-protection-panel.d.ts.map +1 -1
  49. package/data/build/dist/client/features/login-protection-panel.js +9 -7
  50. package/data/build/dist/client/features/login-protection-panel.js.map +1 -1
  51. package/data/build/dist/client/features/login-protection.js +2 -2
  52. package/data/build/dist/client/features/login-protection.js.map +1 -1
  53. package/data/build/dist/client/features/mobile-access.d.ts.map +1 -1
  54. package/data/build/dist/client/features/mobile-access.js +6 -2
  55. package/data/build/dist/client/features/mobile-access.js.map +1 -1
  56. package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
  57. package/data/build/dist/client/features/peer-host.js +115 -11
  58. package/data/build/dist/client/features/peer-host.js.map +1 -1
  59. package/data/build/dist/client/features/reverse-proxy.js +2 -2
  60. package/data/build/dist/client/features/reverse-proxy.js.map +1 -1
  61. package/data/build/dist/client/features/terminal-enhancement.js +2 -2
  62. package/data/build/dist/client/features/terminal-enhancement.js.map +1 -1
  63. package/data/build/dist/client/features/workspace-session-enhancement-panel.js +1 -1
  64. package/data/build/dist/client/features/workspace-session-enhancement-panel.js.map +1 -1
  65. package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
  66. package/data/build/dist/client/features/workspace-session-enhancement.js +8 -3
  67. package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
  68. package/data/build/dist/client/file-management-dom.d.ts +3 -0
  69. package/data/build/dist/client/file-management-dom.d.ts.map +1 -1
  70. package/data/build/dist/client/file-management-dom.js +41 -30
  71. package/data/build/dist/client/file-management-dom.js.map +1 -1
  72. package/data/build/dist/client/git-management.d.ts +2 -0
  73. package/data/build/dist/client/git-management.d.ts.map +1 -1
  74. package/data/build/dist/client/git-management.js +82 -74
  75. package/data/build/dist/client/git-management.js.map +1 -1
  76. package/data/build/dist/client/git-workspace-events.d.ts +7 -0
  77. package/data/build/dist/client/git-workspace-events.d.ts.map +1 -0
  78. package/data/build/dist/client/git-workspace-events.js +32 -0
  79. package/data/build/dist/client/git-workspace-events.js.map +1 -0
  80. package/data/build/dist/client/index.d.ts +2 -0
  81. package/data/build/dist/client/index.d.ts.map +1 -1
  82. package/data/build/dist/client/index.js +6 -5
  83. package/data/build/dist/client/index.js.map +1 -1
  84. package/data/build/dist/client/locale.d.ts +7 -0
  85. package/data/build/dist/client/locale.d.ts.map +1 -1
  86. package/data/build/dist/client/locale.js +80 -36
  87. package/data/build/dist/client/locale.js.map +1 -1
  88. package/data/build/dist/client/locales/debug.d.ts +9 -0
  89. package/data/build/dist/client/locales/debug.d.ts.map +1 -0
  90. package/data/build/dist/client/locales/debug.js +163 -0
  91. package/data/build/dist/client/locales/debug.js.map +1 -0
  92. package/data/build/dist/client/locales/fileWorkspace.d.ts +9 -0
  93. package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -0
  94. package/data/build/dist/client/locales/fileWorkspace.js +139 -0
  95. package/data/build/dist/client/locales/fileWorkspace.js.map +1 -0
  96. package/data/build/dist/client/locales/git.d.ts +9 -0
  97. package/data/build/dist/client/locales/git.d.ts.map +1 -0
  98. package/data/build/dist/client/locales/git.js +223 -0
  99. package/data/build/dist/client/locales/git.js.map +1 -0
  100. package/data/build/dist/client/locales/panels.d.ts +9 -0
  101. package/data/build/dist/client/locales/panels.d.ts.map +1 -0
  102. package/data/build/dist/client/locales/panels.js +33 -0
  103. package/data/build/dist/client/locales/panels.js.map +1 -0
  104. package/data/build/dist/client/locales/peerHost.d.ts +9 -0
  105. package/data/build/dist/client/locales/peerHost.d.ts.map +1 -0
  106. package/data/build/dist/client/locales/peerHost.js +153 -0
  107. package/data/build/dist/client/locales/peerHost.js.map +1 -0
  108. package/data/build/dist/client/locales/peerHostWorkspace.d.ts +9 -0
  109. package/data/build/dist/client/locales/peerHostWorkspace.d.ts.map +1 -0
  110. package/data/build/dist/client/locales/peerHostWorkspace.js +69 -0
  111. package/data/build/dist/client/locales/peerHostWorkspace.js.map +1 -0
  112. package/data/build/dist/client/locales/terminalAuth.d.ts +9 -0
  113. package/data/build/dist/client/locales/terminalAuth.d.ts.map +1 -0
  114. package/data/build/dist/client/locales/terminalAuth.js +67 -0
  115. package/data/build/dist/client/locales/terminalAuth.js.map +1 -0
  116. package/data/build/dist/client/locales/usage.d.ts +9 -0
  117. package/data/build/dist/client/locales/usage.d.ts.map +1 -0
  118. package/data/build/dist/client/locales/usage.js +195 -0
  119. package/data/build/dist/client/locales/usage.js.map +1 -0
  120. package/data/build/dist/client/mobile-session-interaction.d.ts +44 -0
  121. package/data/build/dist/client/mobile-session-interaction.d.ts.map +1 -0
  122. package/data/build/dist/client/mobile-session-interaction.js +291 -0
  123. package/data/build/dist/client/mobile-session-interaction.js.map +1 -0
  124. package/data/build/dist/client/mobile-sidebar-rail-dom.d.ts +10 -2
  125. package/data/build/dist/client/mobile-sidebar-rail-dom.d.ts.map +1 -1
  126. package/data/build/dist/client/mobile-sidebar-rail-dom.js +14 -6
  127. package/data/build/dist/client/mobile-sidebar-rail-dom.js.map +1 -1
  128. package/data/build/dist/client/peer-host-connection-button.d.ts +14 -1
  129. package/data/build/dist/client/peer-host-connection-button.d.ts.map +1 -1
  130. package/data/build/dist/client/peer-host-connection-button.js +12 -4
  131. package/data/build/dist/client/peer-host-connection-button.js.map +1 -1
  132. package/data/build/dist/client/peer-host-management-panel.d.ts +3 -0
  133. package/data/build/dist/client/peer-host-management-panel.d.ts.map +1 -1
  134. package/data/build/dist/client/peer-host-management-panel.js +83 -79
  135. package/data/build/dist/client/peer-host-management-panel.js.map +1 -1
  136. package/data/build/dist/client/peer-host-native-projection.d.ts +1 -0
  137. package/data/build/dist/client/peer-host-native-projection.d.ts.map +1 -1
  138. package/data/build/dist/client/peer-host-native-projection.js +5 -0
  139. package/data/build/dist/client/peer-host-native-projection.js.map +1 -1
  140. package/data/build/dist/client/peer-host-scoped-client.js +5 -5
  141. package/data/build/dist/client/peer-host-scoped-client.js.map +1 -1
  142. package/data/build/dist/client/peer-host-workspace-tab.d.ts +8 -0
  143. package/data/build/dist/client/peer-host-workspace-tab.d.ts.map +1 -1
  144. package/data/build/dist/client/peer-host-workspace-tab.js +48 -28
  145. package/data/build/dist/client/peer-host-workspace-tab.js.map +1 -1
  146. package/data/build/dist/client/provider-icon-assets.js +4 -0
  147. package/data/build/dist/client/provider-icon-assets.js.map +1 -1
  148. package/data/build/dist/client/provider-icons.d.ts +8 -2
  149. package/data/build/dist/client/provider-icons.d.ts.map +1 -1
  150. package/data/build/dist/client/provider-icons.js +13 -4
  151. package/data/build/dist/client/provider-icons.js.map +1 -1
  152. package/data/build/dist/client/pwa-install-prompt.d.ts +4 -1
  153. package/data/build/dist/client/pwa-install-prompt.d.ts.map +1 -1
  154. package/data/build/dist/client/pwa-install-prompt.js +8 -7
  155. package/data/build/dist/client/pwa-install-prompt.js.map +1 -1
  156. package/data/build/dist/client/quick-phrase-layout.d.ts +11 -0
  157. package/data/build/dist/client/quick-phrase-layout.d.ts.map +1 -1
  158. package/data/build/dist/client/quick-phrase-layout.js +20 -0
  159. package/data/build/dist/client/quick-phrase-layout.js.map +1 -1
  160. package/data/build/dist/client/quick-phrase-slot.d.ts.map +1 -1
  161. package/data/build/dist/client/quick-phrase-slot.js +20 -8
  162. package/data/build/dist/client/quick-phrase-slot.js.map +1 -1
  163. package/data/build/dist/client/session-changed-files-view.d.ts +8 -1
  164. package/data/build/dist/client/session-changed-files-view.d.ts.map +1 -1
  165. package/data/build/dist/client/session-changed-files-view.js +71 -28
  166. package/data/build/dist/client/session-changed-files-view.js.map +1 -1
  167. package/data/build/dist/client/settings-anchor.d.ts +9 -3
  168. package/data/build/dist/client/settings-anchor.d.ts.map +1 -1
  169. package/data/build/dist/client/settings-anchor.js +8 -2
  170. package/data/build/dist/client/settings-anchor.js.map +1 -1
  171. package/data/build/dist/client/settings-section.js +3 -3
  172. package/data/build/dist/client/settings-section.js.map +1 -1
  173. package/data/build/dist/client/subscription-slot.d.ts +4 -1
  174. package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
  175. package/data/build/dist/client/subscription-slot.js +327 -51
  176. package/data/build/dist/client/subscription-slot.js.map +1 -1
  177. package/data/build/dist/client/terminal/model.d.ts +13 -2
  178. package/data/build/dist/client/terminal/model.d.ts.map +1 -1
  179. package/data/build/dist/client/terminal/model.js +27 -7
  180. package/data/build/dist/client/terminal/model.js.map +1 -1
  181. package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
  182. package/data/build/dist/client/terminal/ui.js +3 -1
  183. package/data/build/dist/client/terminal/ui.js.map +1 -1
  184. package/data/build/dist/client/terminal/xterm-view.d.ts +4 -1
  185. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  186. package/data/build/dist/client/terminal/xterm-view.js +19 -17
  187. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  188. package/data/build/dist/client/workspace-session-archive-dom.d.ts +3 -0
  189. package/data/build/dist/client/workspace-session-archive-dom.d.ts.map +1 -1
  190. package/data/build/dist/client/workspace-session-archive-dom.js +131 -45
  191. package/data/build/dist/client/workspace-session-archive-dom.js.map +1 -1
  192. package/data/build/dist/client/workspace-session-logo-dom.d.ts +3 -0
  193. package/data/build/dist/client/workspace-session-logo-dom.d.ts.map +1 -1
  194. package/data/build/dist/client/workspace-session-logo-dom.js +3 -1
  195. package/data/build/dist/client/workspace-session-logo-dom.js.map +1 -1
  196. package/data/build/dist/client/workspace-session-visibility-dom.d.ts +3 -0
  197. package/data/build/dist/client/workspace-session-visibility-dom.d.ts.map +1 -1
  198. package/data/build/dist/client/workspace-session-visibility-dom.js +46 -17
  199. package/data/build/dist/client/workspace-session-visibility-dom.js.map +1 -1
  200. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +10 -0
  201. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
  202. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +20 -0
  203. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
  204. package/data/build/dist/host/browser-text.d.ts +30 -0
  205. package/data/build/dist/host/browser-text.d.ts.map +1 -0
  206. package/data/build/dist/host/browser-text.js +105 -0
  207. package/data/build/dist/host/browser-text.js.map +1 -0
  208. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +28 -2
  209. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  210. package/data/build/dist/host/cli-adapters/claude-driver.js +73 -3
  211. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  212. package/data/build/dist/host/cli-adapters/claude-model-options.d.ts.map +1 -1
  213. package/data/build/dist/host/cli-adapters/claude-model-options.js +22 -9
  214. package/data/build/dist/host/cli-adapters/claude-model-options.js.map +1 -1
  215. package/data/build/dist/host/cli-adapters/codex-driver.d.ts +10 -0
  216. package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
  217. package/data/build/dist/host/cli-adapters/codex-driver.js +105 -5
  218. package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
  219. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  220. package/data/build/dist/host/cli-adapters/command-code-driver.js +49 -7
  221. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  222. package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts +47 -0
  223. package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts.map +1 -0
  224. package/data/build/dist/host/cli-adapters/delegate-dispatch.js +158 -0
  225. package/data/build/dist/host/cli-adapters/delegate-dispatch.js.map +1 -0
  226. package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts +32 -0
  227. package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts.map +1 -0
  228. package/data/build/dist/host/cli-adapters/desktop-app-runtime.js +121 -0
  229. package/data/build/dist/host/cli-adapters/desktop-app-runtime.js.map +1 -0
  230. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  231. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +5 -4
  232. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  233. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.d.ts +16 -0
  234. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.d.ts.map +1 -0
  235. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.js +73 -0
  236. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.js.map +1 -0
  237. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  238. package/data/build/dist/host/cli-adapters/feature.js +196 -14
  239. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  240. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts.map +1 -1
  241. package/data/build/dist/host/cli-adapters/gemini-driver.js +21 -5
  242. package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
  243. package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
  244. package/data/build/dist/host/cli-adapters/grok-driver.js +24 -7
  245. package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
  246. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts +22 -6
  247. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  248. package/data/build/dist/host/cli-adapters/json-rpc-process.js +118 -21
  249. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  250. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
  251. package/data/build/dist/host/cli-adapters/kimi-driver.js +25 -4
  252. package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
  253. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts +11 -2
  254. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts.map +1 -1
  255. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js +15 -6
  256. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js.map +1 -1
  257. package/data/build/dist/host/cli-adapters/mcode-catalog.d.ts +23 -0
  258. package/data/build/dist/host/cli-adapters/mcode-catalog.d.ts.map +1 -0
  259. package/data/build/dist/host/cli-adapters/mcode-catalog.js +120 -0
  260. package/data/build/dist/host/cli-adapters/mcode-catalog.js.map +1 -0
  261. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts +56 -0
  262. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts.map +1 -0
  263. package/data/build/dist/host/cli-adapters/mcode-driver.js +544 -0
  264. package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -0
  265. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +30 -5
  266. package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
  267. package/data/build/dist/host/cli-adapters/model-catalog.js +83 -8
  268. package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
  269. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +51 -0
  270. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -0
  271. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +193 -0
  272. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -0
  273. package/data/build/dist/host/cli-adapters/native-subagent-holder.d.ts +4 -0
  274. package/data/build/dist/host/cli-adapters/native-subagent-holder.d.ts.map +1 -0
  275. package/data/build/dist/host/cli-adapters/native-subagent-holder.js +4 -0
  276. package/data/build/dist/host/cli-adapters/native-subagent-holder.js.map +1 -0
  277. package/data/build/dist/host/cli-adapters/native-team-proxy.js +18 -15
  278. package/data/build/dist/host/cli-adapters/native-team-proxy.js.map +1 -1
  279. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +45 -0
  280. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -0
  281. package/data/build/dist/host/cli-adapters/native-team-subagent.js +107 -0
  282. package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -0
  283. package/data/build/dist/host/cli-adapters/opencode-driver.js +13 -3
  284. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  285. package/data/build/dist/host/cli-adapters/pi-driver.js +24 -7
  286. package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
  287. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +8 -1
  288. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
  289. package/data/build/dist/host/cli-adapters/provider-subscription.js +98 -2
  290. package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
  291. package/data/build/dist/host/cli-adapters/registry-holder.d.ts +4 -0
  292. package/data/build/dist/host/cli-adapters/registry-holder.d.ts.map +1 -0
  293. package/data/build/dist/host/cli-adapters/registry-holder.js +9 -0
  294. package/data/build/dist/host/cli-adapters/registry-holder.js.map +1 -0
  295. package/data/build/dist/host/cli-adapters/registry.d.ts +13 -0
  296. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  297. package/data/build/dist/host/cli-adapters/registry.js +37 -0
  298. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  299. package/data/build/dist/host/cli-adapters/session-store.d.ts +6 -1
  300. package/data/build/dist/host/cli-adapters/session-store.d.ts.map +1 -1
  301. package/data/build/dist/host/cli-adapters/session-store.js +42 -4
  302. package/data/build/dist/host/cli-adapters/session-store.js.map +1 -1
  303. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +2 -0
  304. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  305. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +30 -4
  306. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  307. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts +5 -0
  308. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts.map +1 -0
  309. package/data/build/dist/host/cli-adapters/subagent-tool.js +66 -0
  310. package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -0
  311. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts +57 -0
  312. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts.map +1 -0
  313. package/data/build/dist/host/cli-adapters/zcode-driver.js +843 -0
  314. package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -0
  315. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts +28 -0
  316. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts.map +1 -0
  317. package/data/build/dist/host/cli-adapters/zcode-subscription.js +212 -0
  318. package/data/build/dist/host/cli-adapters/zcode-subscription.js.map +1 -0
  319. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts +27 -0
  320. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts.map +1 -0
  321. package/data/build/dist/host/cli-bridge/bridge-holder.js +51 -0
  322. package/data/build/dist/host/cli-bridge/bridge-holder.js.map +1 -0
  323. package/data/build/dist/host/cli-bridge/bridge-server.d.ts +34 -0
  324. package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -0
  325. package/data/build/dist/host/cli-bridge/bridge-server.js +135 -0
  326. package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -0
  327. package/data/build/dist/host/cli-bridge/command-code-mod.d.ts +25 -0
  328. package/data/build/dist/host/cli-bridge/command-code-mod.d.ts.map +1 -0
  329. package/data/build/dist/host/cli-bridge/command-code-mod.js +60 -0
  330. package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -0
  331. package/data/build/dist/host/cli-bridge/dispatch.d.ts +19 -0
  332. package/data/build/dist/host/cli-bridge/dispatch.d.ts.map +1 -0
  333. package/data/build/dist/host/cli-bridge/dispatch.js +90 -0
  334. package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -0
  335. package/data/build/dist/host/cli-bridge/injections.d.ts +28 -0
  336. package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -0
  337. package/data/build/dist/host/cli-bridge/injections.js +131 -0
  338. package/data/build/dist/host/cli-bridge/injections.js.map +1 -0
  339. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.d.ts +8 -0
  340. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.d.ts.map +1 -0
  341. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +151 -0
  342. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -0
  343. package/data/build/dist/host/features/lan-access-dsh.d.ts.map +1 -1
  344. package/data/build/dist/host/features/lan-access-dsh.js +6 -2
  345. package/data/build/dist/host/features/lan-access-dsh.js.map +1 -1
  346. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  347. package/data/build/dist/host/features/peer-host.js +2 -1
  348. package/data/build/dist/host/features/peer-host.js.map +1 -1
  349. package/data/build/dist/host/index.d.ts +4 -0
  350. package/data/build/dist/host/index.d.ts.map +1 -1
  351. package/data/build/dist/host/index.js +36 -0
  352. package/data/build/dist/host/index.js.map +1 -1
  353. package/data/build/dist/host/lan-access-dsh.d.ts +7 -1
  354. package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
  355. package/data/build/dist/host/lan-access-dsh.js +95 -19
  356. package/data/build/dist/host/lan-access-dsh.js.map +1 -1
  357. package/data/build/dist/host/login-attempt-guard.d.ts +55 -0
  358. package/data/build/dist/host/login-attempt-guard.d.ts.map +1 -0
  359. package/data/build/dist/host/login-attempt-guard.js +201 -0
  360. package/data/build/dist/host/login-attempt-guard.js.map +1 -0
  361. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts +3 -0
  362. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts.map +1 -1
  363. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js +2 -0
  364. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js.map +1 -1
  365. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts +1 -0
  366. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts.map +1 -1
  367. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js +1 -0
  368. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js.map +1 -1
  369. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts +1 -1
  370. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts.map +1 -1
  371. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js +3 -0
  372. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js.map +1 -1
  373. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.d.ts +8 -0
  374. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.d.ts.map +1 -1
  375. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.js +9 -0
  376. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.js.map +1 -1
  377. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts +7 -0
  378. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts.map +1 -1
  379. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js +31 -3
  380. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
  381. package/data/build/dist/host/modules/pwa/pwa-assets.d.ts +6 -4
  382. package/data/build/dist/host/modules/pwa/pwa-assets.d.ts.map +1 -1
  383. package/data/build/dist/host/modules/pwa/pwa-assets.js +11 -9
  384. package/data/build/dist/host/modules/pwa/pwa-assets.js.map +1 -1
  385. package/data/build/dist/host/modules/pwa/pwa-session-notifications.d.ts +3 -0
  386. package/data/build/dist/host/modules/pwa/pwa-session-notifications.d.ts.map +1 -1
  387. package/data/build/dist/host/modules/pwa/pwa-session-notifications.js +6 -4
  388. package/data/build/dist/host/modules/pwa/pwa-session-notifications.js.map +1 -1
  389. package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
  390. package/data/build/dist/host/native-session-bridge.js +70 -52
  391. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  392. package/data/build/dist/host/rpc.js +4 -1
  393. package/data/build/dist/host/rpc.js.map +1 -1
  394. package/data/build/dist/host/settings.d.ts.map +1 -1
  395. package/data/build/dist/host/settings.js +3 -0
  396. package/data/build/dist/host/settings.js.map +1 -1
  397. package/data/build/dist/shared/contracts/cli-adapter.d.ts +5 -0
  398. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  399. package/data/build/dist/shared/contracts/config.d.ts +10 -0
  400. package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
  401. package/data/build/dist/shared/contracts/config.js +8 -0
  402. package/data/build/dist/shared/contracts/config.js.map +1 -1
  403. package/data/build/dist/shared/contracts/peer-host.d.ts +2 -0
  404. package/data/build/dist/shared/contracts/peer-host.d.ts.map +1 -1
  405. package/data/build/dist/shared/contracts/peer-host.js.map +1 -1
  406. package/data/build/dist/shared/contracts/subscription.d.ts +15 -0
  407. package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
  408. package/data/build/dist/shared/contracts/subscription.js.map +1 -1
  409. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  410. package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
  411. package/data/build/dist/shared/contracts/version.js +1 -1
  412. package/data/build/dist/shared/contracts/version.js.map +1 -1
  413. package/data/build/dist/shared/index.d.ts +1 -1
  414. package/data/build/dist/shared/index.d.ts.map +1 -1
  415. package/data/build/dist/shared/index.js.map +1 -1
  416. package/package.json +3 -1
  417. package/profile/README.md +2 -2
  418. package/profile/package.json +2 -2
  419. package/profile/version.json +1 -1
  420. package/version.json +1 -1
@@ -0,0 +1,363 @@
1
+ /**
2
+ * `/委派` 的界面增强(DOM 注入)。
3
+ *
4
+ * DSH 的 `/` 菜单把「添加」分类写死在 `sectionRows` 的名单里(file/goal/plan/feedback),
5
+ * 客户端贡献项只能落到「指令」分类;popupSelect 的 `SelectOption` 契约也没有图标字段。
6
+ * 这两点都无法通过公开 API 表达,因此这里按仓库既有的 DOM 注入惯例做两件事:
7
+ *
8
+ * 1. 把插件自己的委派行放进「添加」分类。真实行由 React 拥有,插件**只加属性隐藏它**,
9
+ * 绝不搬动它;「添加」分类末尾放一个克隆行,交互事件转发回真实行。
10
+ * - 不用 CSS `order` 让真实行「看起来」在添加分类里:`order` 只改视觉位置,
11
+ * 而菜单高亮由 store 的候选顺序(等于 DOM 顺序)驱动,两者会分叉——方向键
12
+ * 走到委派时高亮会突然跳到上面去。克隆行则让视觉与键盘顺序保持一致。
13
+ * - 绝不移动 React 拥有的节点,否则下一次协调时 React 的 insertBefore 会抛
14
+ * NotFoundError 打断整个菜单。
15
+ * - 克隆行**不能继承**隐藏标记,否则真实行和克隆行都被隐藏,委派入口整个消失;
16
+ * 隐藏规则本身也用 `:not()` 排除克隆行作为第二道保险。
17
+ * 2. 给委派弹层里的适配器行补上 Provider 图标。
18
+ *
19
+ * 依赖的 DSH 0.2.0-rc.2 契约(任何一条不成立都只是不生效,不会误改宿主界面):
20
+ * - `/` 菜单行是 `button[role="option"]`,id 前缀 `dsh-slash-option-`,标题在
21
+ * `span[class*="itemName"]`;分类标题在 `div[class*="sectionTitle"]`,「添加」恒为首个;
22
+ * - 委派弹层的搜索框 placeholder 由插件自己提供,行标题在 `span[class*="labelText"]`。
23
+ */
24
+ import { providerIconUrl } from './provider-icons.js';
25
+ /** 被打在真实委派菜单行上的隐藏标记。 */
26
+ export const DELEGATE_MENU_ROW_ATTRIBUTE = 'data-codingns-delegate-row';
27
+ /** 插件在「添加」分类里创建的克隆行标记。 */
28
+ export const DELEGATE_MENU_PROXY_ATTRIBUTE = 'data-codingns-delegate-proxy';
29
+ /** 插件在委派弹层适配器行前插入的图标标记。 */
30
+ export const DELEGATE_POPUP_LOGO_ATTRIBUTE = 'data-codingns-delegate-logo';
31
+ /** 插件样式标签的幂等键。 */
32
+ export const DELEGATE_UI_STYLE_ID = 'codingns4dsh-delegate-ui-style';
33
+ const MENU_OPTION_SELECTOR = '[role="option"]';
34
+ const MENU_LISTBOX_SELECTOR = '[role="listbox"]';
35
+ const MENU_OPTION_ID_PREFIX = 'dsh-slash-option-';
36
+ const ITEM_NAME_SELECTOR = '[class*="itemName"]';
37
+ const SECTION_TITLE_SELECTOR = '[class*="sectionTitle"]';
38
+ const LABEL_TEXT_SELECTOR = '[class*="labelText"]';
39
+ // 隐藏规则排除克隆行:即使克隆意外带上了标记,也不会连克隆一起隐藏。
40
+ const DELEGATE_UI_STYLE_TEXT = `[${DELEGATE_MENU_ROW_ATTRIBUTE}]:not([${DELEGATE_MENU_PROXY_ATTRIBUTE}]){display:none!important}`
41
+ + `[${DELEGATE_MENU_PROXY_ATTRIBUTE}][data-active="true"]{background:var(--dsw-alias-interactive-bg-hover)}`
42
+ + `[${DELEGATE_POPUP_LOGO_ATTRIBUTE}]{width:16px;height:16px;flex:none;object-fit:contain;border-radius:3px;margin-right:2px}`;
43
+ /** 克隆行 → 真实行;真实行被 React 重建时据此判定需要重建克隆。 */
44
+ const proxySources = new WeakMap();
45
+ let popupOptions = [];
46
+ let requestRefresh;
47
+ /**
48
+ * 登记当前委派弹层的适配器选项。
49
+ *
50
+ * `/委派` 的 `options()` 每次加载后调用;图标注入据此把行标题反查回适配器 id。
51
+ * 行标题就是适配器显示名,因此这张表同时充当标题到 id 的映射。
52
+ */
53
+ export function setDelegatePopupOptions(options) {
54
+ popupOptions = options;
55
+ requestRefresh?.();
56
+ }
57
+ /**
58
+ * 安装 `/委派` 的界面增强。
59
+ *
60
+ * @param options - 注入点(document/观察器/本地化文案/图标表),便于单测替换。
61
+ * @returns 控制器;`document` 缺失时退化为空操作。
62
+ */
63
+ export function startDelegateUiDom(options) {
64
+ const dom = options.document ?? (typeof document === 'undefined' ? undefined : document);
65
+ const Observer = options.MutationObserver
66
+ ?? (typeof MutationObserver === 'undefined' ? undefined : MutationObserver);
67
+ const iconUrl = options.iconUrlForAdapter ?? providerIconUrl;
68
+ let disposed = false;
69
+ let scanQueued = false;
70
+ let observer;
71
+ const observe = () => {
72
+ if (disposed || dom === undefined || observer === undefined)
73
+ return;
74
+ observer.observe(dom.documentElement, {
75
+ childList: true,
76
+ subtree: true,
77
+ attributes: true,
78
+ attributeFilter: ['aria-selected'],
79
+ });
80
+ };
81
+ const runScan = () => {
82
+ if (disposed || dom === undefined)
83
+ return;
84
+ // 提前退出:菜单与弹层都没打开时,文档里任何一次改动都不该触发整棵树的查询。
85
+ // 观察器挂在 documentElement 且带 subtree,流式输出期间改动极频繁,这步是必需的。
86
+ const listboxes = [...dom.querySelectorAll(MENU_LISTBOX_SELECTOR)];
87
+ if (listboxes.length === 0)
88
+ return;
89
+ relocateMenuRow(listboxes, options.menuLabel());
90
+ decoratePopupRows(listboxes, options.popupPlaceholder(), iconUrl);
91
+ };
92
+ const scan = () => {
93
+ if (disposed || dom === undefined)
94
+ return;
95
+ // 本函数会写克隆行的 aria-selected(把真实行高亮镜像到「添加」分类),而观察器
96
+ // 恰好盯这个属性:不摘掉观察器就会「写属性 → 触发观察器 → 再扫 → 再写」无限
97
+ // 循环,鼠标移到菜单(首次出现 aria-selected="true")时页面直接卡死。断开观察器
98
+ // 还会丢弃已入队的记录,因此本次扫描自身的改动不会再触发自己。
99
+ observer?.disconnect();
100
+ try {
101
+ runScan();
102
+ }
103
+ finally {
104
+ observe();
105
+ }
106
+ };
107
+ const scheduleScan = () => {
108
+ if (disposed || scanQueued)
109
+ return;
110
+ scanQueued = true;
111
+ queueMicrotask(() => {
112
+ scanQueued = false;
113
+ scan();
114
+ });
115
+ };
116
+ requestRefresh = scheduleScan;
117
+ if (dom !== undefined)
118
+ installDelegateUiStyles(dom);
119
+ // 菜单行只在悬停/方向键变化时改写 aria-selected(结构不变),因此必须观察属性才能
120
+ // 把高亮同步到克隆行;扫描期间的自我触发由 scan() 里的断开-重连兜住。
121
+ observer = dom === undefined || Observer === undefined ? undefined : new Observer(scheduleScan);
122
+ observe();
123
+ scan();
124
+ return {
125
+ refresh: scheduleScan,
126
+ dispose() {
127
+ if (disposed)
128
+ return;
129
+ disposed = true;
130
+ observer?.disconnect();
131
+ if (requestRefresh === scheduleScan)
132
+ requestRefresh = undefined;
133
+ if (dom !== undefined)
134
+ removeDelegateNodes(dom);
135
+ },
136
+ };
137
+ }
138
+ /** 把插件自己的 `/` 菜单行搬进「添加」分类。 */
139
+ function relocateMenuRow(listboxes, label) {
140
+ const listbox = findSlashMenuListbox(listboxes);
141
+ if (listbox === undefined)
142
+ return;
143
+ const row = findMenuRow(listbox, label);
144
+ const section = findAddSectionTitle(listbox);
145
+ // 只有「能造出克隆行」时才隐藏真实行:用户一旦在 `/` 后输入过滤词,DSH 会走
146
+ // rankByName 而不产生分类标题,此时若已经隐藏真实行,委派入口就会凭空消失。
147
+ if (row === undefined || section === undefined) {
148
+ removeProxies(listbox);
149
+ if (row !== undefined)
150
+ row.removeAttribute(DELEGATE_MENU_ROW_ATTRIBUTE);
151
+ return;
152
+ }
153
+ const existing = listbox.querySelector(`[${DELEGATE_MENU_PROXY_ATTRIBUTE}]`);
154
+ let proxy = existing !== null && proxySources.get(existing) === row ? existing : undefined;
155
+ if (proxy === undefined) {
156
+ existing?.remove();
157
+ proxy = buildProxyRow(row);
158
+ insertAfterSectionOptions(section, proxy);
159
+ proxySources.set(proxy, row);
160
+ }
161
+ // 克隆行没挂进文档就撤回隐藏,宁可留在原分类,也不能让委派入口两边都看不见。
162
+ if (proxy.parentNode === null)
163
+ row.removeAttribute(DELEGATE_MENU_ROW_ATTRIBUTE);
164
+ else
165
+ row.setAttribute(DELEGATE_MENU_ROW_ATTRIBUTE, '');
166
+ syncProxyActive(row, proxy);
167
+ }
168
+ /** 克隆真实行:视觉、图标与文案与原生行完全一致,交互转发回真实行。 */
169
+ function buildProxyRow(row) {
170
+ const proxy = row.cloneNode(true);
171
+ // 克隆会把「隐藏真实行」的标记一起复制过来。不清掉的话克隆行会被插件自己的样式
172
+ // 隐藏,于是真实行隐藏、克隆行也隐藏,委派入口整个从菜单里消失。
173
+ proxy.removeAttribute(DELEGATE_MENU_ROW_ATTRIBUTE);
174
+ proxy.removeAttribute('id');
175
+ proxy.removeAttribute('aria-selected');
176
+ // 克隆瞬间若真实行正被高亮,会把高亮类一起复制过来,导致克隆行永久高亮;
177
+ // 高亮一律改由 data-active 驱动。
178
+ stripActiveClass(proxy);
179
+ proxy.setAttribute(DELEGATE_MENU_PROXY_ATTRIBUTE, '');
180
+ proxy.setAttribute('data-active', 'false');
181
+ // MenuView 用 onMouseMove 维护高亮、onMouseDown 触发选择,克隆行必须转发两者,
182
+ // 否则「看得见的高亮」与「真正被选中的行」会分叉。
183
+ forwardEvent(proxy, row, 'mousemove');
184
+ forwardEvent(proxy, row, 'mousedown');
185
+ proxy.addEventListener('click', (event) => {
186
+ event.preventDefault();
187
+ event.stopPropagation();
188
+ });
189
+ return proxy;
190
+ }
191
+ function forwardEvent(proxy, target, type) {
192
+ proxy.addEventListener(type, (event) => {
193
+ event.preventDefault();
194
+ dispatchLike(target, type);
195
+ });
196
+ }
197
+ /** 在真实行上派发一次可冒泡事件,让 React 的合成事件把它当成真实交互。 */
198
+ function dispatchLike(target, type) {
199
+ const view = target.ownerDocument?.defaultView;
200
+ const MouseEventCtor = view?.MouseEvent ?? (typeof MouseEvent === 'undefined' ? undefined : MouseEvent);
201
+ const event = MouseEventCtor === undefined
202
+ ? new Event(type, { bubbles: true, cancelable: true })
203
+ : new MouseEventCtor(type, { bubbles: true, cancelable: true });
204
+ target.dispatchEvent(event);
205
+ }
206
+ /**
207
+ * 去掉克隆行上的原生高亮类。
208
+ *
209
+ * 类名带 CSS Modules 哈希(如 `_3e4SsG_active`),不能硬编码;这里按「最后一个下划线
210
+ * 片段等于 active」识别,同时兼容没有哈希的 `active`。
211
+ */
212
+ function stripActiveClass(proxy) {
213
+ const classes = proxy.getAttribute('class');
214
+ if (classes === null || classes === '')
215
+ return;
216
+ const kept = classes.split(/\s+/u).filter((name) => name !== 'active' && !name.endsWith('_active'));
217
+ proxy.setAttribute('class', kept.join(' '));
218
+ }
219
+ /**
220
+ * 真实行被方向键/悬停高亮时,克隆行同步高亮。
221
+ *
222
+ * 每次写入前都必须先比较现值:这里的属性正是观察器盯着的那个,多余的写会白白
223
+ * 触发一轮重扫(真正的死循环由 scan() 的断开-重连兜住,这里只减少无谓触发)。
224
+ */
225
+ function syncProxyActive(row, proxy) {
226
+ const active = row.getAttribute('aria-selected') === 'true';
227
+ const next = String(active);
228
+ if (proxy.getAttribute('data-active') !== next)
229
+ proxy.setAttribute('data-active', next);
230
+ const current = proxy.getAttribute('aria-selected');
231
+ if (active) {
232
+ if (current !== 'true')
233
+ proxy.setAttribute('aria-selected', 'true');
234
+ // 方向键移动时菜单会把真实行滚进视野,但用户看到的是克隆行,必须一并滚动。
235
+ proxy.scrollIntoView?.({ block: 'nearest' });
236
+ }
237
+ else if (current !== null) {
238
+ proxy.removeAttribute('aria-selected');
239
+ }
240
+ }
241
+ function findSlashMenuListbox(listboxes) {
242
+ for (const listbox of listboxes) {
243
+ if (listbox.querySelector(`[id^="${MENU_OPTION_ID_PREFIX}"]`) !== null)
244
+ return listbox;
245
+ }
246
+ return undefined;
247
+ }
248
+ /**
249
+ * 定位插件自己的菜单行。
250
+ *
251
+ * 必须跳过克隆行:它与真实行同名,先命中克隆行会让后续判定全部错位。
252
+ */
253
+ function findMenuRow(listbox, label) {
254
+ for (const row of listbox.querySelectorAll(MENU_OPTION_SELECTOR)) {
255
+ if (row.hasAttribute(DELEGATE_MENU_PROXY_ATTRIBUTE))
256
+ continue;
257
+ if (row.getAttribute('id')?.startsWith(MENU_OPTION_ID_PREFIX) !== true)
258
+ continue;
259
+ const name = row.querySelector(ITEM_NAME_SELECTOR);
260
+ if (name !== null && (name.textContent ?? '').trim() === label)
261
+ return row;
262
+ }
263
+ // 类名缺失时的兜底:仍只接受插件菜单行的 id 前缀,避免命中弹层里的同名行。
264
+ for (const row of listbox.querySelectorAll(MENU_OPTION_SELECTOR)) {
265
+ if (row.hasAttribute(DELEGATE_MENU_PROXY_ATTRIBUTE))
266
+ continue;
267
+ if (row.getAttribute('id')?.startsWith(MENU_OPTION_ID_PREFIX) !== true)
268
+ continue;
269
+ if ((row.textContent ?? '').includes(label))
270
+ return row;
271
+ }
272
+ return undefined;
273
+ }
274
+ /**
275
+ * 「添加」分类标题。
276
+ *
277
+ * DSH 的 `sectionRows` 恒把添加分类排在指令分类之前,因此首个分类标题就是它;
278
+ * 这里不硬编码「添加」字样,避免绑定语言。
279
+ */
280
+ function findAddSectionTitle(listbox) {
281
+ return listbox.querySelectorAll(SECTION_TITLE_SELECTOR)[0];
282
+ }
283
+ /** 插入到该分类最后一行之后;分类为空时紧贴标题。 */
284
+ function insertAfterSectionOptions(section, proxy) {
285
+ let anchor = section;
286
+ let sibling = section.nextElementSibling;
287
+ while (sibling !== null && sibling.matches(MENU_OPTION_SELECTOR)) {
288
+ anchor = sibling;
289
+ sibling = sibling.nextElementSibling;
290
+ }
291
+ const parent = anchor.parentNode;
292
+ if (parent === null)
293
+ return;
294
+ parent.insertBefore(proxy, anchor.nextSibling);
295
+ }
296
+ /** 给委派弹层里的适配器行补图标。 */
297
+ function decoratePopupRows(listboxes, placeholder, iconUrl) {
298
+ const listbox = findDelegatePopupListbox(listboxes, placeholder);
299
+ if (listbox === undefined)
300
+ return;
301
+ for (const row of listbox.querySelectorAll(MENU_OPTION_SELECTOR)) {
302
+ if (row.querySelector(`[${DELEGATE_POPUP_LOGO_ATTRIBUTE}]`) !== null)
303
+ continue;
304
+ const adapterId = adapterIdForLabel(readPopupOptionLabel(row));
305
+ if (adapterId === undefined)
306
+ continue;
307
+ const url = iconUrl(adapterId);
308
+ if (url === undefined)
309
+ continue;
310
+ const image = listbox.ownerDocument.createElement('img');
311
+ image.setAttribute('src', url);
312
+ image.setAttribute('alt', '');
313
+ image.setAttribute('aria-hidden', 'true');
314
+ image.setAttribute(DELEGATE_POPUP_LOGO_ATTRIBUTE, adapterId);
315
+ row.insertBefore(image, row.firstChild);
316
+ }
317
+ }
318
+ /** 通过插件自己的搜索占位符识别委派弹层,避免影响其它 popupSelect 命令。 */
319
+ function findDelegatePopupListbox(listboxes, placeholder) {
320
+ for (const listbox of listboxes) {
321
+ if (listbox.querySelector(`[id^="${MENU_OPTION_ID_PREFIX}"]`) !== null)
322
+ continue;
323
+ const card = listbox.parentNode;
324
+ const input = card?.querySelector?.('input') ?? null;
325
+ if (input?.getAttribute('placeholder') === placeholder)
326
+ return listbox;
327
+ }
328
+ return undefined;
329
+ }
330
+ function readPopupOptionLabel(row) {
331
+ const text = row.querySelector(LABEL_TEXT_SELECTOR)?.textContent ?? row.textContent ?? '';
332
+ return text.trim();
333
+ }
334
+ function adapterIdForLabel(label) {
335
+ if (label === '')
336
+ return undefined;
337
+ return popupOptions.find((option) => option.label === label)?.id;
338
+ }
339
+ function removeProxies(scope) {
340
+ for (const proxy of scope.querySelectorAll(`[${DELEGATE_MENU_PROXY_ATTRIBUTE}]`))
341
+ proxy.remove();
342
+ }
343
+ function removeDelegateNodes(dom) {
344
+ for (const proxy of dom.querySelectorAll(`[${DELEGATE_MENU_PROXY_ATTRIBUTE}]`))
345
+ proxy.remove();
346
+ for (const logo of dom.querySelectorAll(`[${DELEGATE_POPUP_LOGO_ATTRIBUTE}]`))
347
+ logo.remove();
348
+ for (const row of dom.querySelectorAll(`[${DELEGATE_MENU_ROW_ATTRIBUTE}]`))
349
+ row.removeAttribute(DELEGATE_MENU_ROW_ATTRIBUTE);
350
+ // 隐藏规则是插件全局样式,停用时必须一并收回,避免残留选择器影响后续渲染。
351
+ dom.querySelector(`style[data-plugin-css="${DELEGATE_UI_STYLE_ID}"]`)?.remove();
352
+ }
353
+ /** 样式只装一次;重复安装由 data-plugin-css 幂等键挡住。 */
354
+ function installDelegateUiStyles(dom) {
355
+ if (dom.querySelector(`style[data-plugin-css="${DELEGATE_UI_STYLE_ID}"]`) !== null)
356
+ return;
357
+ const style = dom.createElement('style');
358
+ style.setAttribute('data-plugin', 'codingns4dsh');
359
+ style.setAttribute('data-plugin-css', DELEGATE_UI_STYLE_ID);
360
+ style.textContent = DELEGATE_UI_STYLE_TEXT;
361
+ dom.head.appendChild(style);
362
+ }
363
+ //# sourceMappingURL=delegate-ui-dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-ui-dom.js","sourceRoot":"","sources":["../../../../src/client/delegate-ui-dom.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"external-tool-stream.d.ts","sourceRoot":"","sources":["../../../../src/client/external-tool-stream.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAGjE,4BAA4B;AAC5B,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AA4ED,4DAA4D;AAC5D,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAiBzF"}
1
+ {"version":3,"file":"external-tool-stream.d.ts","sourceRoot":"","sources":["../../../../src/client/external-tool-stream.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAIjE,4BAA4B;AAC5B,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAmFD,4DAA4D;AAC5D,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAmBzF"}
@@ -1,48 +1,54 @@
1
1
  import { createElement } from 'react';
2
2
  import { dshThemeColor } from './theme.js';
3
+ import { resolveCodingNsTranslator } from './locale.js';
3
4
  /**
4
5
  * 把实时 assistant/live-chunk 工具标记投影成 Chat 节点。
5
6
  * assistant/attempt 读取仅为兼容已经存在的旧历史;新 Host 的持久时间线使用原生
6
7
  * tool/call 与 tool/result,避免把工具事件误当成模型结算。
7
8
  */
8
- const externalToolDefinition = {
9
- kind: 'codingns-external-tool',
10
- target: 'chat',
11
- match(event) {
12
- const marker = readMarker(event);
13
- return marker === null ? null : { id: marker.callId, role: marker.phase === 'start' ? 'start' : 'update' };
14
- },
15
- start(_context, match) {
16
- const marker = readMarker(match.event);
17
- if (marker === null)
18
- throw new Error('外部工具节点缺少起始标记');
19
- return { marker };
20
- },
21
- update(context, match) {
22
- const marker = readMarker(match.event);
23
- return marker === null ? context.state : { marker };
24
- },
25
- buildViewNode(context) {
26
- const state = context.state;
27
- if (state === undefined)
28
- return null;
29
- const location = context.start?.location ?? context.matches[0]?.location ?? { kind: 'unresolved' };
30
- return {
31
- key: context.key,
32
- kind: 'codingns-external-tool',
33
- id: context.id,
34
- target: 'chat',
35
- anchorSeq: context.start?.event.seq ?? context.matches[0]?.event.seq ?? 0,
36
- location,
37
- visibility: 'visible',
38
- data: state.marker,
39
- };
40
- },
41
- };
9
+ function createExternalToolDefinition(t) {
10
+ return {
11
+ kind: 'codingns-external-tool',
12
+ target: 'chat',
13
+ match(event) {
14
+ const marker = readMarker(event);
15
+ return marker === null ? null : { id: marker.callId, role: marker.phase === 'start' ? 'start' : 'update' };
16
+ },
17
+ start(_context, match) {
18
+ const marker = readMarker(match.event);
19
+ if (marker === null)
20
+ throw new Error(t('toolStream.missingMarker'));
21
+ return { marker };
22
+ },
23
+ update(context, match) {
24
+ const marker = readMarker(match.event);
25
+ return marker === null ? context.state : { marker };
26
+ },
27
+ buildViewNode(context) {
28
+ const state = context.state;
29
+ if (state === undefined)
30
+ return null;
31
+ const location = context.start?.location ?? context.matches[0]?.location ?? { kind: 'unresolved' };
32
+ return {
33
+ key: context.key,
34
+ kind: 'codingns-external-tool',
35
+ id: context.id,
36
+ target: 'chat',
37
+ anchorSeq: context.start?.event.seq ?? context.matches[0]?.event.seq ?? 0,
38
+ location,
39
+ visibility: 'visible',
40
+ data: state.marker,
41
+ };
42
+ },
43
+ };
44
+ }
42
45
  /** 外部工具临时节点的紧凑渲染;持久化后由 DSH 原生工具节点接管。 */
43
46
  function ExternalToolNodeView(props) {
44
47
  const data = props.node.data;
45
- const statusLabel = data.status === 'failed' ? '失败' : data.status === 'completed' ? '已完成' : '运行中';
48
+ const t = props.t;
49
+ const statusLabel = data.status === 'failed'
50
+ ? t('toolStream.statusFailed')
51
+ : data.status === 'completed' ? t('toolStream.statusCompleted') : t('toolStream.statusRunning');
46
52
  const output = data.error ?? data.output;
47
53
  return createElement('div', {
48
54
  style: {
@@ -65,11 +71,13 @@ export function registerExternalToolStreamUi(services) {
65
71
  const slots = services.slots;
66
72
  if (uiConversation?.events?.register === undefined || slots === undefined)
67
73
  return () => undefined;
68
- const removeDefinition = uiConversation.events.register(externalToolDefinition);
74
+ const t = resolveCodingNsTranslator(services.locale);
75
+ const removeDefinition = uiConversation.events.register(createExternalToolDefinition(t));
69
76
  const slotRegistry = slots;
70
77
  const removeRenderer = slotRegistry.inject('conversation.chat.node', () => slotRegistry.register({
71
78
  name: 'conversation.chat.node',
72
79
  key: 'codingns-external-tool',
80
+ inject: () => ({ t }),
73
81
  }, ExternalToolNodeView));
74
82
  return () => {
75
83
  removeRenderer();
@@ -1 +1 @@
1
- {"version":3,"file":"external-tool-stream.js","sourceRoot":"","sources":["../../../../src/client/external-tool-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAIrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AA2B1C;;;;GAIG;AACH,MAAM,sBAAsB,GAAkD;IAC5E,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,MAAM;IACd,KAAK,CAAC,KAAc;QAClB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAChC,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5G,CAAC;IACD,KAAK,CAAC,QAAiB,EAAE,KAA6B;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QACpD,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IACD,MAAM,CAAC,OAA8C,EAAE,KAAwB;QAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;IACrD,CAAC;IACD,aAAa,CAAC,OAAO;QACnB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC3B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QACpC,MAAM,QAAQ,GAAyB,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACxH,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,wBAAwB;YAC9B,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;YACzE,QAAQ;YACR,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,KAAK,CAAC,MAAM;SACnB,CAAA;IACH,CAAC;CACF,CAAA;AAMD,wCAAwC;AACxC,SAAS,oBAAoB,CAAC,KAA4B;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAA;IACxC,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE;YACL,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,aAAa,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE;YAC5F,YAAY,EAAE,CAAC;YACf,KAAK,EAAE,aAAa,CAAC,YAAY;YACjC,UAAU,EAAE,aAAa,CAAC,eAAe;YACzC,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;SACjB;QACD,6BAA6B,EAAE,IAAI,CAAC,MAAM;KAC3C,EACD,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAC5G,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAC3C,aAAa,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC,CACxJ,EACD,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,wCAAwC,EAAE,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAClN,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,wCAAwC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,CAC3U,CAAA;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,4BAA4B,CAAC,QAAgC;IAC3E,MAAM,cAAc,GAAG,QAAQ,CAAC,cAA2G,CAAA;IAC3I,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC5B,IAAI,cAAc,EAAE,MAAM,EAAE,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;IACjG,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IAC/E,MAAM,YAAY,GAAG,KAGpB,CAAA;IACD,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC/F,IAAI,EAAE,wBAAwB;QAC9B,GAAG,EAAE,wBAAwB;KAC9B,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACzB,OAAO,GAAG,EAAE;QACV,cAAc,EAAE,CAAA;QAChB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,sBAAsB;QACrD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;QACpE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAClC,CAAC,CAAC,IAAI,CAAC,oBAAoB;YAC3B,CAAC,CAAC,SAAS,CAAA;IACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,wBAAwB;QAAE,OAAO,IAAI,CAAA;IACtF,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IAChF,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC9F,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC5E,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACpH,OAAO;QACL,MAAM,EAAE,wBAAwB;QAChC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,GAAG,CAAC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
1
+ {"version":3,"file":"external-tool-stream.js","sourceRoot":"","sources":["../../../../src/client/external-tool-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAIrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,yBAAyB,EAA2B,MAAM,aAAa,CAAA;AA2BhF;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,CAAqB;IACzD,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,MAAM,EAAE,MAAM;QACd,KAAK,CAAC,KAAc;YAClB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAChC,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC5G,CAAC;QACD,KAAK,CAAC,QAAiB,EAAE,KAA6B;YACpD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACtC,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAA;YACnE,OAAO,EAAE,MAAM,EAAE,CAAA;QACnB,CAAC;QACD,MAAM,CAAC,OAA8C,EAAE,KAAwB;YAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACtC,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;QACrD,CAAC;QACD,aAAa,CAAC,OAAO;YACnB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;YAC3B,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACpC,MAAM,QAAQ,GAAyB,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;YACxH,OAAO;gBACL,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,wBAAwB;gBAC9B,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;gBACzE,QAAQ;gBACR,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,KAAK,CAAC,MAAM;aACnB,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAQD,wCAAwC;AACxC,SAAS,oBAAoB,CAAC,KAA4B;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;IACjB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ;QAC1C,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAA;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAA;IACxC,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE;YACL,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,aAAa,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE;YAC5F,YAAY,EAAE,CAAC;YACf,KAAK,EAAE,aAAa,CAAC,YAAY;YACjC,UAAU,EAAE,aAAa,CAAC,eAAe;YACzC,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;SACjB;QACD,6BAA6B,EAAE,IAAI,CAAC,MAAM;KAC3C,EACD,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAC5G,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAC3C,aAAa,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC,CACxJ,EACD,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,wCAAwC,EAAE,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAClN,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,wCAAwC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,CAC3U,CAAA;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,4BAA4B,CAAC,QAAgC;IAC3E,MAAM,cAAc,GAAG,QAAQ,CAAC,cAA2G,CAAA;IAC3I,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC5B,IAAI,cAAc,EAAE,MAAM,EAAE,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;IACjG,MAAM,CAAC,GAAG,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,MAAM,YAAY,GAAG,KAGpB,CAAA;IACD,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC/F,IAAI,EAAE,wBAAwB;QAC9B,GAAG,EAAE,wBAAwB;QAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;KACtB,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACzB,OAAO,GAAG,EAAE;QACV,cAAc,EAAE,CAAA;QAChB,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,sBAAsB;QACrD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;QACpE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAClC,CAAC,CAAC,IAAI,CAAC,oBAAoB;YAC3B,CAAC,CAAC,SAAS,CAAA;IACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,wBAAwB;QAAE,OAAO,IAAI,CAAA;IACtF,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IAChF,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC9F,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC5E,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACpH,OAAO;QACL,MAAM,EAAE,wBAAwB;QAChC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,GAAG,CAAC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
@@ -2,6 +2,11 @@ import type { ReactElement } from 'react';
2
2
  import type { FeaturePanelProps, CodingNsClientFeatureModule } from './types.js';
3
3
  /** 外部 Agent 集成模块。Agent 进程在 Host 运行,浏览器只读取目录和状态。 */
4
4
  export declare const cliAdaptersFeature: CodingNsClientFeatureModule;
5
- /** 设置页中的 Agent 列表和详情模态框。 */
6
- export declare function CliAdaptersPanel({ services, enabled, notify }: FeaturePanelProps): ReactElement;
5
+ /**
6
+ * 设置页中的 Agent 列表和详情模态框。
7
+ *
8
+ * 面板只管理 Agent 本身:安装状态、版本、命令、启用开关与模型目录。外部会话由
9
+ * DSH 原生侧栏和工作区归档入口承载,这里不再重复一份会话列表。
10
+ */
11
+ export declare function CliAdaptersPanel({ services, enabled, snapshot, notify }: FeaturePanelProps): ReactElement;
7
12
  //# sourceMappingURL=cli-adapters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-adapters.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/cli-adapters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAA;AAOxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAShF,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,EAAE,2BAmChC,CAAA;AAED,4BAA4B;AAC5B,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAuI/F"}
1
+ {"version":3,"file":"cli-adapters.d.ts","sourceRoot":"","sources":["../../../../../src/client/features/cli-adapters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAA;AAMxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAShF,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,EAAE,2BA6ChC,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAuHzG"}