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

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 (459) hide show
  1. package/README.en.md +134 -159
  2. package/README.md +128 -261
  3. package/assets/provider-icons/doubao.png +0 -0
  4. package/data/build/dist/client/account-bar.d.ts +1 -1
  5. package/data/build/dist/client/account-bar.d.ts.map +1 -1
  6. package/data/build/dist/client/account-bar.js +22 -14
  7. package/data/build/dist/client/account-bar.js.map +1 -1
  8. package/data/build/dist/client/adapter-catalog-watch.d.ts +8 -0
  9. package/data/build/dist/client/adapter-catalog-watch.d.ts.map +1 -0
  10. package/data/build/dist/client/adapter-catalog-watch.js +79 -0
  11. package/data/build/dist/client/adapter-catalog-watch.js.map +1 -0
  12. package/data/build/dist/client/avatar/catalog-panel.d.ts +1 -1
  13. package/data/build/dist/client/avatar/catalog-panel.d.ts.map +1 -1
  14. package/data/build/dist/client/avatar/catalog-panel.js +13 -11
  15. package/data/build/dist/client/avatar/catalog-panel.js.map +1 -1
  16. package/data/build/dist/client/avatar/engine.d.ts.map +1 -1
  17. package/data/build/dist/client/avatar/engine.js +26 -7
  18. package/data/build/dist/client/avatar/engine.js.map +1 -1
  19. package/data/build/dist/client/avatar/live2d.d.ts +2 -0
  20. package/data/build/dist/client/avatar/live2d.d.ts.map +1 -1
  21. package/data/build/dist/client/avatar/live2d.js +16 -6
  22. package/data/build/dist/client/avatar/live2d.js.map +1 -1
  23. package/data/build/dist/client/avatar/manager.d.ts.map +1 -1
  24. package/data/build/dist/client/avatar/manager.js +8 -2
  25. package/data/build/dist/client/avatar/manager.js.map +1 -1
  26. package/data/build/dist/client/avatar/slot.d.ts.map +1 -1
  27. package/data/build/dist/client/avatar/slot.js +4 -1
  28. package/data/build/dist/client/avatar/slot.js.map +1 -1
  29. package/data/build/dist/client/bundle.js +48459 -98385
  30. package/data/build/dist/client/bundle.js.map +1 -1
  31. package/data/build/dist/client/cli-catalog.d.ts +5 -0
  32. package/data/build/dist/client/cli-catalog.d.ts.map +1 -1
  33. package/data/build/dist/client/cli-catalog.js +15 -0
  34. package/data/build/dist/client/cli-catalog.js.map +1 -1
  35. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  36. package/data/build/dist/client/cli-slots.js +7 -45
  37. package/data/build/dist/client/cli-slots.js.map +1 -1
  38. package/data/build/dist/client/client.assistant-configuration-view.js +4526 -0
  39. package/data/build/dist/client/client.assistant-configuration-view.js.map +1 -0
  40. package/data/build/dist/client/client.assistant-debug-workbench.js +764 -0
  41. package/data/build/dist/client/client.assistant-debug-workbench.js.map +1 -0
  42. package/data/build/dist/client/client.assistant-prompt-editor.js +76 -0
  43. package/data/build/dist/client/client.assistant-prompt-editor.js.map +1 -0
  44. package/data/build/dist/client/client.assistant-prompts.js +44 -0
  45. package/data/build/dist/client/client.assistant-prompts.js.map +1 -0
  46. package/data/build/dist/client/client.assistant-voice-sessions.js +144 -0
  47. package/data/build/dist/client/client.assistant-voice-sessions.js.map +1 -0
  48. package/data/build/dist/client/client.assistant-workbench.js +2929 -0
  49. package/data/build/dist/client/client.assistant-workbench.js.map +1 -0
  50. package/data/build/dist/client/client.delegate-command.js +1315 -0
  51. package/data/build/dist/client/client.delegate-command.js.map +1 -0
  52. package/data/build/dist/client/client.editor-engine.js +32486 -0
  53. package/data/build/dist/client/client.editor-engine.js.map +1 -0
  54. package/data/build/dist/client/client.manager.js +3454 -0
  55. package/data/build/dist/client/client.manager.js.map +1 -0
  56. package/data/build/dist/client/client.model-catalog-cache.js +543 -0
  57. package/data/build/dist/client/client.model-catalog-cache.js.map +1 -0
  58. package/data/build/dist/client/client.native-workspace-store.js +689 -0
  59. package/data/build/dist/client/client.native-workspace-store.js.map +1 -0
  60. package/data/build/dist/client/client.primitives-adapter.js +333 -0
  61. package/data/build/dist/client/client.primitives-adapter.js.map +1 -0
  62. package/data/build/dist/client/client.react-dom.js +7286 -0
  63. package/data/build/dist/client/client.react-dom.js.map +1 -0
  64. package/data/build/dist/client/client.rolldown-runtime.js +59 -0
  65. package/data/build/dist/client/client.theme.js +386 -0
  66. package/data/build/dist/client/client.theme.js.map +1 -0
  67. package/data/build/dist/client/client.transport.js +3323 -0
  68. package/data/build/dist/client/client.transport.js.map +1 -0
  69. package/data/build/dist/client/client.xterm-engine.js +13064 -0
  70. package/data/build/dist/client/client.xterm-engine.js.map +1 -0
  71. package/data/build/dist/client/debug/ui.d.ts.map +1 -1
  72. package/data/build/dist/client/debug/ui.js +14 -5
  73. package/data/build/dist/client/debug/ui.js.map +1 -1
  74. package/data/build/dist/client/desktop-assistant.js +19 -5
  75. package/data/build/dist/client/editor-engine.d.ts +4 -0
  76. package/data/build/dist/client/editor-engine.d.ts.map +1 -0
  77. package/data/build/dist/client/editor-engine.js +50 -0
  78. package/data/build/dist/client/editor-engine.js.map +1 -0
  79. package/data/build/dist/client/engine-loader.d.ts +5 -0
  80. package/data/build/dist/client/engine-loader.d.ts.map +1 -0
  81. package/data/build/dist/client/engine-loader.js +35 -0
  82. package/data/build/dist/client/engine-loader.js.map +1 -0
  83. package/data/build/dist/client/features/assistant-configuration-loader.d.ts +14 -0
  84. package/data/build/dist/client/features/assistant-configuration-loader.d.ts.map +1 -0
  85. package/data/build/dist/client/features/assistant-configuration-loader.js +13 -0
  86. package/data/build/dist/client/features/assistant-configuration-loader.js.map +1 -0
  87. package/data/build/dist/client/features/assistant-configuration-session.d.ts.map +1 -1
  88. package/data/build/dist/client/features/assistant-configuration-session.js +13 -4
  89. package/data/build/dist/client/features/assistant-configuration-session.js.map +1 -1
  90. package/data/build/dist/client/features/assistant-configuration-view.d.ts +66 -0
  91. package/data/build/dist/client/features/assistant-configuration-view.d.ts.map +1 -0
  92. package/data/build/dist/client/features/assistant-configuration-view.js +133 -0
  93. package/data/build/dist/client/features/assistant-configuration-view.js.map +1 -0
  94. package/data/build/dist/client/features/assistant-debug-workbench.d.ts +4 -11
  95. package/data/build/dist/client/features/assistant-debug-workbench.d.ts.map +1 -1
  96. package/data/build/dist/client/features/assistant-debug-workbench.js +41 -68
  97. package/data/build/dist/client/features/assistant-debug-workbench.js.map +1 -1
  98. package/data/build/dist/client/features/assistant-display-store.d.ts +57 -0
  99. package/data/build/dist/client/features/assistant-display-store.d.ts.map +1 -0
  100. package/data/build/dist/client/features/assistant-display-store.js +189 -0
  101. package/data/build/dist/client/features/assistant-display-store.js.map +1 -0
  102. package/data/build/dist/client/features/assistant-prompt-editor.d.ts +12 -0
  103. package/data/build/dist/client/features/assistant-prompt-editor.d.ts.map +1 -0
  104. package/data/build/dist/client/features/assistant-prompt-editor.js +14 -0
  105. package/data/build/dist/client/features/assistant-prompt-editor.js.map +1 -0
  106. package/data/build/dist/client/features/assistant-view-loader.d.ts +17 -0
  107. package/data/build/dist/client/features/assistant-view-loader.d.ts.map +1 -0
  108. package/data/build/dist/client/features/assistant-view-loader.js +49 -0
  109. package/data/build/dist/client/features/assistant-view-loader.js.map +1 -0
  110. package/data/build/dist/client/features/assistant-workbench.d.ts +1 -60
  111. package/data/build/dist/client/features/assistant-workbench.d.ts.map +1 -1
  112. package/data/build/dist/client/features/assistant-workbench.js +41 -169
  113. package/data/build/dist/client/features/assistant-workbench.js.map +1 -1
  114. package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
  115. package/data/build/dist/client/features/cli-adapters.js +44 -13
  116. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  117. package/data/build/dist/client/features/global-voice-assistant.d.ts.map +1 -1
  118. package/data/build/dist/client/features/global-voice-assistant.js +33 -27
  119. package/data/build/dist/client/features/global-voice-assistant.js.map +1 -1
  120. package/data/build/dist/client/features/peer-host.d.ts +2 -1
  121. package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
  122. package/data/build/dist/client/features/peer-host.js +124 -58
  123. package/data/build/dist/client/features/peer-host.js.map +1 -1
  124. package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
  125. package/data/build/dist/client/features/workspace-session-enhancement.js +37 -10
  126. package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
  127. package/data/build/dist/client/file-management-dom.d.ts +3 -1
  128. package/data/build/dist/client/file-management-dom.d.ts.map +1 -1
  129. package/data/build/dist/client/file-management-dom.js +85 -79
  130. package/data/build/dist/client/file-management-dom.js.map +1 -1
  131. package/data/build/dist/client/git-management.d.ts +1 -1
  132. package/data/build/dist/client/git-management.d.ts.map +1 -1
  133. package/data/build/dist/client/git-management.js +46 -27
  134. package/data/build/dist/client/git-management.js.map +1 -1
  135. package/data/build/dist/client/locale.d.ts.map +1 -1
  136. package/data/build/dist/client/locale.js +10 -0
  137. package/data/build/dist/client/locale.js.map +1 -1
  138. package/data/build/dist/client/locales/assistantAvatar.d.ts +1 -1
  139. package/data/build/dist/client/locales/assistantAvatar.js +2 -2
  140. package/data/build/dist/client/locales/assistantAvatar.js.map +1 -1
  141. package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -1
  142. package/data/build/dist/client/locales/fileWorkspace.js +2 -0
  143. package/data/build/dist/client/locales/fileWorkspace.js.map +1 -1
  144. package/data/build/dist/client/locales/peerHost.d.ts.map +1 -1
  145. package/data/build/dist/client/locales/peerHost.js +4 -0
  146. package/data/build/dist/client/locales/peerHost.js.map +1 -1
  147. package/data/build/dist/client/locales/peerHostWorkspace.js +2 -2
  148. package/data/build/dist/client/locales/peerHostWorkspace.js.map +1 -1
  149. package/data/build/dist/client/locales/usage.d.ts.map +1 -1
  150. package/data/build/dist/client/locales/usage.js +4 -0
  151. package/data/build/dist/client/locales/usage.js.map +1 -1
  152. package/data/build/dist/client/model-catalog-cache.d.ts.map +1 -1
  153. package/data/build/dist/client/model-catalog-cache.js +9 -2
  154. package/data/build/dist/client/model-catalog-cache.js.map +1 -1
  155. package/data/build/dist/client/peer-host-management-api.d.ts +2 -2
  156. package/data/build/dist/client/peer-host-management-api.d.ts.map +1 -1
  157. package/data/build/dist/client/peer-host-management-api.js +8 -5
  158. package/data/build/dist/client/peer-host-management-api.js.map +1 -1
  159. package/data/build/dist/client/provider-icon-assets.js +5 -39
  160. package/data/build/dist/client/provider-icon-assets.js.map +1 -1
  161. package/data/build/dist/client/provider-icon-bridge.d.ts +6 -0
  162. package/data/build/dist/client/provider-icon-bridge.d.ts.map +1 -0
  163. package/data/build/dist/client/provider-icon-bridge.js +65 -0
  164. package/data/build/dist/client/provider-icon-bridge.js.map +1 -0
  165. package/data/build/dist/client/provider-icons.d.ts +1 -0
  166. package/data/build/dist/client/provider-icons.d.ts.map +1 -1
  167. package/data/build/dist/client/provider-icons.js +2 -1
  168. package/data/build/dist/client/provider-icons.js.map +1 -1
  169. package/data/build/dist/client/remote-web-context.d.ts +2 -0
  170. package/data/build/dist/client/remote-web-context.d.ts.map +1 -1
  171. package/data/build/dist/client/remote-web-context.js +50 -2
  172. package/data/build/dist/client/remote-web-context.js.map +1 -1
  173. package/data/build/dist/client/rpc-call.d.ts +4 -0
  174. package/data/build/dist/client/rpc-call.d.ts.map +1 -0
  175. package/data/build/dist/client/rpc-call.js +23 -0
  176. package/data/build/dist/client/rpc-call.js.map +1 -0
  177. package/data/build/dist/client/serial-polling.d.ts +15 -0
  178. package/data/build/dist/client/serial-polling.d.ts.map +1 -0
  179. package/data/build/dist/client/serial-polling.js +48 -0
  180. package/data/build/dist/client/serial-polling.js.map +1 -0
  181. package/data/build/dist/client/session-adapter-cache.d.ts.map +1 -1
  182. package/data/build/dist/client/session-adapter-cache.js +11 -1
  183. package/data/build/dist/client/session-adapter-cache.js.map +1 -1
  184. package/data/build/dist/client/settings-section.js +8 -2
  185. package/data/build/dist/client/settings-section.js.map +1 -1
  186. package/data/build/dist/client/sherpa-voice-adapter.d.ts.map +1 -1
  187. package/data/build/dist/client/sherpa-voice-adapter.js +8 -8
  188. package/data/build/dist/client/sherpa-voice-adapter.js.map +1 -1
  189. package/data/build/dist/client/subscription-slot.d.ts +11 -0
  190. package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
  191. package/data/build/dist/client/subscription-slot.js +42 -15
  192. package/data/build/dist/client/subscription-slot.js.map +1 -1
  193. package/data/build/dist/client/terminal/xterm-engine.d.ts +4 -0
  194. package/data/build/dist/client/terminal/xterm-engine.d.ts.map +1 -0
  195. package/data/build/dist/client/terminal/xterm-engine.js +5 -0
  196. package/data/build/dist/client/terminal/xterm-engine.js.map +1 -0
  197. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  198. package/data/build/dist/client/terminal/xterm-view.js +33 -25
  199. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  200. package/data/build/dist/host/avatar/temporary-previews.d.ts +3 -1
  201. package/data/build/dist/host/avatar/temporary-previews.d.ts.map +1 -1
  202. package/data/build/dist/host/avatar/temporary-previews.js +7 -2
  203. package/data/build/dist/host/avatar/temporary-previews.js.map +1 -1
  204. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +1 -1
  205. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -1
  206. package/data/build/dist/host/cli-adapters/acp-cli-driver.js +3 -10
  207. package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
  208. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts.map +1 -1
  209. package/data/build/dist/host/cli-adapters/antigravity-driver.js +2 -2
  210. package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
  211. package/data/build/dist/host/cli-adapters/antigravity-subscription.d.ts.map +1 -1
  212. package/data/build/dist/host/cli-adapters/antigravity-subscription.js +10 -10
  213. package/data/build/dist/host/cli-adapters/antigravity-subscription.js.map +1 -1
  214. package/data/build/dist/host/cli-adapters/binary-detection.d.ts +19 -0
  215. package/data/build/dist/host/cli-adapters/binary-detection.d.ts.map +1 -0
  216. package/data/build/dist/host/cli-adapters/binary-detection.js +71 -0
  217. package/data/build/dist/host/cli-adapters/binary-detection.js.map +1 -0
  218. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +2 -0
  219. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  220. package/data/build/dist/host/cli-adapters/claude-driver.js +11 -5
  221. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  222. package/data/build/dist/host/cli-adapters/claude-model-options.d.ts.map +1 -1
  223. package/data/build/dist/host/cli-adapters/claude-model-options.js +2 -1
  224. package/data/build/dist/host/cli-adapters/claude-model-options.js.map +1 -1
  225. package/data/build/dist/host/cli-adapters/claude-process.d.ts +7 -0
  226. package/data/build/dist/host/cli-adapters/claude-process.d.ts.map +1 -0
  227. package/data/build/dist/host/cli-adapters/claude-process.js +59 -0
  228. package/data/build/dist/host/cli-adapters/claude-process.js.map +1 -0
  229. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts +3 -0
  230. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -1
  231. package/data/build/dist/host/cli-adapters/codebuddy-driver.js +26 -12
  232. package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
  233. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts +0 -1
  234. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  235. package/data/build/dist/host/cli-adapters/command-code-driver.js +10 -32
  236. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  237. package/data/build/dist/host/cli-adapters/cursor-driver.d.ts.map +1 -1
  238. package/data/build/dist/host/cli-adapters/cursor-driver.js +4 -3
  239. package/data/build/dist/host/cli-adapters/cursor-driver.js.map +1 -1
  240. package/data/build/dist/host/cli-adapters/delegate-dispatch.js +1 -1
  241. package/data/build/dist/host/cli-adapters/delegate-dispatch.js.map +1 -1
  242. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.d.ts +2 -0
  243. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.d.ts.map +1 -1
  244. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js +5 -0
  245. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js.map +1 -1
  246. package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts.map +1 -1
  247. package/data/build/dist/host/cli-adapters/desktop-app-runtime.js +2 -4
  248. package/data/build/dist/host/cli-adapters/desktop-app-runtime.js.map +1 -1
  249. package/data/build/dist/host/cli-adapters/doubao-app.d.ts +27 -0
  250. package/data/build/dist/host/cli-adapters/doubao-app.d.ts.map +1 -0
  251. package/data/build/dist/host/cli-adapters/doubao-app.js +110 -0
  252. package/data/build/dist/host/cli-adapters/doubao-app.js.map +1 -0
  253. package/data/build/dist/host/cli-adapters/doubao-artifact-store.d.ts +16 -0
  254. package/data/build/dist/host/cli-adapters/doubao-artifact-store.d.ts.map +1 -0
  255. package/data/build/dist/host/cli-adapters/doubao-artifact-store.js +142 -0
  256. package/data/build/dist/host/cli-adapters/doubao-artifact-store.js.map +1 -0
  257. package/data/build/dist/host/cli-adapters/doubao-artifacts.d.ts +16 -0
  258. package/data/build/dist/host/cli-adapters/doubao-artifacts.d.ts.map +1 -0
  259. package/data/build/dist/host/cli-adapters/doubao-artifacts.js +34 -0
  260. package/data/build/dist/host/cli-adapters/doubao-artifacts.js.map +1 -0
  261. package/data/build/dist/host/cli-adapters/doubao-cdp.d.ts +49 -0
  262. package/data/build/dist/host/cli-adapters/doubao-cdp.d.ts.map +1 -0
  263. package/data/build/dist/host/cli-adapters/doubao-cdp.js +177 -0
  264. package/data/build/dist/host/cli-adapters/doubao-cdp.js.map +1 -0
  265. package/data/build/dist/host/cli-adapters/doubao-driver.d.ts +33 -0
  266. package/data/build/dist/host/cli-adapters/doubao-driver.d.ts.map +1 -0
  267. package/data/build/dist/host/cli-adapters/doubao-driver.js +291 -0
  268. package/data/build/dist/host/cli-adapters/doubao-driver.js.map +1 -0
  269. package/data/build/dist/host/cli-adapters/doubao-events.d.ts +21 -0
  270. package/data/build/dist/host/cli-adapters/doubao-events.d.ts.map +1 -0
  271. package/data/build/dist/host/cli-adapters/doubao-events.js +126 -0
  272. package/data/build/dist/host/cli-adapters/doubao-events.js.map +1 -0
  273. package/data/build/dist/host/cli-adapters/doubao-runtime.d.ts +6 -0
  274. package/data/build/dist/host/cli-adapters/doubao-runtime.d.ts.map +1 -0
  275. package/data/build/dist/host/cli-adapters/doubao-runtime.js +176 -0
  276. package/data/build/dist/host/cli-adapters/doubao-runtime.js.map +1 -0
  277. package/data/build/dist/host/cli-adapters/doubao-tools.d.ts +8 -0
  278. package/data/build/dist/host/cli-adapters/doubao-tools.d.ts.map +1 -0
  279. package/data/build/dist/host/cli-adapters/doubao-tools.js +139 -0
  280. package/data/build/dist/host/cli-adapters/doubao-tools.js.map +1 -0
  281. package/data/build/dist/host/cli-adapters/driver.d.ts +4 -3
  282. package/data/build/dist/host/cli-adapters/driver.d.ts.map +1 -1
  283. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  284. package/data/build/dist/host/cli-adapters/feature.js +30 -36
  285. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  286. package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
  287. package/data/build/dist/host/cli-adapters/grok-driver.js +2 -1
  288. package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
  289. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  290. package/data/build/dist/host/cli-adapters/json-rpc-process.js +3 -1
  291. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  292. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
  293. package/data/build/dist/host/cli-adapters/kimi-driver.js +4 -3
  294. package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
  295. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts +2 -0
  296. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts.map +1 -1
  297. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js +11 -0
  298. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js.map +1 -1
  299. package/data/build/dist/host/cli-adapters/log-files.d.ts +3 -0
  300. package/data/build/dist/host/cli-adapters/log-files.d.ts.map +1 -0
  301. package/data/build/dist/host/cli-adapters/log-files.js +32 -0
  302. package/data/build/dist/host/cli-adapters/log-files.js.map +1 -0
  303. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +2 -0
  304. package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
  305. package/data/build/dist/host/cli-adapters/model-catalog.js +10 -0
  306. package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
  307. package/data/build/dist/host/cli-adapters/native-team-subagent.js +1 -1
  308. package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
  309. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +11 -0
  310. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
  311. package/data/build/dist/host/cli-adapters/opencode-driver.js +132 -49
  312. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  313. package/data/build/dist/host/cli-adapters/opencode-v2-protocol.d.ts +29 -0
  314. package/data/build/dist/host/cli-adapters/opencode-v2-protocol.d.ts.map +1 -0
  315. package/data/build/dist/host/cli-adapters/opencode-v2-protocol.js +471 -0
  316. package/data/build/dist/host/cli-adapters/opencode-v2-protocol.js.map +1 -0
  317. package/data/build/dist/host/cli-adapters/pi-driver.d.ts.map +1 -1
  318. package/data/build/dist/host/cli-adapters/pi-driver.js +2 -1
  319. package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
  320. package/data/build/dist/host/cli-adapters/process-utils.d.ts +12 -4
  321. package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
  322. package/data/build/dist/host/cli-adapters/process-utils.js +151 -17
  323. package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
  324. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts.map +1 -1
  325. package/data/build/dist/host/cli-adapters/qoder-driver.js +63 -100
  326. package/data/build/dist/host/cli-adapters/qoder-driver.js.map +1 -1
  327. package/data/build/dist/host/cli-adapters/qoder-subscription.d.ts +6 -1
  328. package/data/build/dist/host/cli-adapters/qoder-subscription.d.ts.map +1 -1
  329. package/data/build/dist/host/cli-adapters/qoder-subscription.js +37 -10
  330. package/data/build/dist/host/cli-adapters/qoder-subscription.js.map +1 -1
  331. package/data/build/dist/host/cli-adapters/registry.d.ts +13 -21
  332. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  333. package/data/build/dist/host/cli-adapters/registry.js +102 -131
  334. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  335. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts +2 -10
  336. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts.map +1 -1
  337. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +1 -28
  338. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js.map +1 -1
  339. package/data/build/dist/host/cli-adapters/session-store.d.ts +5 -1
  340. package/data/build/dist/host/cli-adapters/session-store.d.ts.map +1 -1
  341. package/data/build/dist/host/cli-adapters/session-store.js +68 -11
  342. package/data/build/dist/host/cli-adapters/session-store.js.map +1 -1
  343. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +3 -3
  344. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  345. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +14 -38
  346. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  347. package/data/build/dist/host/cli-adapters/windows-command-environment.d.ts +12 -0
  348. package/data/build/dist/host/cli-adapters/windows-command-environment.d.ts.map +1 -0
  349. package/data/build/dist/host/cli-adapters/windows-command-environment.js +53 -0
  350. package/data/build/dist/host/cli-adapters/windows-command-environment.js.map +1 -0
  351. package/data/build/dist/host/cli-bridge/dispatch.js +1 -1
  352. package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -1
  353. package/data/build/dist/host/debug.d.ts.map +1 -1
  354. package/data/build/dist/host/debug.js +5 -4
  355. package/data/build/dist/host/debug.js.map +1 -1
  356. package/data/build/dist/host/dsh-runtime-version.d.ts +1 -1
  357. package/data/build/dist/host/dsh-runtime-version.d.ts.map +1 -1
  358. package/data/build/dist/host/dsh-runtime-version.js +22 -17
  359. package/data/build/dist/host/dsh-runtime-version.js.map +1 -1
  360. package/data/build/dist/host/features/assistant-avatar-runtime.d.ts.map +1 -1
  361. package/data/build/dist/host/features/assistant-avatar-runtime.js +43 -19
  362. package/data/build/dist/host/features/assistant-avatar-runtime.js.map +1 -1
  363. package/data/build/dist/host/features/assistant-background.d.ts +44 -0
  364. package/data/build/dist/host/features/assistant-background.d.ts.map +1 -0
  365. package/data/build/dist/host/features/assistant-background.js +116 -0
  366. package/data/build/dist/host/features/assistant-background.js.map +1 -0
  367. package/data/build/dist/host/features/assistant-index-updates.d.ts +5 -0
  368. package/data/build/dist/host/features/assistant-index-updates.d.ts.map +1 -1
  369. package/data/build/dist/host/features/assistant-index-updates.js +29 -6
  370. package/data/build/dist/host/features/assistant-index-updates.js.map +1 -1
  371. package/data/build/dist/host/features/assistant-source-cache.d.ts +12 -0
  372. package/data/build/dist/host/features/assistant-source-cache.d.ts.map +1 -0
  373. package/data/build/dist/host/features/assistant-source-cache.js +58 -0
  374. package/data/build/dist/host/features/assistant-source-cache.js.map +1 -0
  375. package/data/build/dist/host/features/global-voice-coordinator.d.ts.map +1 -1
  376. package/data/build/dist/host/features/global-voice-coordinator.js +15 -10
  377. package/data/build/dist/host/features/global-voice-coordinator.js.map +1 -1
  378. package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -1
  379. package/data/build/dist/host/features/global-voice-rpc.js +288 -114
  380. package/data/build/dist/host/features/global-voice-rpc.js.map +1 -1
  381. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  382. package/data/build/dist/host/features/peer-host.js +61 -21
  383. package/data/build/dist/host/features/peer-host.js.map +1 -1
  384. package/data/build/dist/host/features/sherpa-voice-worker.d.ts +18 -0
  385. package/data/build/dist/host/features/sherpa-voice-worker.d.ts.map +1 -0
  386. package/data/build/dist/host/features/sherpa-voice-worker.js +40 -0
  387. package/data/build/dist/host/features/sherpa-voice-worker.js.map +1 -0
  388. package/data/build/dist/host/features/sherpa-worker-runtime.d.ts +41 -0
  389. package/data/build/dist/host/features/sherpa-worker-runtime.d.ts.map +1 -0
  390. package/data/build/dist/host/features/sherpa-worker-runtime.js +200 -0
  391. package/data/build/dist/host/features/sherpa-worker-runtime.js.map +1 -0
  392. package/data/build/dist/host/features/types.d.ts +6 -4
  393. package/data/build/dist/host/features/types.d.ts.map +1 -1
  394. package/data/build/dist/host/index.d.ts +1 -1
  395. package/data/build/dist/host/index.d.ts.map +1 -1
  396. package/data/build/dist/host/index.js +31 -21
  397. package/data/build/dist/host/index.js.map +1 -1
  398. package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
  399. package/data/build/dist/host/lan-access-dsh.js +5 -22
  400. package/data/build/dist/host/lan-access-dsh.js.map +1 -1
  401. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts +6 -46
  402. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts.map +1 -1
  403. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js +48 -28
  404. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js.map +1 -1
  405. package/data/build/dist/host/modules/peer-host/peer-host-diagnostics.d.ts.map +1 -1
  406. package/data/build/dist/host/modules/peer-host/peer-host-diagnostics.js +1 -0
  407. package/data/build/dist/host/modules/peer-host/peer-host-diagnostics.js.map +1 -1
  408. package/data/build/dist/host/modules/peer-host/peer-host-handshake.d.ts.map +1 -1
  409. package/data/build/dist/host/modules/peer-host/peer-host-handshake.js +4 -1
  410. package/data/build/dist/host/modules/peer-host/peer-host-handshake.js.map +1 -1
  411. package/data/build/dist/host/modules/peer-host/peer-host-session.d.ts +7 -1
  412. package/data/build/dist/host/modules/peer-host/peer-host-session.d.ts.map +1 -1
  413. package/data/build/dist/host/modules/peer-host/peer-host-session.js +40 -13
  414. package/data/build/dist/host/modules/peer-host/peer-host-session.js.map +1 -1
  415. package/data/build/dist/host/provider-icon-assets.d.ts +5 -0
  416. package/data/build/dist/host/provider-icon-assets.d.ts.map +1 -0
  417. package/data/build/dist/host/provider-icon-assets.js +61 -0
  418. package/data/build/dist/host/provider-icon-assets.js.map +1 -0
  419. package/data/build/dist/host/rpc.js +2 -2
  420. package/data/build/dist/host/rpc.js.map +1 -1
  421. package/data/build/dist/host/session-migration-repair.d.ts +4 -0
  422. package/data/build/dist/host/session-migration-repair.d.ts.map +1 -1
  423. package/data/build/dist/host/session-migration-repair.js +75 -2
  424. package/data/build/dist/host/session-migration-repair.js.map +1 -1
  425. package/data/build/dist/host/terminal/backends/tmux-backend.d.ts +1 -1
  426. package/data/build/dist/host/terminal/backends/tmux-backend.d.ts.map +1 -1
  427. package/data/build/dist/host/terminal/backends/tmux-backend.js +15 -14
  428. package/data/build/dist/host/terminal/backends/tmux-backend.js.map +1 -1
  429. package/data/build/dist/shared/assistant-avatar-engine.d.ts +5 -0
  430. package/data/build/dist/shared/assistant-avatar-engine.d.ts.map +1 -1
  431. package/data/build/dist/shared/assistant-avatar-engine.js +14 -0
  432. package/data/build/dist/shared/assistant-avatar-engine.js.map +1 -1
  433. package/data/build/dist/shared/contracts/cli-adapter.d.ts +6 -0
  434. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  435. package/data/build/dist/shared/contracts/errors.d.ts +1 -0
  436. package/data/build/dist/shared/contracts/errors.d.ts.map +1 -1
  437. package/data/build/dist/shared/contracts/errors.js +1 -0
  438. package/data/build/dist/shared/contracts/errors.js.map +1 -1
  439. package/data/build/dist/shared/contracts/peer-host.d.ts +1 -0
  440. package/data/build/dist/shared/contracts/peer-host.d.ts.map +1 -1
  441. package/data/build/dist/shared/contracts/peer-host.js +1 -0
  442. package/data/build/dist/shared/contracts/peer-host.js.map +1 -1
  443. package/data/build/dist/shared/contracts/version.d.ts +3 -1
  444. package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
  445. package/data/build/dist/shared/contracts/version.js +20 -7
  446. package/data/build/dist/shared/contracts/version.js.map +1 -1
  447. package/data/build/dist/shared/peer-host-http-routes.d.ts +62 -0
  448. package/data/build/dist/shared/peer-host-http-routes.d.ts.map +1 -0
  449. package/data/build/dist/shared/peer-host-http-routes.js +31 -0
  450. package/data/build/dist/shared/peer-host-http-routes.js.map +1 -0
  451. package/data/build/dist/shared/provider-icon-resources.d.ts +4 -0
  452. package/data/build/dist/shared/provider-icon-resources.d.ts.map +1 -0
  453. package/data/build/dist/shared/provider-icon-resources.js +24 -0
  454. package/data/build/dist/shared/provider-icon-resources.js.map +1 -0
  455. package/package.json +2 -2
  456. package/profile/README.md +2 -2
  457. package/profile/package.json +2 -2
  458. package/profile/version.json +1 -1
  459. package/version.json +1 -1
@@ -0,0 +1,177 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { installDoubaoRuntime } from './doubao-runtime.js';
3
+ /** 仅接受当前配置的回环端口,防止 discovery 将登录态桥接到另一个服务。 */
4
+ export function doubaoBackgroundSocket(targets, port) {
5
+ if (!Array.isArray(targets))
6
+ throw new Error('豆包调试目标列表无效');
7
+ const matches = targets.filter((target) => target?.url === 'doubao://doubao-background/' || target?.url === 'chrome://doubao-background/');
8
+ if (matches.length !== 1)
9
+ throw new Error('未找到唯一的豆包原生后台页;请检查 App 版本,不会改用前台窗口');
10
+ const url = new URL(String(matches[0].webSocketDebuggerUrl));
11
+ if (url.protocol !== 'ws:' || url.hostname !== '127.0.0.1' || url.port !== String(port)
12
+ || url.username || url.password || !url.pathname.startsWith('/devtools/page/'))
13
+ throw new Error('豆包调试地址不属于配置的本机端口');
14
+ return url.href;
15
+ }
16
+ /** CDP 仅负责豆包后台页请求,生命周期限定在单轮调用。 */
17
+ export class DoubaoCdp {
18
+ socket;
19
+ timeoutMs;
20
+ sequence = 0;
21
+ pending = new Map();
22
+ constructor(socket, timeoutMs) {
23
+ this.socket = socket;
24
+ this.timeoutMs = timeoutMs;
25
+ socket.addEventListener('message', ({ data }) => {
26
+ let message;
27
+ try {
28
+ message = JSON.parse(String(data));
29
+ }
30
+ catch {
31
+ this.fail(new Error('豆包 CDP 响应不是有效 JSON'));
32
+ return;
33
+ }
34
+ const request = this.pending.get(message.id);
35
+ if (!request)
36
+ return;
37
+ clearTimeout(request.timer);
38
+ this.pending.delete(message.id);
39
+ if (message.error)
40
+ request.reject(new Error('豆包 CDP 请求失败'));
41
+ else
42
+ request.resolve(message.result);
43
+ });
44
+ socket.addEventListener('close', () => this.fail(new Error('豆包调试连接已关闭;本轮不会自动重发')));
45
+ socket.addEventListener('error', () => this.fail(new Error('豆包调试连接异常')));
46
+ }
47
+ static async connect(url, timeoutMs = 45_000) {
48
+ const socket = new WebSocket(url);
49
+ await new Promise((resolve, reject) => {
50
+ const timer = setTimeout(() => { cleanup(); socket.close(); reject(new Error('连接豆包调试端口超时')); }, Math.min(timeoutMs, 5_000));
51
+ const cleanup = () => { clearTimeout(timer); socket.removeEventListener('open', opened); socket.removeEventListener('error', failed); };
52
+ const opened = () => { cleanup(); resolve(); };
53
+ const failed = () => { cleanup(); socket.close(); reject(new Error('无法连接豆包调试端口')); };
54
+ socket.addEventListener('open', opened);
55
+ socket.addEventListener('error', failed);
56
+ });
57
+ return new DoubaoCdp(socket, timeoutMs);
58
+ }
59
+ request(method, params) {
60
+ if (this.socket.readyState !== WebSocket.OPEN)
61
+ return Promise.reject(new Error('豆包调试连接不可用'));
62
+ const id = ++this.sequence;
63
+ return new Promise((resolve, reject) => {
64
+ const timer = setTimeout(() => {
65
+ this.pending.delete(id);
66
+ reject(new Error('豆包后台请求超时;本轮不会自动重发'));
67
+ }, this.timeoutMs);
68
+ this.pending.set(id, { resolve, reject, timer });
69
+ try {
70
+ this.socket.send(JSON.stringify({ id, method, params }));
71
+ }
72
+ catch {
73
+ clearTimeout(timer);
74
+ this.pending.delete(id);
75
+ reject(new Error('豆包调试请求发送失败'));
76
+ }
77
+ });
78
+ }
79
+ async evaluate(expression) {
80
+ const result = await this.request('Runtime.evaluate', { expression, awaitPromise: true, returnByValue: true, userGesture: false });
81
+ if (result.exceptionDetails) {
82
+ // 不暴露 App 异常栈、签名 URL 或请求参数,只提取自有错误码。
83
+ const code = String(result.exceptionDetails.exception?.description ?? '').match(/DOUBAO_[A-Z_0-9]+/u)?.[0];
84
+ throw new Error(`豆包后台接口不可用${code ? `(${code})` : ',请检查登录状态和网络'}`);
85
+ }
86
+ return result.result?.value;
87
+ }
88
+ fail(error) {
89
+ for (const request of this.pending.values()) {
90
+ clearTimeout(request.timer);
91
+ request.reject(error);
92
+ }
93
+ this.pending.clear();
94
+ }
95
+ close() { this.fail(new Error('豆包调试连接已释放')); this.socket.close(); }
96
+ }
97
+ export class DoubaoCdpBridge {
98
+ cdp;
99
+ key = `__codingns_doubao_${randomUUID().replaceAll('-', '')}`;
100
+ closed = false;
101
+ constructor(cdp) {
102
+ this.cdp = cdp;
103
+ }
104
+ static async open(socket) {
105
+ const bridge = new DoubaoCdpBridge(await DoubaoCdp.connect(socket));
106
+ try {
107
+ await bridge.cdp.evaluate(`(${installDoubaoRuntime.toString()})(${JSON.stringify(bridge.key)})`);
108
+ return bridge;
109
+ }
110
+ catch (error) {
111
+ await bridge.close();
112
+ throw error;
113
+ }
114
+ }
115
+ call(method, ...args) {
116
+ return this.cdp.evaluate(`globalThis[${JSON.stringify(this.key)}].${method}(...${JSON.stringify(args)})`);
117
+ }
118
+ create(name) { return this.call('create', name); }
119
+ history(id) { return this.call('history', id); }
120
+ stop(id, reply) { return this.call('stop', id, reply); }
121
+ async cancel() { if (!this.closed)
122
+ await this.call('cancel'); }
123
+ /** 下载地址仅来自本轮文件块;App 侧再次限制来源且不携带登录凭据。 */
124
+ async download(url, maxBytes) {
125
+ const response = await this.call('download', url, maxBytes);
126
+ if (response.status !== 200) {
127
+ await this.cancel();
128
+ throw new Error(`豆包产物下载失败(HTTP ${response.status})`);
129
+ }
130
+ return this.response(response.mime);
131
+ }
132
+ fetch = async (input, init = {}) => {
133
+ if (String(input) !== 'https://www.doubao.com/chat/completion' || init.method !== 'POST' || typeof init.body !== 'string') {
134
+ throw new Error('豆包后台桥只接受对话请求');
135
+ }
136
+ const response = await this.call('start', JSON.parse(init.body));
137
+ if (response.status !== 200 || !response.mime.includes('text/event-stream')) {
138
+ await this.cancel();
139
+ throw new Error(`豆包未返回对话流(HTTP ${response.status});请检查登录状态和模式权限`);
140
+ }
141
+ return this.response(response.mime);
142
+ };
143
+ response(mime) {
144
+ const body = new ReadableStream({
145
+ pull: async (controller) => {
146
+ try {
147
+ const chunk = await this.call('read');
148
+ if (chunk === null)
149
+ controller.close();
150
+ else
151
+ controller.enqueue(Uint8Array.from(chunk));
152
+ }
153
+ catch (error) {
154
+ controller.error(error);
155
+ }
156
+ },
157
+ cancel: () => this.cancel(),
158
+ }, { highWaterMark: 0 });
159
+ return new Response(body, { status: 200, headers: { 'content-type': mime } });
160
+ }
161
+ async close() {
162
+ if (this.closed)
163
+ return;
164
+ this.closed = true;
165
+ // 清理请求有独立上限;即使目标已崩溃,也必须及时释放 Host 连接。
166
+ let timer;
167
+ try {
168
+ await Promise.race([this.call('dispose'), new Promise((resolve) => { timer = setTimeout(resolve, 1_000); })]);
169
+ }
170
+ catch { /* App 关闭后无需继续清理页面变量。 */ }
171
+ finally {
172
+ clearTimeout(timer);
173
+ this.cdp.close();
174
+ }
175
+ }
176
+ }
177
+ //# sourceMappingURL=doubao-cdp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao-cdp.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/doubao-cdp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { CodingNsAgentEvent, CodingNsCliTurnInput } from '../../shared/contracts/cli-adapter.js';
2
+ import type { CodingNsCliDriver, CodingNsCliSessionProbeInput, CodingNsCliSessionProbeResult } from './driver.js';
3
+ import { type DoubaoAppConnection } from './doubao-app.js';
4
+ import type { DoubaoConversation } from './doubao-cdp.js';
5
+ import { DOUBAO_CATALOG } from './model-catalog.js';
6
+ /** 产品档位并非可任意选择的基础模型;旧默认值仅映射到快速模式。 */
7
+ export declare function doubaoMode(input: CodingNsCliTurnInput): number;
8
+ /** 请求内只放任务内容;认证参数由 App 内桥接补齐。 */
9
+ export declare function doubaoRequest(conversation: DoubaoConversation, prompt: string, mode: number): Record<string, unknown>;
10
+ export declare class DoubaoAppDriver implements CodingNsCliDriver {
11
+ private readonly app;
12
+ readonly descriptor: {
13
+ readonly id: "doubao";
14
+ readonly name: "豆包 App";
15
+ readonly protocol: "http-sse";
16
+ readonly capabilities: readonly ["models", "stream", "resume", "reasoning", "tool-events", "interrupt"];
17
+ };
18
+ private readonly runs;
19
+ private readonly conversations;
20
+ private diagnostic;
21
+ constructor(app?: DoubaoAppConnection);
22
+ detect(): ReturnType<DoubaoAppConnection['detect']>;
23
+ getDiscoveryDiagnostic(): string | undefined;
24
+ listModels(): Promise<typeof DOUBAO_CATALOG>;
25
+ probeSession(input: CodingNsCliSessionProbeInput): Promise<CodingNsCliSessionProbeResult>;
26
+ executeTurn(input: CodingNsCliTurnInput): AsyncIterable<CodingNsAgentEvent>;
27
+ private saveArtifacts;
28
+ private requestCancel;
29
+ private stopIfReady;
30
+ interrupt(sessionId: string): Promise<void>;
31
+ dispose(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=doubao-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao-driver.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/doubao-driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACrG,OAAO,KAAK,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AACjH,OAAO,EAAa,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAmBnD,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAc9D;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBrH;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IAM3C,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,QAAQ,CAAC,UAAU;;;;;MACwF;IAC3G,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,UAAU,CAAoB;gBACT,GAAG,GAAE,mBAAqC;IAEjE,MAAM,IAAI,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAIzD,sBAAsB,IAAI,MAAM,GAAG,SAAS;IACtC,UAAU,IAAI,OAAO,CAAC,OAAO,cAAc,CAAC;IAE5C,YAAY,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAgBxF,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,aAAa,CAAC,kBAAkB,CAAC;YAwEnE,aAAa;YA6Bd,aAAa;YAwBb,WAAW;IAkBnB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -0,0 +1,291 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { DoubaoApp } from './doubao-app.js';
3
+ import { DoubaoEventProjector } from './doubao-events.js';
4
+ import { HttpSseClient } from './http-sse-client.js';
5
+ import { DOUBAO_CATALOG } from './model-catalog.js';
6
+ import { doubaoArtifactDirectory, doubaoArtifactName, saveDoubaoArtifact } from './doubao-artifact-store.js';
7
+ /** 产品档位并非可任意选择的基础模型;旧默认值仅映射到快速模式。 */
8
+ export function doubaoMode(input) {
9
+ if (input.attachments?.length)
10
+ throw new Error('豆包 App 适配器暂不支持附件上传');
11
+ if (input.plan || input.forkSession || input.enableAskUserQuestion || input.skillPaths?.length)
12
+ throw new Error('豆包 App 暂不支持计划、fork、原生提问或 Skill 注入');
13
+ // 模型选择器用 default 显式清除上一个模型的档位;它不是自定义能力请求。
14
+ // 保留 Host 的清空语义,仅在豆包边界拒绝实际指定的非默认值。
15
+ const effort = input.effortId?.trim();
16
+ const serviceTier = input.serviceTierId?.trim();
17
+ if (effort && effort !== 'default')
18
+ throw new Error('豆包 App 不支持独立思考强度,请使用默认值并选择快速、专家或工作任务');
19
+ if (serviceTier && serviceTier !== 'default')
20
+ throw new Error('豆包 App 不支持自定义服务档位,请使用默认值');
21
+ if (Object.keys(input.runtimeEnv ?? {}).length)
22
+ throw new Error('豆包 App 不支持运行环境注入');
23
+ const modes = { 'provider-default': 0, 'doubao-fast': 0, 'doubao-expert': 3, 'doubao-work': 4 };
24
+ const mode = modes[input.modelId ?? 'doubao-fast'];
25
+ if (mode === undefined)
26
+ throw new Error('未知豆包产品档位,请选择快速、专家或工作任务');
27
+ return mode;
28
+ }
29
+ /** 请求内只放任务内容;认证参数由 App 内桥接补齐。 */
30
+ export function doubaoRequest(conversation, prompt, mode) {
31
+ const localId = randomUUID();
32
+ return {
33
+ client_meta: { local_conversation_id: '', conversation_id: conversation.id, last_section_id: conversation.section, last_message_index: conversation.index },
34
+ messages: [{ local_message_id: localId, content_block: [{ block_type: 10000, block_id: randomUUID(), parent_id: '',
35
+ content: { text_block: { text: prompt, icon_url: '', icon_url_dark: '', summary: '' }, pc_event_block: '' }, meta_info: [], append_fields: [] }], message_status: 0 }],
36
+ option: { send_message_scene: '', create_time_ms: Date.now(), collect_id: '', is_audio: false, answer_with_suggest: false,
37
+ tts_switch: false, need_deep_think: mode, click_clear_context: false, from_suggest: false, is_regen: false,
38
+ is_replace: false, is_from_click_option: false, disable_sse_cache: false, select_text_action: '', is_select_text: false,
39
+ resend_for_regen: false, scene_type: 0, unique_key: randomUUID(), start_seq: 0, need_create_conversation: false,
40
+ conversation_init_option: { need_ack_conversation: true }, regen_query_id: [], edit_query_id: [], regen_instruction: '',
41
+ no_replace_for_regen: false, message_from: 0, shared_app_name: '', shared_app_id: '', sse_recv_event_options: { support_chunk_delta: true },
42
+ is_ai_playground: false, is_old_user: true, recovery_option: { is_recovery: false, req_create_time_sec: Math.floor(Date.now() / 1000), append_sse_event_scene: 0 },
43
+ message_storage_type: 0, ...(mode === 4 ? { general_task_param: { action: 0, thread_local_message_id: [localId] } } : {}) },
44
+ ext: { use_deep_think: String(mode), collection_id: '', commerce_credit_config_enable: '0' },
45
+ };
46
+ }
47
+ export class DoubaoAppDriver {
48
+ app;
49
+ descriptor = { id: 'doubao', name: '豆包 App', protocol: 'http-sse',
50
+ capabilities: ['models', 'stream', 'resume', 'reasoning', 'tool-events', 'interrupt'] };
51
+ runs = new Map();
52
+ conversations = new Set();
53
+ diagnostic;
54
+ constructor(app = new DoubaoApp()) {
55
+ this.app = app;
56
+ }
57
+ async detect() {
58
+ try {
59
+ const result = await this.app.detect();
60
+ this.diagnostic = result.installed ? undefined : '未找到豆包 App;Windows 可指定安装路径或先开启调试端口';
61
+ return result;
62
+ }
63
+ catch (error) {
64
+ this.diagnostic = error instanceof Error ? error.message : '豆包 App 检测失败';
65
+ return { installed: false, version: null, command: null };
66
+ }
67
+ }
68
+ getDiscoveryDiagnostic() { return this.diagnostic; }
69
+ async listModels() { return DOUBAO_CATALOG; }
70
+ async probeSession(input) {
71
+ if (!input.providerSessionId)
72
+ return { state: 'unknown', reason: '尚未绑定豆包会话' };
73
+ if (!/^\d+$/u.test(input.providerSessionId))
74
+ return { state: 'corrupt', reason: '豆包会话标识格式无效' };
75
+ let bridge;
76
+ const abort = () => { void bridge?.close(); };
77
+ input.signal?.addEventListener('abort', abort, { once: true });
78
+ try {
79
+ bridge = await this.app.connect(false, input.signal);
80
+ input.signal?.throwIfAborted();
81
+ const info = await bridge.history(input.providerSessionId);
82
+ return info.found ? { state: 'available', reason: '豆包已返回该会话的消息记录' }
83
+ : { state: 'unknown', reason: '豆包未返回消息,不能据此断言会话不存在' };
84
+ }
85
+ catch (error) {
86
+ return { state: 'unreachable', reason: error instanceof Error ? error.message : '无法读取豆包会话' };
87
+ }
88
+ finally {
89
+ input.signal?.removeEventListener('abort', abort);
90
+ await bridge?.close();
91
+ }
92
+ }
93
+ async *executeTurn(input) {
94
+ const mode = doubaoMode(input);
95
+ if (this.runs.has(input.sessionId))
96
+ throw new Error('该豆包会话已有运行中的回合');
97
+ if (input.providerSessionId && !/^\d+$/u.test(input.providerSessionId))
98
+ throw new Error('豆包会话标识格式无效');
99
+ if (!input.prompt.trim())
100
+ throw new Error('豆包消息不能为空');
101
+ const run = { mode, sent: false, cancelRequested: false, cancelled: false, saving: new AbortController() };
102
+ this.runs.set(input.sessionId, run);
103
+ const abort = () => { void this.requestCancel(run).catch((error) => { run.cancelError = error instanceof Error ? error : new Error('豆包取消失败'); }); };
104
+ input.signal?.addEventListener('abort', abort, { once: true });
105
+ let lockedId;
106
+ try {
107
+ if (input.signal?.aborted) {
108
+ run.cancelRequested = true;
109
+ run.cancelled = true;
110
+ return yield { type: 'finish', reason: 'cancel' };
111
+ }
112
+ run.bridge = await this.app.connect(true, input.signal);
113
+ if (run.cancelRequested) {
114
+ run.cancelled = true;
115
+ return yield { type: 'finish', reason: 'cancel' };
116
+ }
117
+ if (input.providerSessionId) {
118
+ if (this.conversations.has(input.providerSessionId))
119
+ throw new Error('同一个豆包原始会话已被另一回合占用');
120
+ lockedId = input.providerSessionId;
121
+ this.conversations.add(lockedId);
122
+ run.conversation = await run.bridge.history(lockedId);
123
+ // SSE 关闭早于历史落库;短暂只读等待,避免刚结束的回答被误判为仍在运行。
124
+ for (let attempt = 0; run.conversation.busy && attempt < 6 && !run.cancelRequested; attempt += 1) {
125
+ await new Promise((resolve) => setTimeout(resolve, 300));
126
+ run.conversation = await run.bridge.history(lockedId);
127
+ }
128
+ if (!run.conversation.found)
129
+ throw new Error('豆包会话没有可恢复消息;不会自动改用其他会话或重发历史');
130
+ if (run.conversation.busy)
131
+ throw new Error('豆包会话仍有未结束回答,请在 App 中确认状态后再继续');
132
+ }
133
+ else {
134
+ run.conversation = await run.bridge.create(`CodingNS ${input.sessionId.slice(0, 40)}`);
135
+ if (typeof run.conversation.id !== 'string' || !/^\d+$/u.test(run.conversation.id))
136
+ throw new Error('豆包没有返回有效的新会话标识');
137
+ if (this.conversations.has(run.conversation.id))
138
+ throw new Error('豆包返回了正在使用的会话,拒绝发送');
139
+ lockedId = run.conversation.id;
140
+ this.conversations.add(lockedId);
141
+ }
142
+ const conversation = run.conversation;
143
+ if (!/^\d+$/u.test(conversation.id) || !/^\d+$/u.test(conversation.section) || !Number.isSafeInteger(conversation.index))
144
+ throw new Error('豆包会话元数据不完整,未发送消息');
145
+ if (input.providerSessionId && conversation.id !== input.providerSessionId)
146
+ throw new Error('豆包历史会话标识不匹配');
147
+ yield { type: 'session-binding', providerSessionId: conversation.id };
148
+ if (run.cancelRequested) {
149
+ run.cancelled = true;
150
+ return yield { type: 'finish', reason: 'cancel' };
151
+ }
152
+ run.projector = new DoubaoEventProjector(conversation.id);
153
+ const client = new HttpSseClient({ fetch: run.bridge.fetch });
154
+ run.sent = true;
155
+ const prompt = mode === 4 ? `${input.prompt}\n\n交付约定:任务需要文件时,请在云端生成并交付可下载的文件产物。适配器会在任务结束后将产物保存到当前项目根目录下的 Doubao 目录;不要仅回复代码或云端路径,也不要声称已经操作本机文件。` : input.prompt;
156
+ for await (const frame of client.sse('https://www.doubao.com/chat/completion', { method: 'POST', body: JSON.stringify(doubaoRequest(conversation, prompt, mode)) })) {
157
+ for (const event of run.projector.accept(frame))
158
+ yield event;
159
+ if (run.cancelRequested)
160
+ await this.stopIfReady(run);
161
+ if (run.cancelled || run.cancelError)
162
+ break;
163
+ }
164
+ if (run.cancelError)
165
+ throw run.cancelError;
166
+ if (!run.cancelled && (!run.projector.acknowledged || !run.projector.ended))
167
+ throw new Error('豆包流提前关闭,云端状态尚未确认;本轮不会自动重发');
168
+ run.cloudFinished = true;
169
+ if (!run.cancelled)
170
+ yield* this.saveArtifacts(run, input);
171
+ run.finished = true;
172
+ yield { type: 'finish', reason: run.cancelled ? 'cancel' : 'stop' };
173
+ }
174
+ catch (error) {
175
+ run.finished = true;
176
+ yield run.cancelled ? { type: 'finish', reason: 'cancel' } : { type: 'finish', reason: 'error', failure: {
177
+ message: run.cancelError?.message ?? (error instanceof Error ? error.message : '豆包调用失败'),
178
+ code: run.cloudFinished ? 'DOUBAO_ARTIFACT_SAVE_FAILED' : 'DOUBAO_TURN_FAILED'
179
+ } };
180
+ }
181
+ finally {
182
+ input.signal?.removeEventListener('abort', abort);
183
+ clearTimeout(run.timer);
184
+ // 消费方提前丢弃迭代器时尽力停止普通回答;工作任务不能假称已停止。
185
+ if (run.sent && !run.projector?.ended && !run.cancelled && mode !== 4) {
186
+ run.cancelRequested = true;
187
+ try {
188
+ await this.stopIfReady(run);
189
+ }
190
+ catch { /* 原错误已经由终态报告。 */ }
191
+ }
192
+ await run.bridge?.close();
193
+ if (lockedId)
194
+ this.conversations.delete(lockedId);
195
+ this.runs.delete(input.sessionId);
196
+ }
197
+ }
198
+ async *saveArtifacts(run, input) {
199
+ const artifacts = run.projector.artifacts.list();
200
+ if (!artifacts.length)
201
+ return;
202
+ const root = await doubaoArtifactDirectory(input);
203
+ let failures = 0;
204
+ for (const artifact of artifacts) {
205
+ if (run.cancelled)
206
+ break;
207
+ const callId = `doubao-save-${artifact.id}`;
208
+ const toolName = '保存豆包产物';
209
+ const name = doubaoArtifactName(artifact.name);
210
+ // 只公开目标目录和安全文件名;签名地址不得进入事件和原生工具历史。
211
+ yield { type: 'tool-event', callId, toolName, status: 'started', input: JSON.stringify({ directory: root, file: name }), detail: '下载并保存到当前项目的 Doubao 目录' };
212
+ try {
213
+ const saved = await saveDoubaoArtifact(run.bridge, artifact, root, run.saving.signal);
214
+ yield { type: 'tool-event', callId, toolName, status: 'completed', output: JSON.stringify(saved), outputMode: 'snapshot' };
215
+ const label = pathLabel(saved.path);
216
+ yield { type: 'text-delta', text: `\n\n已保存到项目的 Doubao 目录:[${label}](<${saved.path.replaceAll('%', '%25').replaceAll('<', '%3C').replaceAll('>', '%3E')}>)(${saved.size} 字节)。` };
217
+ }
218
+ catch (error) {
219
+ const message = run.cancelled ? '已取消本地下载;云端任务已完成,未发布不完整文件'
220
+ : error instanceof Error ? error.message : '豆包产物保存失败,请在豆包 App 下载';
221
+ yield { type: 'tool-event', callId, toolName, status: 'failed', error: message, output: message, outputMode: 'snapshot' };
222
+ if (run.cancelled)
223
+ break;
224
+ failures++;
225
+ yield { type: 'text-delta', text: `\n\n产物「${name}」未保存:${message}。` };
226
+ }
227
+ }
228
+ if (failures)
229
+ throw new Error(`豆包云端任务已完成,但 ${failures} 个产物未保存;已成功保存的文件保留,失败详情见保存工具记录,请在豆包 App 下载`);
230
+ }
231
+ async requestCancel(run) {
232
+ if (run.cancelled || run.finished)
233
+ return;
234
+ if (run.cloudFinished) {
235
+ run.cancelRequested = true;
236
+ run.cancelled = true;
237
+ run.saving.abort();
238
+ await run.bridge?.cancel();
239
+ return;
240
+ }
241
+ if (run.mode === 4 && run.sent) {
242
+ const error = new Error('已停止接收豆包工作任务;云端工具可能继续,请到豆包 App 确认并停止任务');
243
+ run.cancelError = error;
244
+ await run.bridge?.cancel();
245
+ throw error;
246
+ }
247
+ run.cancelRequested = true;
248
+ if (!run.sent)
249
+ return;
250
+ run.timer ??= setTimeout(() => {
251
+ run.cancelError = new Error('未能确认豆包普通回答已停止;请在 App 中核实,本轮不会重发');
252
+ void run.bridge?.cancel().catch(() => undefined);
253
+ }, 10_000);
254
+ await this.stopIfReady(run);
255
+ }
256
+ async stopIfReady(run) {
257
+ if (!run.bridge || !run.conversation || !run.projector?.replyId || !run.cancelRequested)
258
+ return;
259
+ const bridge = run.bridge;
260
+ const id = run.conversation.id;
261
+ const reply = run.projector.replyId;
262
+ run.stopping ??= (async () => {
263
+ await bridge.stop(id, reply);
264
+ run.cancelled = true;
265
+ clearTimeout(run.timer);
266
+ await bridge.cancel();
267
+ })();
268
+ try {
269
+ await run.stopping;
270
+ }
271
+ catch (error) {
272
+ run.cancelError = error instanceof Error ? error : new Error('豆包停止失败');
273
+ await bridge.cancel();
274
+ throw run.cancelError;
275
+ }
276
+ }
277
+ async interrupt(sessionId) { const run = this.runs.get(sessionId); if (run)
278
+ await this.requestCancel(run); }
279
+ async dispose() {
280
+ await Promise.allSettled([...this.runs.values()].map(async (run) => { try {
281
+ await this.requestCancel(run);
282
+ }
283
+ finally {
284
+ await run.bridge?.close();
285
+ } }));
286
+ }
287
+ }
288
+ function pathLabel(value) {
289
+ return value.replaceAll('\\', '/').split('/').at(-1).replace(/[\[\]\\]/gu, '\\$&');
290
+ }
291
+ //# sourceMappingURL=doubao-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao-driver.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/doubao-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CodingNsAgentEvent } from '../../shared/contracts/cli-adapter.js';
2
+ import type { SseEvent } from './http-sse-client.js';
3
+ import { DoubaoArtifactCollector } from './doubao-artifacts.js';
4
+ /** 每个回合一个投影器;只处理白名单字段,绝不把原始响应作为工具输出。 */
5
+ export declare class DoubaoEventProjector {
6
+ private readonly conversationId;
7
+ private readonly blocks;
8
+ private readonly tools;
9
+ readonly artifacts: DoubaoArtifactCollector;
10
+ private currentBlock;
11
+ private emitted;
12
+ replyId: string | undefined;
13
+ acknowledged: boolean;
14
+ ended: boolean;
15
+ constructor(conversationId: string);
16
+ accept(event: SseEvent): CodingNsAgentEvent[];
17
+ private applyBlock;
18
+ private isReasoning;
19
+ private projectText;
20
+ }
21
+ //# sourceMappingURL=doubao-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao-events.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/doubao-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAU/D,wCAAwC;AACxC,qBAAa,oBAAoB;IAUnB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAT3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;IAClD,QAAQ,CAAC,SAAS,0BAAgC;IAClD,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,YAAY,UAAQ;IACpB,KAAK,UAAQ;gBAEgB,cAAc,EAAE,MAAM;IAEnD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,kBAAkB,EAAE;IAmC7C,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;CAgBpB"}