@jingyi0605/codingns4dsh 0.2.1-beta.5 → 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 (301) hide show
  1. package/README.en.md +112 -161
  2. package/README.md +106 -263
  3. package/assets/provider-icons/doubao.png +0 -0
  4. package/data/build/dist/client/avatar/catalog-panel.d.ts +1 -1
  5. package/data/build/dist/client/avatar/catalog-panel.d.ts.map +1 -1
  6. package/data/build/dist/client/avatar/catalog-panel.js +13 -11
  7. package/data/build/dist/client/avatar/catalog-panel.js.map +1 -1
  8. package/data/build/dist/client/avatar/engine.d.ts.map +1 -1
  9. package/data/build/dist/client/avatar/engine.js +26 -7
  10. package/data/build/dist/client/avatar/engine.js.map +1 -1
  11. package/data/build/dist/client/avatar/manager.d.ts.map +1 -1
  12. package/data/build/dist/client/avatar/manager.js +5 -1
  13. package/data/build/dist/client/avatar/manager.js.map +1 -1
  14. package/data/build/dist/client/avatar/slot.d.ts.map +1 -1
  15. package/data/build/dist/client/avatar/slot.js +4 -1
  16. package/data/build/dist/client/avatar/slot.js.map +1 -1
  17. package/data/build/dist/client/bundle.js +49155 -99509
  18. package/data/build/dist/client/bundle.js.map +1 -1
  19. package/data/build/dist/client/cli-catalog.d.ts +2 -0
  20. package/data/build/dist/client/cli-catalog.d.ts.map +1 -1
  21. package/data/build/dist/client/cli-catalog.js +8 -0
  22. package/data/build/dist/client/cli-catalog.js.map +1 -1
  23. package/data/build/dist/client/cli-slots.js +2 -2
  24. package/data/build/dist/client/cli-slots.js.map +1 -1
  25. package/data/build/dist/client/client.assistant-configuration-view.js +4526 -0
  26. package/data/build/dist/client/client.assistant-configuration-view.js.map +1 -0
  27. package/data/build/dist/client/client.assistant-debug-workbench.js +764 -0
  28. package/data/build/dist/client/client.assistant-debug-workbench.js.map +1 -0
  29. package/data/build/dist/client/client.assistant-prompt-editor.js +76 -0
  30. package/data/build/dist/client/client.assistant-prompt-editor.js.map +1 -0
  31. package/data/build/dist/client/client.assistant-prompts.js +44 -0
  32. package/data/build/dist/client/client.assistant-prompts.js.map +1 -0
  33. package/data/build/dist/client/client.assistant-voice-sessions.js +144 -0
  34. package/data/build/dist/client/client.assistant-voice-sessions.js.map +1 -0
  35. package/data/build/dist/client/client.assistant-workbench.js +2929 -0
  36. package/data/build/dist/client/client.assistant-workbench.js.map +1 -0
  37. package/data/build/dist/client/client.delegate-command.js +1315 -0
  38. package/data/build/dist/client/client.delegate-command.js.map +1 -0
  39. package/data/build/dist/client/client.editor-engine.js +32486 -0
  40. package/data/build/dist/client/client.editor-engine.js.map +1 -0
  41. package/data/build/dist/client/client.manager.js +3454 -0
  42. package/data/build/dist/client/client.manager.js.map +1 -0
  43. package/data/build/dist/client/client.model-catalog-cache.js +543 -0
  44. package/data/build/dist/client/client.model-catalog-cache.js.map +1 -0
  45. package/data/build/dist/client/client.native-workspace-store.js +689 -0
  46. package/data/build/dist/client/client.native-workspace-store.js.map +1 -0
  47. package/data/build/dist/client/client.primitives-adapter.js +333 -0
  48. package/data/build/dist/client/client.primitives-adapter.js.map +1 -0
  49. package/data/build/dist/client/client.react-dom.js +7286 -0
  50. package/data/build/dist/client/client.react-dom.js.map +1 -0
  51. package/data/build/dist/client/client.rolldown-runtime.js +59 -0
  52. package/data/build/dist/client/client.theme.js +386 -0
  53. package/data/build/dist/client/client.theme.js.map +1 -0
  54. package/data/build/dist/client/client.transport.js +3323 -0
  55. package/data/build/dist/client/client.transport.js.map +1 -0
  56. package/data/build/dist/client/client.xterm-engine.js +13064 -0
  57. package/data/build/dist/client/client.xterm-engine.js.map +1 -0
  58. package/data/build/dist/client/editor-engine.d.ts +4 -0
  59. package/data/build/dist/client/editor-engine.d.ts.map +1 -0
  60. package/data/build/dist/client/editor-engine.js +50 -0
  61. package/data/build/dist/client/editor-engine.js.map +1 -0
  62. package/data/build/dist/client/engine-loader.d.ts +5 -0
  63. package/data/build/dist/client/engine-loader.d.ts.map +1 -0
  64. package/data/build/dist/client/engine-loader.js +35 -0
  65. package/data/build/dist/client/engine-loader.js.map +1 -0
  66. package/data/build/dist/client/features/assistant-configuration-loader.d.ts +14 -0
  67. package/data/build/dist/client/features/assistant-configuration-loader.d.ts.map +1 -0
  68. package/data/build/dist/client/features/assistant-configuration-loader.js +13 -0
  69. package/data/build/dist/client/features/assistant-configuration-loader.js.map +1 -0
  70. package/data/build/dist/client/features/assistant-configuration-session.d.ts.map +1 -1
  71. package/data/build/dist/client/features/assistant-configuration-session.js +13 -4
  72. package/data/build/dist/client/features/assistant-configuration-session.js.map +1 -1
  73. package/data/build/dist/client/features/assistant-configuration-view.d.ts +66 -0
  74. package/data/build/dist/client/features/assistant-configuration-view.d.ts.map +1 -0
  75. package/data/build/dist/client/features/assistant-configuration-view.js +133 -0
  76. package/data/build/dist/client/features/assistant-configuration-view.js.map +1 -0
  77. package/data/build/dist/client/features/assistant-debug-workbench.d.ts +4 -11
  78. package/data/build/dist/client/features/assistant-debug-workbench.d.ts.map +1 -1
  79. package/data/build/dist/client/features/assistant-debug-workbench.js +41 -68
  80. package/data/build/dist/client/features/assistant-debug-workbench.js.map +1 -1
  81. package/data/build/dist/client/features/assistant-display-store.d.ts +57 -0
  82. package/data/build/dist/client/features/assistant-display-store.d.ts.map +1 -0
  83. package/data/build/dist/client/features/assistant-display-store.js +189 -0
  84. package/data/build/dist/client/features/assistant-display-store.js.map +1 -0
  85. package/data/build/dist/client/features/assistant-prompt-editor.d.ts +12 -0
  86. package/data/build/dist/client/features/assistant-prompt-editor.d.ts.map +1 -0
  87. package/data/build/dist/client/features/assistant-prompt-editor.js +14 -0
  88. package/data/build/dist/client/features/assistant-prompt-editor.js.map +1 -0
  89. package/data/build/dist/client/features/assistant-view-loader.d.ts +17 -0
  90. package/data/build/dist/client/features/assistant-view-loader.d.ts.map +1 -0
  91. package/data/build/dist/client/features/assistant-view-loader.js +49 -0
  92. package/data/build/dist/client/features/assistant-view-loader.js.map +1 -0
  93. package/data/build/dist/client/features/assistant-workbench.d.ts +1 -60
  94. package/data/build/dist/client/features/assistant-workbench.d.ts.map +1 -1
  95. package/data/build/dist/client/features/assistant-workbench.js +41 -169
  96. package/data/build/dist/client/features/assistant-workbench.js.map +1 -1
  97. package/data/build/dist/client/features/cli-adapters.js +3 -7
  98. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  99. package/data/build/dist/client/features/global-voice-assistant.d.ts.map +1 -1
  100. package/data/build/dist/client/features/global-voice-assistant.js +21 -20
  101. package/data/build/dist/client/features/global-voice-assistant.js.map +1 -1
  102. package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
  103. package/data/build/dist/client/features/peer-host.js +14 -25
  104. package/data/build/dist/client/features/peer-host.js.map +1 -1
  105. package/data/build/dist/client/file-management-dom.d.ts +3 -1
  106. package/data/build/dist/client/file-management-dom.d.ts.map +1 -1
  107. package/data/build/dist/client/file-management-dom.js +85 -79
  108. package/data/build/dist/client/file-management-dom.js.map +1 -1
  109. package/data/build/dist/client/locales/assistantAvatar.d.ts +1 -1
  110. package/data/build/dist/client/locales/assistantAvatar.js +2 -2
  111. package/data/build/dist/client/locales/assistantAvatar.js.map +1 -1
  112. package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -1
  113. package/data/build/dist/client/locales/fileWorkspace.js +2 -0
  114. package/data/build/dist/client/locales/fileWorkspace.js.map +1 -1
  115. package/data/build/dist/client/peer-host-management-api.d.ts +2 -2
  116. package/data/build/dist/client/peer-host-management-api.d.ts.map +1 -1
  117. package/data/build/dist/client/peer-host-management-api.js +8 -5
  118. package/data/build/dist/client/peer-host-management-api.js.map +1 -1
  119. package/data/build/dist/client/provider-icon-assets.js +5 -39
  120. package/data/build/dist/client/provider-icon-assets.js.map +1 -1
  121. package/data/build/dist/client/provider-icon-bridge.d.ts +6 -0
  122. package/data/build/dist/client/provider-icon-bridge.d.ts.map +1 -0
  123. package/data/build/dist/client/provider-icon-bridge.js +65 -0
  124. package/data/build/dist/client/provider-icon-bridge.js.map +1 -0
  125. package/data/build/dist/client/provider-icons.d.ts +1 -0
  126. package/data/build/dist/client/provider-icons.d.ts.map +1 -1
  127. package/data/build/dist/client/provider-icons.js +2 -1
  128. package/data/build/dist/client/provider-icons.js.map +1 -1
  129. package/data/build/dist/client/remote-web-context.d.ts +2 -0
  130. package/data/build/dist/client/remote-web-context.d.ts.map +1 -1
  131. package/data/build/dist/client/remote-web-context.js +50 -2
  132. package/data/build/dist/client/remote-web-context.js.map +1 -1
  133. package/data/build/dist/client/serial-polling.d.ts +3 -1
  134. package/data/build/dist/client/serial-polling.d.ts.map +1 -1
  135. package/data/build/dist/client/serial-polling.js +10 -3
  136. package/data/build/dist/client/serial-polling.js.map +1 -1
  137. package/data/build/dist/client/settings-section.js +8 -2
  138. package/data/build/dist/client/settings-section.js.map +1 -1
  139. package/data/build/dist/client/terminal/xterm-engine.d.ts +4 -0
  140. package/data/build/dist/client/terminal/xterm-engine.d.ts.map +1 -0
  141. package/data/build/dist/client/terminal/xterm-engine.js +5 -0
  142. package/data/build/dist/client/terminal/xterm-engine.js.map +1 -0
  143. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  144. package/data/build/dist/client/terminal/xterm-view.js +33 -25
  145. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  146. package/data/build/dist/host/avatar/temporary-previews.d.ts +3 -1
  147. package/data/build/dist/host/avatar/temporary-previews.d.ts.map +1 -1
  148. package/data/build/dist/host/avatar/temporary-previews.js +7 -2
  149. package/data/build/dist/host/avatar/temporary-previews.js.map +1 -1
  150. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts.map +1 -1
  151. package/data/build/dist/host/cli-adapters/antigravity-driver.js +2 -2
  152. package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
  153. package/data/build/dist/host/cli-adapters/binary-detection.d.ts +19 -0
  154. package/data/build/dist/host/cli-adapters/binary-detection.d.ts.map +1 -0
  155. package/data/build/dist/host/cli-adapters/binary-detection.js +71 -0
  156. package/data/build/dist/host/cli-adapters/binary-detection.js.map +1 -0
  157. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +2 -0
  158. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  159. package/data/build/dist/host/cli-adapters/claude-driver.js +4 -0
  160. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  161. package/data/build/dist/host/cli-adapters/claude-model-options.d.ts.map +1 -1
  162. package/data/build/dist/host/cli-adapters/claude-model-options.js +2 -1
  163. package/data/build/dist/host/cli-adapters/claude-model-options.js.map +1 -1
  164. package/data/build/dist/host/cli-adapters/claude-process.d.ts +7 -0
  165. package/data/build/dist/host/cli-adapters/claude-process.d.ts.map +1 -0
  166. package/data/build/dist/host/cli-adapters/claude-process.js +59 -0
  167. package/data/build/dist/host/cli-adapters/claude-process.js.map +1 -0
  168. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts +3 -0
  169. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -1
  170. package/data/build/dist/host/cli-adapters/codebuddy-driver.js +18 -5
  171. package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -1
  172. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts +0 -1
  173. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  174. package/data/build/dist/host/cli-adapters/command-code-driver.js +6 -29
  175. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  176. package/data/build/dist/host/cli-adapters/doubao-app.d.ts +27 -0
  177. package/data/build/dist/host/cli-adapters/doubao-app.d.ts.map +1 -0
  178. package/data/build/dist/host/cli-adapters/doubao-app.js +110 -0
  179. package/data/build/dist/host/cli-adapters/doubao-app.js.map +1 -0
  180. package/data/build/dist/host/cli-adapters/doubao-artifact-store.d.ts +16 -0
  181. package/data/build/dist/host/cli-adapters/doubao-artifact-store.d.ts.map +1 -0
  182. package/data/build/dist/host/cli-adapters/doubao-artifact-store.js +142 -0
  183. package/data/build/dist/host/cli-adapters/doubao-artifact-store.js.map +1 -0
  184. package/data/build/dist/host/cli-adapters/doubao-artifacts.d.ts +16 -0
  185. package/data/build/dist/host/cli-adapters/doubao-artifacts.d.ts.map +1 -0
  186. package/data/build/dist/host/cli-adapters/doubao-artifacts.js +34 -0
  187. package/data/build/dist/host/cli-adapters/doubao-artifacts.js.map +1 -0
  188. package/data/build/dist/host/cli-adapters/doubao-cdp.d.ts +49 -0
  189. package/data/build/dist/host/cli-adapters/doubao-cdp.d.ts.map +1 -0
  190. package/data/build/dist/host/cli-adapters/doubao-cdp.js +177 -0
  191. package/data/build/dist/host/cli-adapters/doubao-cdp.js.map +1 -0
  192. package/data/build/dist/host/cli-adapters/doubao-driver.d.ts +33 -0
  193. package/data/build/dist/host/cli-adapters/doubao-driver.d.ts.map +1 -0
  194. package/data/build/dist/host/cli-adapters/doubao-driver.js +291 -0
  195. package/data/build/dist/host/cli-adapters/doubao-driver.js.map +1 -0
  196. package/data/build/dist/host/cli-adapters/doubao-events.d.ts +21 -0
  197. package/data/build/dist/host/cli-adapters/doubao-events.d.ts.map +1 -0
  198. package/data/build/dist/host/cli-adapters/doubao-events.js +126 -0
  199. package/data/build/dist/host/cli-adapters/doubao-events.js.map +1 -0
  200. package/data/build/dist/host/cli-adapters/doubao-runtime.d.ts +6 -0
  201. package/data/build/dist/host/cli-adapters/doubao-runtime.d.ts.map +1 -0
  202. package/data/build/dist/host/cli-adapters/doubao-runtime.js +176 -0
  203. package/data/build/dist/host/cli-adapters/doubao-runtime.js.map +1 -0
  204. package/data/build/dist/host/cli-adapters/doubao-tools.d.ts +8 -0
  205. package/data/build/dist/host/cli-adapters/doubao-tools.d.ts.map +1 -0
  206. package/data/build/dist/host/cli-adapters/doubao-tools.js +139 -0
  207. package/data/build/dist/host/cli-adapters/doubao-tools.js.map +1 -0
  208. package/data/build/dist/host/cli-adapters/driver.d.ts +3 -2
  209. package/data/build/dist/host/cli-adapters/driver.d.ts.map +1 -1
  210. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  211. package/data/build/dist/host/cli-adapters/feature.js +2 -0
  212. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  213. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  214. package/data/build/dist/host/cli-adapters/json-rpc-process.js +3 -1
  215. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  216. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts.map +1 -1
  217. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js +1 -0
  218. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js.map +1 -1
  219. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +2 -0
  220. package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
  221. package/data/build/dist/host/cli-adapters/model-catalog.js +10 -0
  222. package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
  223. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +1 -0
  224. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
  225. package/data/build/dist/host/cli-adapters/opencode-driver.js +9 -28
  226. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  227. package/data/build/dist/host/cli-adapters/process-utils.d.ts +4 -2
  228. package/data/build/dist/host/cli-adapters/process-utils.d.ts.map +1 -1
  229. package/data/build/dist/host/cli-adapters/process-utils.js +64 -11
  230. package/data/build/dist/host/cli-adapters/process-utils.js.map +1 -1
  231. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts.map +1 -1
  232. package/data/build/dist/host/cli-adapters/qoder-driver.js +13 -33
  233. package/data/build/dist/host/cli-adapters/qoder-driver.js.map +1 -1
  234. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  235. package/data/build/dist/host/cli-adapters/registry.js +31 -4
  236. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  237. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts +2 -11
  238. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts.map +1 -1
  239. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +1 -28
  240. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js.map +1 -1
  241. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +3 -3
  242. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  243. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +12 -37
  244. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  245. package/data/build/dist/host/cli-adapters/windows-command-environment.d.ts +12 -0
  246. package/data/build/dist/host/cli-adapters/windows-command-environment.d.ts.map +1 -0
  247. package/data/build/dist/host/cli-adapters/windows-command-environment.js +53 -0
  248. package/data/build/dist/host/cli-adapters/windows-command-environment.js.map +1 -0
  249. package/data/build/dist/host/features/assistant-avatar-runtime.d.ts.map +1 -1
  250. package/data/build/dist/host/features/assistant-avatar-runtime.js +23 -14
  251. package/data/build/dist/host/features/assistant-avatar-runtime.js.map +1 -1
  252. package/data/build/dist/host/features/assistant-background.d.ts +44 -0
  253. package/data/build/dist/host/features/assistant-background.d.ts.map +1 -0
  254. package/data/build/dist/host/features/assistant-background.js +116 -0
  255. package/data/build/dist/host/features/assistant-background.js.map +1 -0
  256. package/data/build/dist/host/features/assistant-index-updates.d.ts +5 -0
  257. package/data/build/dist/host/features/assistant-index-updates.d.ts.map +1 -1
  258. package/data/build/dist/host/features/assistant-index-updates.js +29 -6
  259. package/data/build/dist/host/features/assistant-index-updates.js.map +1 -1
  260. package/data/build/dist/host/features/assistant-source-cache.d.ts +2 -2
  261. package/data/build/dist/host/features/assistant-source-cache.d.ts.map +1 -1
  262. package/data/build/dist/host/features/assistant-source-cache.js +4 -2
  263. package/data/build/dist/host/features/assistant-source-cache.js.map +1 -1
  264. package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -1
  265. package/data/build/dist/host/features/global-voice-rpc.js +269 -110
  266. package/data/build/dist/host/features/global-voice-rpc.js.map +1 -1
  267. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  268. package/data/build/dist/host/features/peer-host.js +61 -21
  269. package/data/build/dist/host/features/peer-host.js.map +1 -1
  270. package/data/build/dist/host/features/types.d.ts +6 -4
  271. package/data/build/dist/host/features/types.d.ts.map +1 -1
  272. package/data/build/dist/host/index.d.ts.map +1 -1
  273. package/data/build/dist/host/index.js +29 -19
  274. package/data/build/dist/host/index.js.map +1 -1
  275. package/data/build/dist/host/provider-icon-assets.d.ts +5 -0
  276. package/data/build/dist/host/provider-icon-assets.d.ts.map +1 -0
  277. package/data/build/dist/host/provider-icon-assets.js +61 -0
  278. package/data/build/dist/host/provider-icon-assets.js.map +1 -0
  279. package/data/build/dist/host/rpc.js +1 -1
  280. package/data/build/dist/host/rpc.js.map +1 -1
  281. package/data/build/dist/host/session-migration-repair.d.ts +4 -0
  282. package/data/build/dist/host/session-migration-repair.d.ts.map +1 -1
  283. package/data/build/dist/host/session-migration-repair.js +75 -2
  284. package/data/build/dist/host/session-migration-repair.js.map +1 -1
  285. package/data/build/dist/shared/assistant-avatar-engine.d.ts +2 -0
  286. package/data/build/dist/shared/assistant-avatar-engine.d.ts.map +1 -1
  287. package/data/build/dist/shared/assistant-avatar-engine.js +11 -1
  288. package/data/build/dist/shared/assistant-avatar-engine.js.map +1 -1
  289. package/data/build/dist/shared/contracts/cli-adapter.d.ts +3 -0
  290. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  291. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  292. package/data/build/dist/shared/contracts/version.js +1 -1
  293. package/data/build/dist/shared/provider-icon-resources.d.ts +4 -0
  294. package/data/build/dist/shared/provider-icon-resources.d.ts.map +1 -0
  295. package/data/build/dist/shared/provider-icon-resources.js +24 -0
  296. package/data/build/dist/shared/provider-icon-resources.js.map +1 -0
  297. package/package.json +2 -2
  298. package/profile/README.md +2 -2
  299. package/profile/package.json +2 -2
  300. package/profile/version.json +1 -1
  301. package/version.json +1 -1
@@ -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"}
@@ -0,0 +1,126 @@
1
+ import { DoubaoToolProjector } from './doubao-tools.js';
2
+ import { DoubaoArtifactCollector } from './doubao-artifacts.js';
3
+ const record = (value) => typeof value === 'object' && value !== null ? value : {};
4
+ /** 每个回合一个投影器;只处理白名单字段,绝不把原始响应作为工具输出。 */
5
+ export class DoubaoEventProjector {
6
+ conversationId;
7
+ blocks = new Map();
8
+ tools = new DoubaoToolProjector();
9
+ artifacts = new DoubaoArtifactCollector();
10
+ currentBlock;
11
+ emitted = { text: '', reasoning: '' };
12
+ replyId;
13
+ acknowledged = false;
14
+ ended = false;
15
+ constructor(conversationId) {
16
+ this.conversationId = conversationId;
17
+ }
18
+ accept(event) {
19
+ if (event.event === 'SSE_HEARTBEAT')
20
+ return [];
21
+ let data;
22
+ try {
23
+ data = record(JSON.parse(event.data));
24
+ }
25
+ catch {
26
+ throw new Error('豆包流事件格式不兼容');
27
+ }
28
+ if (event.event === 'STREAM_ERROR')
29
+ throw new Error(`豆包返回流错误(${Number(data.code ?? data.error_code) || '未知状态'})`);
30
+ if (event.event === 'SSE_ACK') {
31
+ if (data.ack_client_meta?.conversation_id !== this.conversationId)
32
+ throw new Error('豆包 ACK 会话不匹配,已停止接收,未改写绑定');
33
+ this.acknowledged = true;
34
+ return [];
35
+ }
36
+ if (!['STREAM_MSG_NOTIFY', 'STREAM_CHUNK', 'CHUNK_DELTA', 'SSE_REPLY_END'].includes(event.event ?? ''))
37
+ return [];
38
+ if (!this.acknowledged)
39
+ throw new Error('豆包未确认目标会话即返回正文');
40
+ if (typeof data.message_id === 'string')
41
+ this.replyId = data.message_id;
42
+ if (event.event === 'SSE_REPLY_END') {
43
+ if (typeof data.msg_finish_attr?.msgid === 'string')
44
+ this.replyId = data.msg_finish_attr.msgid;
45
+ if (data.end_type === 3)
46
+ this.ended = true;
47
+ return [];
48
+ }
49
+ // 工作任务可能在阶段结束之后继续输出;只有最后一段结束且连接关闭才算完成。
50
+ this.ended = false;
51
+ if (event.event === 'CHUNK_DELTA') {
52
+ if (!this.currentBlock || typeof data.text !== 'string')
53
+ throw new Error('豆包增量缺少所属文本块');
54
+ this.currentBlock.text += data.text;
55
+ return this.projectText();
56
+ }
57
+ const output = [];
58
+ const patches = event.event === 'STREAM_MSG_NOTIFY' ? [record(data.content)]
59
+ : (Array.isArray(data.patch_op) ? data.patch_op : []).map((op) => record(record(op).patch_value));
60
+ for (const patch of patches) {
61
+ for (const raw of Array.isArray(patch.content_block) ? patch.content_block : [])
62
+ output.push(...this.applyBlock(record(raw)));
63
+ }
64
+ output.push(...this.projectText());
65
+ return output;
66
+ }
67
+ applyBlock(raw) {
68
+ if (typeof raw.block_id !== 'string')
69
+ throw new Error('豆包内容块缺少标识');
70
+ if (raw.patch_type === 3) {
71
+ this.blocks.delete(raw.block_id);
72
+ this.artifacts.remove(raw.block_id);
73
+ this.currentBlock = undefined;
74
+ return this.tools.remove(raw.block_id);
75
+ }
76
+ const previous = this.blocks.get(raw.block_id);
77
+ const block = previous ?? { id: raw.block_id, type: Number(raw.block_type), parent: '', text: '' };
78
+ if (typeof raw.parent_id === 'string')
79
+ block.parent = raw.parent_id;
80
+ if (typeof raw.block_type === 'number')
81
+ block.type = raw.block_type;
82
+ if ([10023, 10041, 10043, 10066].includes(block.type))
83
+ throw new Error('豆包任务需要原生交互,请在豆包 App 中完成确认;本适配器尚不支持代答');
84
+ this.blocks.set(block.id, block);
85
+ this.artifacts.accept(block.id, block.type, raw.content, raw.patch_type === 2);
86
+ if (block.type === 10000) {
87
+ const text = raw.content?.text_block?.text;
88
+ if (typeof text === 'string')
89
+ block.text = raw.patch_type === 2 ? text : block.text + text;
90
+ this.currentBlock = block;
91
+ }
92
+ else
93
+ this.currentBlock = undefined;
94
+ return this.tools.accept(block.id, block.type, raw.content, raw.patch_type === 2, raw.is_finish === true);
95
+ }
96
+ isReasoning(block) {
97
+ const visited = new Set();
98
+ let parent = this.blocks.get(block.parent);
99
+ while (parent && !visited.has(parent.id)) {
100
+ if (parent.type === 10040)
101
+ return true;
102
+ visited.add(parent.id);
103
+ parent = this.blocks.get(parent.parent);
104
+ }
105
+ return false;
106
+ }
107
+ projectText() {
108
+ const values = { text: '', reasoning: '' };
109
+ for (const block of this.blocks.values()) {
110
+ if (block.type === 10000)
111
+ values[this.isReasoning(block) ? 'reasoning' : 'text'] += block.text;
112
+ }
113
+ const output = [];
114
+ for (const channel of ['reasoning', 'text']) {
115
+ const before = this.emitted[channel];
116
+ const after = values[channel];
117
+ if (before === after)
118
+ continue;
119
+ output.push(after.startsWith(before) ? { type: `${channel}-delta`, text: after.slice(before.length) }
120
+ : { type: `${channel}-snapshot`, text: after });
121
+ this.emitted[channel] = after;
122
+ }
123
+ return output;
124
+ }
125
+ }
126
+ //# sourceMappingURL=doubao-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao-events.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/doubao-events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAQ/D,MAAM,MAAM,GAAG,CAAC,KAAc,EAAuB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAA4B,CAAC,CAAC,CAAC,EAAE,CAAA;AAEvI,wCAAwC;AACxC,MAAM,OAAO,oBAAoB;IAUF;IATZ,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IACjC,KAAK,GAAG,IAAI,mBAAmB,EAAE,CAAA;IACzC,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAA;IAC1C,YAAY,CAAmB;IAC/B,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC7C,OAAO,CAAoB;IAC3B,YAAY,GAAG,KAAK,CAAA;IACpB,KAAK,GAAG,KAAK,CAAA;IAEb,YAA6B,cAAsB;QAAtB,mBAAc,GAAd,cAAc,CAAQ;IAAG,CAAC;IAEvD,MAAM,CAAC,KAAe;QACpB,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe;YAAE,OAAO,EAAE,CAAA;QAC9C,IAAI,IAAyB,CAAA;QAC7B,IAAI,CAAC;YAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QAAC,CAAC;QACrF,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,CAAC,CAAA;QACjH,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAC9G,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC,CAAC,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAAE,OAAO,EAAE,CAAA;QACjH,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACzD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;QACvE,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YACpC,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,KAAK,QAAQ;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAA;YAC9F,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAC1C,OAAO,EAAE,CAAA;QACX,CAAC;QACD,uCAAuC;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;YACvF,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;YACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;QAC3B,CAAC;QACD,MAAM,MAAM,GAAyB,EAAE,CAAA;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QAC5G,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/H,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAClC,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,UAAU,CAAC,GAAwB;QACzC,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;QAClE,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAAC,CAAC;QAC1K,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAU,QAAQ,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QACzG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;YAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAA;QACnE,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAA;QACnE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAC9G,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAA;QAC9E,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAA;YAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;YAC1F,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAC3B,CAAC;;YAAM,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAA;IAC3G,CAAC;IAEO,WAAW,CAAC,KAAY;QAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAA;YACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACtB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,WAAW;QACjB,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;QAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAA;QAChG,CAAC;QACD,MAAM,MAAM,GAAyB,EAAE,CAAA;QACvC,KAAK,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,MAAM,CAAU,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YAC7B,IAAI,MAAM,KAAK,KAAK;gBAAE,SAAQ;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACnG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QAC/B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 此函数只在豆包自己的隐藏页面执行。闭包必须自包含,以便通过 CDP 序列化;
3
+ * 私有模块只有结构特征,没有跨版本固定编号。凭据和公共参数始终留在 App。
4
+ */
5
+ export declare function installDoubaoRuntime(key: string): Promise<void>;
6
+ //# sourceMappingURL=doubao-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubao-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/doubao-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4IrE"}