@jingyi0605/codingns4dsh 0.2.0-beta.2 → 0.2.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/README.en.md +4 -4
  2. package/README.md +7 -5
  3. package/assets/provider-icons/minimax-code.svg +4 -0
  4. package/assets/provider-icons/zcode.svg +14 -0
  5. package/data/build/dist/client/account-bar.d.ts +2 -1
  6. package/data/build/dist/client/account-bar.d.ts.map +1 -1
  7. package/data/build/dist/client/account-bar.js +21 -16
  8. package/data/build/dist/client/account-bar.js.map +1 -1
  9. package/data/build/dist/client/bundle.js +4172 -1540
  10. package/data/build/dist/client/bundle.js.map +1 -1
  11. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  12. package/data/build/dist/client/cli-slots.js +20 -12
  13. package/data/build/dist/client/cli-slots.js.map +1 -1
  14. package/data/build/dist/client/debug/ui.d.ts +2 -1
  15. package/data/build/dist/client/debug/ui.d.ts.map +1 -1
  16. package/data/build/dist/client/debug/ui.js +39 -33
  17. package/data/build/dist/client/debug/ui.js.map +1 -1
  18. package/data/build/dist/client/delegate-command.d.ts +16 -0
  19. package/data/build/dist/client/delegate-command.d.ts.map +1 -0
  20. package/data/build/dist/client/delegate-command.js +138 -0
  21. package/data/build/dist/client/delegate-command.js.map +1 -0
  22. package/data/build/dist/client/delegate-plan.d.ts +31 -0
  23. package/data/build/dist/client/delegate-plan.d.ts.map +1 -0
  24. package/data/build/dist/client/delegate-plan.js +59 -0
  25. package/data/build/dist/client/delegate-plan.js.map +1 -0
  26. package/data/build/dist/client/delegate-ui-dom.d.ts +40 -0
  27. package/data/build/dist/client/delegate-ui-dom.d.ts.map +1 -0
  28. package/data/build/dist/client/delegate-ui-dom.js +363 -0
  29. package/data/build/dist/client/delegate-ui-dom.js.map +1 -0
  30. package/data/build/dist/client/external-tool-stream.d.ts.map +1 -1
  31. package/data/build/dist/client/external-tool-stream.js +44 -36
  32. package/data/build/dist/client/external-tool-stream.js.map +1 -1
  33. package/data/build/dist/client/features/cli-adapters.d.ts +7 -2
  34. package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
  35. package/data/build/dist/client/features/cli-adapters.js +52 -103
  36. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  37. package/data/build/dist/client/features/debug.d.ts.map +1 -1
  38. package/data/build/dist/client/features/debug.js +5 -3
  39. package/data/build/dist/client/features/debug.js.map +1 -1
  40. package/data/build/dist/client/features/file-management.d.ts.map +1 -1
  41. package/data/build/dist/client/features/file-management.js +7 -4
  42. package/data/build/dist/client/features/file-management.js.map +1 -1
  43. package/data/build/dist/client/features/lan-access-panel.js +10 -10
  44. package/data/build/dist/client/features/lan-access-panel.js.map +1 -1
  45. package/data/build/dist/client/features/lan-access.d.ts.map +1 -1
  46. package/data/build/dist/client/features/lan-access.js +8 -3
  47. package/data/build/dist/client/features/lan-access.js.map +1 -1
  48. package/data/build/dist/client/features/login-protection-panel.d.ts.map +1 -1
  49. package/data/build/dist/client/features/login-protection-panel.js +9 -7
  50. package/data/build/dist/client/features/login-protection-panel.js.map +1 -1
  51. package/data/build/dist/client/features/login-protection.js +2 -2
  52. package/data/build/dist/client/features/login-protection.js.map +1 -1
  53. package/data/build/dist/client/features/mobile-access.d.ts.map +1 -1
  54. package/data/build/dist/client/features/mobile-access.js +6 -2
  55. package/data/build/dist/client/features/mobile-access.js.map +1 -1
  56. package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
  57. package/data/build/dist/client/features/peer-host.js +115 -11
  58. package/data/build/dist/client/features/peer-host.js.map +1 -1
  59. package/data/build/dist/client/features/reverse-proxy.js +2 -2
  60. package/data/build/dist/client/features/reverse-proxy.js.map +1 -1
  61. package/data/build/dist/client/features/terminal-enhancement.js +2 -2
  62. package/data/build/dist/client/features/terminal-enhancement.js.map +1 -1
  63. package/data/build/dist/client/features/workspace-session-enhancement-panel.js +1 -1
  64. package/data/build/dist/client/features/workspace-session-enhancement-panel.js.map +1 -1
  65. package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
  66. package/data/build/dist/client/features/workspace-session-enhancement.js +8 -3
  67. package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
  68. package/data/build/dist/client/file-management-dom.d.ts +3 -0
  69. package/data/build/dist/client/file-management-dom.d.ts.map +1 -1
  70. package/data/build/dist/client/file-management-dom.js +41 -30
  71. package/data/build/dist/client/file-management-dom.js.map +1 -1
  72. package/data/build/dist/client/git-management.d.ts +2 -0
  73. package/data/build/dist/client/git-management.d.ts.map +1 -1
  74. package/data/build/dist/client/git-management.js +82 -74
  75. package/data/build/dist/client/git-management.js.map +1 -1
  76. package/data/build/dist/client/git-workspace-events.d.ts +7 -0
  77. package/data/build/dist/client/git-workspace-events.d.ts.map +1 -0
  78. package/data/build/dist/client/git-workspace-events.js +32 -0
  79. package/data/build/dist/client/git-workspace-events.js.map +1 -0
  80. package/data/build/dist/client/index.d.ts +2 -0
  81. package/data/build/dist/client/index.d.ts.map +1 -1
  82. package/data/build/dist/client/index.js +6 -5
  83. package/data/build/dist/client/index.js.map +1 -1
  84. package/data/build/dist/client/locale.d.ts +7 -0
  85. package/data/build/dist/client/locale.d.ts.map +1 -1
  86. package/data/build/dist/client/locale.js +80 -36
  87. package/data/build/dist/client/locale.js.map +1 -1
  88. package/data/build/dist/client/locales/debug.d.ts +9 -0
  89. package/data/build/dist/client/locales/debug.d.ts.map +1 -0
  90. package/data/build/dist/client/locales/debug.js +163 -0
  91. package/data/build/dist/client/locales/debug.js.map +1 -0
  92. package/data/build/dist/client/locales/fileWorkspace.d.ts +9 -0
  93. package/data/build/dist/client/locales/fileWorkspace.d.ts.map +1 -0
  94. package/data/build/dist/client/locales/fileWorkspace.js +139 -0
  95. package/data/build/dist/client/locales/fileWorkspace.js.map +1 -0
  96. package/data/build/dist/client/locales/git.d.ts +9 -0
  97. package/data/build/dist/client/locales/git.d.ts.map +1 -0
  98. package/data/build/dist/client/locales/git.js +223 -0
  99. package/data/build/dist/client/locales/git.js.map +1 -0
  100. package/data/build/dist/client/locales/panels.d.ts +9 -0
  101. package/data/build/dist/client/locales/panels.d.ts.map +1 -0
  102. package/data/build/dist/client/locales/panels.js +33 -0
  103. package/data/build/dist/client/locales/panels.js.map +1 -0
  104. package/data/build/dist/client/locales/peerHost.d.ts +9 -0
  105. package/data/build/dist/client/locales/peerHost.d.ts.map +1 -0
  106. package/data/build/dist/client/locales/peerHost.js +153 -0
  107. package/data/build/dist/client/locales/peerHost.js.map +1 -0
  108. package/data/build/dist/client/locales/peerHostWorkspace.d.ts +9 -0
  109. package/data/build/dist/client/locales/peerHostWorkspace.d.ts.map +1 -0
  110. package/data/build/dist/client/locales/peerHostWorkspace.js +69 -0
  111. package/data/build/dist/client/locales/peerHostWorkspace.js.map +1 -0
  112. package/data/build/dist/client/locales/terminalAuth.d.ts +9 -0
  113. package/data/build/dist/client/locales/terminalAuth.d.ts.map +1 -0
  114. package/data/build/dist/client/locales/terminalAuth.js +67 -0
  115. package/data/build/dist/client/locales/terminalAuth.js.map +1 -0
  116. package/data/build/dist/client/locales/usage.d.ts +9 -0
  117. package/data/build/dist/client/locales/usage.d.ts.map +1 -0
  118. package/data/build/dist/client/locales/usage.js +195 -0
  119. package/data/build/dist/client/locales/usage.js.map +1 -0
  120. package/data/build/dist/client/mobile-session-interaction.d.ts +44 -0
  121. package/data/build/dist/client/mobile-session-interaction.d.ts.map +1 -0
  122. package/data/build/dist/client/mobile-session-interaction.js +291 -0
  123. package/data/build/dist/client/mobile-session-interaction.js.map +1 -0
  124. package/data/build/dist/client/mobile-sidebar-rail-dom.d.ts +10 -2
  125. package/data/build/dist/client/mobile-sidebar-rail-dom.d.ts.map +1 -1
  126. package/data/build/dist/client/mobile-sidebar-rail-dom.js +14 -6
  127. package/data/build/dist/client/mobile-sidebar-rail-dom.js.map +1 -1
  128. package/data/build/dist/client/peer-host-connection-button.d.ts +14 -1
  129. package/data/build/dist/client/peer-host-connection-button.d.ts.map +1 -1
  130. package/data/build/dist/client/peer-host-connection-button.js +12 -4
  131. package/data/build/dist/client/peer-host-connection-button.js.map +1 -1
  132. package/data/build/dist/client/peer-host-management-panel.d.ts +3 -0
  133. package/data/build/dist/client/peer-host-management-panel.d.ts.map +1 -1
  134. package/data/build/dist/client/peer-host-management-panel.js +83 -79
  135. package/data/build/dist/client/peer-host-management-panel.js.map +1 -1
  136. package/data/build/dist/client/peer-host-native-projection.d.ts +1 -0
  137. package/data/build/dist/client/peer-host-native-projection.d.ts.map +1 -1
  138. package/data/build/dist/client/peer-host-native-projection.js +5 -0
  139. package/data/build/dist/client/peer-host-native-projection.js.map +1 -1
  140. package/data/build/dist/client/peer-host-scoped-client.js +5 -5
  141. package/data/build/dist/client/peer-host-scoped-client.js.map +1 -1
  142. package/data/build/dist/client/peer-host-workspace-tab.d.ts +8 -0
  143. package/data/build/dist/client/peer-host-workspace-tab.d.ts.map +1 -1
  144. package/data/build/dist/client/peer-host-workspace-tab.js +48 -28
  145. package/data/build/dist/client/peer-host-workspace-tab.js.map +1 -1
  146. package/data/build/dist/client/provider-icon-assets.js +4 -0
  147. package/data/build/dist/client/provider-icon-assets.js.map +1 -1
  148. package/data/build/dist/client/provider-icons.d.ts +8 -2
  149. package/data/build/dist/client/provider-icons.d.ts.map +1 -1
  150. package/data/build/dist/client/provider-icons.js +13 -4
  151. package/data/build/dist/client/provider-icons.js.map +1 -1
  152. package/data/build/dist/client/pwa-install-prompt.d.ts +4 -1
  153. package/data/build/dist/client/pwa-install-prompt.d.ts.map +1 -1
  154. package/data/build/dist/client/pwa-install-prompt.js +8 -7
  155. package/data/build/dist/client/pwa-install-prompt.js.map +1 -1
  156. package/data/build/dist/client/quick-phrase-layout.d.ts +11 -0
  157. package/data/build/dist/client/quick-phrase-layout.d.ts.map +1 -1
  158. package/data/build/dist/client/quick-phrase-layout.js +20 -0
  159. package/data/build/dist/client/quick-phrase-layout.js.map +1 -1
  160. package/data/build/dist/client/quick-phrase-slot.d.ts.map +1 -1
  161. package/data/build/dist/client/quick-phrase-slot.js +20 -8
  162. package/data/build/dist/client/quick-phrase-slot.js.map +1 -1
  163. package/data/build/dist/client/session-changed-files-view.d.ts +8 -1
  164. package/data/build/dist/client/session-changed-files-view.d.ts.map +1 -1
  165. package/data/build/dist/client/session-changed-files-view.js +71 -28
  166. package/data/build/dist/client/session-changed-files-view.js.map +1 -1
  167. package/data/build/dist/client/settings-anchor.d.ts +9 -3
  168. package/data/build/dist/client/settings-anchor.d.ts.map +1 -1
  169. package/data/build/dist/client/settings-anchor.js +8 -2
  170. package/data/build/dist/client/settings-anchor.js.map +1 -1
  171. package/data/build/dist/client/settings-section.js +3 -3
  172. package/data/build/dist/client/settings-section.js.map +1 -1
  173. package/data/build/dist/client/subscription-slot.d.ts +4 -1
  174. package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
  175. package/data/build/dist/client/subscription-slot.js +327 -51
  176. package/data/build/dist/client/subscription-slot.js.map +1 -1
  177. package/data/build/dist/client/terminal/model.d.ts +13 -2
  178. package/data/build/dist/client/terminal/model.d.ts.map +1 -1
  179. package/data/build/dist/client/terminal/model.js +27 -7
  180. package/data/build/dist/client/terminal/model.js.map +1 -1
  181. package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
  182. package/data/build/dist/client/terminal/ui.js +3 -1
  183. package/data/build/dist/client/terminal/ui.js.map +1 -1
  184. package/data/build/dist/client/terminal/xterm-view.d.ts +4 -1
  185. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  186. package/data/build/dist/client/terminal/xterm-view.js +19 -17
  187. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  188. package/data/build/dist/client/workspace-session-archive-dom.d.ts +3 -0
  189. package/data/build/dist/client/workspace-session-archive-dom.d.ts.map +1 -1
  190. package/data/build/dist/client/workspace-session-archive-dom.js +131 -45
  191. package/data/build/dist/client/workspace-session-archive-dom.js.map +1 -1
  192. package/data/build/dist/client/workspace-session-logo-dom.d.ts +3 -0
  193. package/data/build/dist/client/workspace-session-logo-dom.d.ts.map +1 -1
  194. package/data/build/dist/client/workspace-session-logo-dom.js +3 -1
  195. package/data/build/dist/client/workspace-session-logo-dom.js.map +1 -1
  196. package/data/build/dist/client/workspace-session-visibility-dom.d.ts +3 -0
  197. package/data/build/dist/client/workspace-session-visibility-dom.d.ts.map +1 -1
  198. package/data/build/dist/client/workspace-session-visibility-dom.js +46 -17
  199. package/data/build/dist/client/workspace-session-visibility-dom.js.map +1 -1
  200. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +10 -0
  201. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
  202. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +20 -0
  203. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
  204. package/data/build/dist/host/browser-text.d.ts +30 -0
  205. package/data/build/dist/host/browser-text.d.ts.map +1 -0
  206. package/data/build/dist/host/browser-text.js +105 -0
  207. package/data/build/dist/host/browser-text.js.map +1 -0
  208. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +28 -2
  209. package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
  210. package/data/build/dist/host/cli-adapters/claude-driver.js +73 -3
  211. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  212. package/data/build/dist/host/cli-adapters/claude-model-options.d.ts.map +1 -1
  213. package/data/build/dist/host/cli-adapters/claude-model-options.js +22 -9
  214. package/data/build/dist/host/cli-adapters/claude-model-options.js.map +1 -1
  215. package/data/build/dist/host/cli-adapters/codex-driver.d.ts +10 -0
  216. package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
  217. package/data/build/dist/host/cli-adapters/codex-driver.js +105 -5
  218. package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
  219. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  220. package/data/build/dist/host/cli-adapters/command-code-driver.js +49 -7
  221. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  222. package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts +47 -0
  223. package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts.map +1 -0
  224. package/data/build/dist/host/cli-adapters/delegate-dispatch.js +158 -0
  225. package/data/build/dist/host/cli-adapters/delegate-dispatch.js.map +1 -0
  226. package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts +32 -0
  227. package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts.map +1 -0
  228. package/data/build/dist/host/cli-adapters/desktop-app-runtime.js +121 -0
  229. package/data/build/dist/host/cli-adapters/desktop-app-runtime.js.map +1 -0
  230. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  231. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +5 -4
  232. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  233. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.d.ts +16 -0
  234. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.d.ts.map +1 -0
  235. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.js +73 -0
  236. package/data/build/dist/host/cli-adapters/dsh-virtual-providers.js.map +1 -0
  237. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  238. package/data/build/dist/host/cli-adapters/feature.js +196 -14
  239. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  240. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts.map +1 -1
  241. package/data/build/dist/host/cli-adapters/gemini-driver.js +21 -5
  242. package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
  243. package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
  244. package/data/build/dist/host/cli-adapters/grok-driver.js +24 -7
  245. package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
  246. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts +22 -6
  247. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts.map +1 -1
  248. package/data/build/dist/host/cli-adapters/json-rpc-process.js +118 -21
  249. package/data/build/dist/host/cli-adapters/json-rpc-process.js.map +1 -1
  250. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts.map +1 -1
  251. package/data/build/dist/host/cli-adapters/kimi-driver.js +25 -4
  252. package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
  253. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts +11 -2
  254. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts.map +1 -1
  255. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js +15 -6
  256. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js.map +1 -1
  257. package/data/build/dist/host/cli-adapters/mcode-catalog.d.ts +23 -0
  258. package/data/build/dist/host/cli-adapters/mcode-catalog.d.ts.map +1 -0
  259. package/data/build/dist/host/cli-adapters/mcode-catalog.js +120 -0
  260. package/data/build/dist/host/cli-adapters/mcode-catalog.js.map +1 -0
  261. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts +56 -0
  262. package/data/build/dist/host/cli-adapters/mcode-driver.d.ts.map +1 -0
  263. package/data/build/dist/host/cli-adapters/mcode-driver.js +544 -0
  264. package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -0
  265. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +30 -5
  266. package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
  267. package/data/build/dist/host/cli-adapters/model-catalog.js +83 -8
  268. package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
  269. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +51 -0
  270. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -0
  271. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +193 -0
  272. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -0
  273. package/data/build/dist/host/cli-adapters/native-subagent-holder.d.ts +4 -0
  274. package/data/build/dist/host/cli-adapters/native-subagent-holder.d.ts.map +1 -0
  275. package/data/build/dist/host/cli-adapters/native-subagent-holder.js +4 -0
  276. package/data/build/dist/host/cli-adapters/native-subagent-holder.js.map +1 -0
  277. package/data/build/dist/host/cli-adapters/native-team-proxy.js +18 -15
  278. package/data/build/dist/host/cli-adapters/native-team-proxy.js.map +1 -1
  279. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +45 -0
  280. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -0
  281. package/data/build/dist/host/cli-adapters/native-team-subagent.js +107 -0
  282. package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -0
  283. package/data/build/dist/host/cli-adapters/opencode-driver.js +13 -3
  284. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  285. package/data/build/dist/host/cli-adapters/pi-driver.js +24 -7
  286. package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
  287. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +8 -1
  288. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
  289. package/data/build/dist/host/cli-adapters/provider-subscription.js +98 -2
  290. package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
  291. package/data/build/dist/host/cli-adapters/registry-holder.d.ts +4 -0
  292. package/data/build/dist/host/cli-adapters/registry-holder.d.ts.map +1 -0
  293. package/data/build/dist/host/cli-adapters/registry-holder.js +9 -0
  294. package/data/build/dist/host/cli-adapters/registry-holder.js.map +1 -0
  295. package/data/build/dist/host/cli-adapters/registry.d.ts +13 -0
  296. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  297. package/data/build/dist/host/cli-adapters/registry.js +37 -0
  298. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  299. package/data/build/dist/host/cli-adapters/session-store.d.ts +6 -1
  300. package/data/build/dist/host/cli-adapters/session-store.d.ts.map +1 -1
  301. package/data/build/dist/host/cli-adapters/session-store.js +42 -4
  302. package/data/build/dist/host/cli-adapters/session-store.js.map +1 -1
  303. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +2 -0
  304. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  305. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +30 -4
  306. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  307. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts +5 -0
  308. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts.map +1 -0
  309. package/data/build/dist/host/cli-adapters/subagent-tool.js +66 -0
  310. package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -0
  311. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts +57 -0
  312. package/data/build/dist/host/cli-adapters/zcode-driver.d.ts.map +1 -0
  313. package/data/build/dist/host/cli-adapters/zcode-driver.js +843 -0
  314. package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -0
  315. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts +28 -0
  316. package/data/build/dist/host/cli-adapters/zcode-subscription.d.ts.map +1 -0
  317. package/data/build/dist/host/cli-adapters/zcode-subscription.js +212 -0
  318. package/data/build/dist/host/cli-adapters/zcode-subscription.js.map +1 -0
  319. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts +27 -0
  320. package/data/build/dist/host/cli-bridge/bridge-holder.d.ts.map +1 -0
  321. package/data/build/dist/host/cli-bridge/bridge-holder.js +51 -0
  322. package/data/build/dist/host/cli-bridge/bridge-holder.js.map +1 -0
  323. package/data/build/dist/host/cli-bridge/bridge-server.d.ts +34 -0
  324. package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -0
  325. package/data/build/dist/host/cli-bridge/bridge-server.js +135 -0
  326. package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -0
  327. package/data/build/dist/host/cli-bridge/command-code-mod.d.ts +25 -0
  328. package/data/build/dist/host/cli-bridge/command-code-mod.d.ts.map +1 -0
  329. package/data/build/dist/host/cli-bridge/command-code-mod.js +60 -0
  330. package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -0
  331. package/data/build/dist/host/cli-bridge/dispatch.d.ts +19 -0
  332. package/data/build/dist/host/cli-bridge/dispatch.d.ts.map +1 -0
  333. package/data/build/dist/host/cli-bridge/dispatch.js +90 -0
  334. package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -0
  335. package/data/build/dist/host/cli-bridge/injections.d.ts +28 -0
  336. package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -0
  337. package/data/build/dist/host/cli-bridge/injections.js +131 -0
  338. package/data/build/dist/host/cli-bridge/injections.js.map +1 -0
  339. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.d.ts +8 -0
  340. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.d.ts.map +1 -0
  341. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +151 -0
  342. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -0
  343. package/data/build/dist/host/features/lan-access-dsh.d.ts.map +1 -1
  344. package/data/build/dist/host/features/lan-access-dsh.js +6 -2
  345. package/data/build/dist/host/features/lan-access-dsh.js.map +1 -1
  346. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  347. package/data/build/dist/host/features/peer-host.js +2 -1
  348. package/data/build/dist/host/features/peer-host.js.map +1 -1
  349. package/data/build/dist/host/index.d.ts +4 -0
  350. package/data/build/dist/host/index.d.ts.map +1 -1
  351. package/data/build/dist/host/index.js +36 -0
  352. package/data/build/dist/host/index.js.map +1 -1
  353. package/data/build/dist/host/lan-access-dsh.d.ts +7 -1
  354. package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
  355. package/data/build/dist/host/lan-access-dsh.js +95 -19
  356. package/data/build/dist/host/lan-access-dsh.js.map +1 -1
  357. package/data/build/dist/host/login-attempt-guard.d.ts +55 -0
  358. package/data/build/dist/host/login-attempt-guard.d.ts.map +1 -0
  359. package/data/build/dist/host/login-attempt-guard.js +201 -0
  360. package/data/build/dist/host/login-attempt-guard.js.map +1 -0
  361. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts +3 -0
  362. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.d.ts.map +1 -1
  363. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js +2 -0
  364. package/data/build/dist/host/modules/peer-host/host-api-proxy-service.js.map +1 -1
  365. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts +1 -0
  366. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.d.ts.map +1 -1
  367. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js +1 -0
  368. package/data/build/dist/host/modules/peer-host/peer-host-aggregate-service.js.map +1 -1
  369. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts +1 -1
  370. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.d.ts.map +1 -1
  371. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js +3 -0
  372. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js.map +1 -1
  373. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.d.ts +8 -0
  374. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.d.ts.map +1 -1
  375. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.js +9 -0
  376. package/data/build/dist/host/modules/peer-host/peer-host-native-transport.js.map +1 -1
  377. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts +7 -0
  378. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.d.ts.map +1 -1
  379. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js +31 -3
  380. package/data/build/dist/host/modules/peer-host/peer-host-remote-summary-source.js.map +1 -1
  381. package/data/build/dist/host/modules/pwa/pwa-assets.d.ts +6 -4
  382. package/data/build/dist/host/modules/pwa/pwa-assets.d.ts.map +1 -1
  383. package/data/build/dist/host/modules/pwa/pwa-assets.js +11 -9
  384. package/data/build/dist/host/modules/pwa/pwa-assets.js.map +1 -1
  385. package/data/build/dist/host/modules/pwa/pwa-session-notifications.d.ts +3 -0
  386. package/data/build/dist/host/modules/pwa/pwa-session-notifications.d.ts.map +1 -1
  387. package/data/build/dist/host/modules/pwa/pwa-session-notifications.js +6 -4
  388. package/data/build/dist/host/modules/pwa/pwa-session-notifications.js.map +1 -1
  389. package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
  390. package/data/build/dist/host/native-session-bridge.js +70 -52
  391. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  392. package/data/build/dist/host/rpc.js +4 -1
  393. package/data/build/dist/host/rpc.js.map +1 -1
  394. package/data/build/dist/host/settings.d.ts.map +1 -1
  395. package/data/build/dist/host/settings.js +3 -0
  396. package/data/build/dist/host/settings.js.map +1 -1
  397. package/data/build/dist/shared/contracts/cli-adapter.d.ts +5 -0
  398. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  399. package/data/build/dist/shared/contracts/config.d.ts +10 -0
  400. package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
  401. package/data/build/dist/shared/contracts/config.js +8 -0
  402. package/data/build/dist/shared/contracts/config.js.map +1 -1
  403. package/data/build/dist/shared/contracts/peer-host.d.ts +2 -0
  404. package/data/build/dist/shared/contracts/peer-host.d.ts.map +1 -1
  405. package/data/build/dist/shared/contracts/peer-host.js.map +1 -1
  406. package/data/build/dist/shared/contracts/subscription.d.ts +15 -0
  407. package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
  408. package/data/build/dist/shared/contracts/subscription.js.map +1 -1
  409. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  410. package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
  411. package/data/build/dist/shared/contracts/version.js +1 -1
  412. package/data/build/dist/shared/contracts/version.js.map +1 -1
  413. package/data/build/dist/shared/index.d.ts +1 -1
  414. package/data/build/dist/shared/index.d.ts.map +1 -1
  415. package/data/build/dist/shared/index.js.map +1 -1
  416. package/package.json +3 -1
  417. package/profile/README.md +2 -2
  418. package/profile/package.json +2 -2
  419. package/profile/version.json +1 -1
  420. package/version.json +1 -1
@@ -8,11 +8,12 @@ export function createPeerHostRemoteSummarySource(input) {
8
8
  // 工作区"和"远端不可达"混成同一个错误。
9
9
  if (visible !== null && visible.size === 0)
10
10
  return [];
11
- const [baseline, sessions] = await Promise.all([
11
+ const [baseline, sessions, adapterMap] = await Promise.all([
12
12
  readWorkspaceBaseline(input.transport, input.scope, signal),
13
13
  readSessionList(input.transport, input.scope, signal),
14
+ readAdapterMap(input.transport, input.scope, signal),
14
15
  ]);
15
- return buildRemoteSummary(baseline, sessions, visible);
16
+ return buildRemoteSummary(baseline, sessions, visible, adapterMap);
16
17
  },
17
18
  };
18
19
  }
@@ -63,7 +64,7 @@ async function readSessionList(transport, scope, signal) {
63
64
  return record === null ? [] : [record];
64
65
  });
65
66
  }
66
- function buildRemoteSummary(baseline, sessions, visibleWorkspaceIds) {
67
+ function buildRemoteSummary(baseline, sessions, visibleWorkspaceIds, adapterMap) {
67
68
  const sessionsById = new Map();
68
69
  for (const session of sessions) {
69
70
  const sessionId = readString(session, ['sessionId', 'id', 'key']);
@@ -92,6 +93,10 @@ function buildRemoteSummary(baseline, sessions, visibleWorkspaceIds) {
92
93
  title: readSessionTitle(session, sessionId),
93
94
  status: session?.running === true ? 'running' : 'idle',
94
95
  updatedAt: readTime(session),
96
+ ...(() => {
97
+ const adapterId = readString(session, ['adapterId']) ?? adapterMap.get(sessionId);
98
+ return adapterId === undefined ? {} : { adapterId };
99
+ })(),
95
100
  };
96
101
  if (archived.has(sessionId))
97
102
  archivedSessions.push(entry);
@@ -108,6 +113,29 @@ function buildRemoteSummary(baseline, sessions, visibleWorkspaceIds) {
108
113
  }];
109
114
  });
110
115
  }
116
+ async function readAdapterMap(transport, scope, signal) {
117
+ if (transport.cli === undefined)
118
+ return new Map();
119
+ try {
120
+ const value = await transport.cli({ scope, endpoint: 'cli/session/adapter-map', payload: {}, ...(signal === undefined ? {} : { signal }) });
121
+ const envelope = asRecord(value);
122
+ const rows = envelope?.ok === true ? envelope.value : value;
123
+ if (!Array.isArray(rows))
124
+ return new Map();
125
+ const result = new Map();
126
+ for (const row of rows) {
127
+ const record = asRecord(row);
128
+ const sessionId = readString(record, ['sessionId']);
129
+ const adapterId = readString(record, ['adapterId']);
130
+ if (sessionId !== null && adapterId !== null)
131
+ result.set(sessionId, adapterId);
132
+ }
133
+ return result;
134
+ }
135
+ catch {
136
+ return new Map();
137
+ }
138
+ }
111
139
  function readSessionTitle(session, sessionId) {
112
140
  // 空白会话的标题由 DSH 原生 UI 显示为“新会话”,不能用 cwd 伪造正式标题。
113
141
  if (session?.blank === true)
@@ -1 +1 @@
1
- {"version":3,"file":"peer-host-remote-summary-source.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-remote-summary-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer-host-remote-summary-source.js","sourceRoot":"","sources":["../../../../../../src/host/modules/peer-host/peer-host-remote-summary-source.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { LanAccessDshPwaSettings } from '../../../shared/contracts/config.js';
2
+ import { type HostLocale } from '../../browser-text.js';
2
3
  export declare const PWA_MANIFEST_PATH = "/manifest.webmanifest";
3
4
  export declare const PWA_SERVICE_WORKER_PATH = "/sw.js";
4
5
  export declare const PWA_ASSET_PREFIX = "/__codingns/pwa/";
@@ -24,19 +25,20 @@ export interface LanAccessDshPwaBundle {
24
25
  readonly marker: string;
25
26
  }
26
27
  export interface LanAccessDshPwaProvider {
27
- /** 返回当前应提供的资产;未启用时返回 null(代理保持原行为)。 */
28
- snapshot(): LanAccessDshPwaBundle | null;
28
+ /** 返回当前应提供的资产;未启用时返回 null(代理保持原行为)。locale 只影响 manifest 描述。 */
29
+ snapshot(locale?: HostLocale): LanAccessDshPwaBundle | null;
29
30
  }
30
31
  export interface LanAccessDshPwaProviderOptions {
31
32
  readonly readSettings: () => LanAccessDshPwaSettings;
32
33
  }
33
- /** 按设置生成资产;设置未变化时复用上一次的字节。 */
34
+ /** 按设置生成资产;设置与语言均未变化时复用上一次的字节。 */
34
35
  export declare function createLanAccessDshPwaProvider(options: LanAccessDshPwaProviderOptions): LanAccessDshPwaProvider;
35
36
  export declare function createLanAccessDshPwaBundle(options: {
36
37
  readonly serviceWorker: boolean;
38
+ readonly locale?: HostLocale;
37
39
  }): LanAccessDshPwaBundle;
38
40
  /** 覆盖上游 manifest:保留名称与 start_url/scope,覆盖显示模式并补齐 PNG 图标。 */
39
- export declare function createPwaManifest(): Record<string, unknown>;
41
+ export declare function createPwaManifest(locale?: HostLocale): Record<string, unknown>;
40
42
  /**
41
43
  * Service Worker 脚本。
42
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pwa-assets.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-assets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAGlF,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AACxD,eAAO,MAAM,uBAAuB,WAAW,CAAA;AAC/C,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,mBAAmB,qBAAqB,CAAA;AACrD,eAAO,MAAM,eAAe,YAAY,CAAA;AACxC,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAC7C,eAAO,MAAM,0BAA0B,iCAAoC,CAAA;AAC3E,uCAAuC;AACvC,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AAEvD,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IAC1D,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,QAAQ,IAAI,qBAAqB,GAAG,IAAI,CAAA;CACzC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,uBAAuB,CAAA;CACrD;AAED,8BAA8B;AAC9B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,uBAAuB,CAe9G;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,qBAAqB,CAO/G;AAsBD,4DAA4D;AAC5D,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuB3D;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CA6ErD"}
1
+ {"version":3,"file":"pwa-assets.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-assets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGxE,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AACxD,eAAO,MAAM,uBAAuB,WAAW,CAAA;AAC/C,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,mBAAmB,qBAAqB,CAAA;AACrD,eAAO,MAAM,eAAe,YAAY,CAAA;AACxC,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAC7C,eAAO,MAAM,0BAA0B,iCAAoC,CAAA;AAC3E,uCAAuC;AACvC,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AAEvD,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IAC1D,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,qBAAqB,GAAG,IAAI,CAAA;CAC5D;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,uBAAuB,CAAA;CACrD;AAED,kCAAkC;AAClC,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,uBAAuB,CAe9G;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,qBAAqB,CAQ7I;AAsBD,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,UAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBpF;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CA6ErD"}
@@ -6,6 +6,7 @@
6
6
  * manifest、Service Worker、图标都在这里定义,供代理与 RPC 状态查询共用。
7
7
  */
8
8
  import { CODINGNS_VERSION } from '../../../shared/contracts/version.js';
9
+ import { hostBrowserText } from '../../browser-text.js';
9
10
  import { createPwaIconPng } from './pwa-icons.js';
10
11
  export const PWA_MANIFEST_PATH = '/manifest.webmanifest';
11
12
  export const PWA_SERVICE_WORKER_PATH = '/sw.js';
@@ -16,27 +17,28 @@ export const PWA_BACKGROUND_COLOR = '#0a0f1d';
16
17
  export const PWA_NOTIFICATION_ICON_PATH = `${PWA_ASSET_PREFIX}icon-192.png`;
17
18
  /** SW 注册脚本用来确认“这是插件自己提供的 manifest”。 */
18
19
  export const PWA_MANIFEST_MARKER_FIELD = 'codingns4dsh';
19
- /** 按设置生成资产;设置未变化时复用上一次的字节。 */
20
+ /** 按设置生成资产;设置与语言均未变化时复用上一次的字节。 */
20
21
  export function createLanAccessDshPwaProvider(options) {
21
22
  let cachedKey = null;
22
23
  let cached = null;
23
24
  return {
24
- snapshot() {
25
+ snapshot(locale = 'zh') {
25
26
  const settings = options.readSettings();
26
- const key = `${settings.enabled ? '1' : '0'}:${settings.serviceWorker ? '1' : '0'}`;
27
+ const key = `${settings.enabled ? '1' : '0'}:${settings.serviceWorker ? '1' : '0'}:${locale}`;
27
28
  if (key === cachedKey)
28
29
  return cached;
29
30
  cachedKey = key;
30
31
  cached = settings.enabled
31
- ? createLanAccessDshPwaBundle({ serviceWorker: settings.serviceWorker })
32
+ ? createLanAccessDshPwaBundle({ serviceWorker: settings.serviceWorker, locale })
32
33
  : null;
33
34
  return cached;
34
35
  },
35
36
  };
36
37
  }
37
38
  export function createLanAccessDshPwaBundle(options) {
39
+ const locale = options.locale ?? 'zh';
38
40
  return {
39
- manifest: encodeManifest(),
41
+ manifest: encodeManifest(locale),
40
42
  serviceWorker: options.serviceWorker ? encodeServiceWorker() : null,
41
43
  assets: createIconAssets(),
42
44
  marker: PWA_MANIFEST_MARKER,
@@ -62,11 +64,11 @@ function createIconAssets() {
62
64
  return assets;
63
65
  }
64
66
  /** 覆盖上游 manifest:保留名称与 start_url/scope,覆盖显示模式并补齐 PNG 图标。 */
65
- export function createPwaManifest() {
67
+ export function createPwaManifest(locale = 'zh') {
66
68
  return {
67
69
  name: 'DeepSeek Harness',
68
70
  short_name: 'DSH',
69
- description: 'DeepSeek Harness Web 应用(Codingns4DSH 局域网入口)',
71
+ description: hostBrowserText(locale, 'manifest.description'),
70
72
  start_url: './',
71
73
  scope: './',
72
74
  display: 'standalone',
@@ -86,8 +88,8 @@ export function createPwaManifest() {
86
88
  },
87
89
  };
88
90
  }
89
- function encodeManifest() {
90
- return new TextEncoder().encode(`${JSON.stringify(createPwaManifest(), null, 2)}\n`);
91
+ function encodeManifest(locale) {
92
+ return new TextEncoder().encode(`${JSON.stringify(createPwaManifest(locale), null, 2)}\n`);
91
93
  }
92
94
  /**
93
95
  * Service Worker 脚本。
@@ -1 +1 @@
1
- {"version":3,"file":"pwa-assets.js","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pwa-assets.js","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-assets.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import type { PwaPushPayload } from './pwa-push.js';
2
+ import { type HostLocale } from '../../browser-text.js';
2
3
  /** 会话事件通知的最小输入,避免通知模块依赖 DSH 私有 Session 类型。 */
3
4
  export interface PwaSessionNotificationInput {
4
5
  readonly session: unknown;
5
6
  readonly event: unknown;
7
+ /** Host 侧语言;缺省回退 `zh`,与改造前行为一致。 */
8
+ readonly locale?: HostLocale;
6
9
  }
7
10
  /**
8
11
  * 将 DSH 原生会话事件投影为 PWA 推送载荷。
@@ -1 +1 @@
1
- {"version":3,"file":"pwa-session-notifications.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-session-notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,8CAA8C;AAC9C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,2BAA2B,GAAG,cAAc,GAAG,IAAI,CAwBtG"}
1
+ {"version":3,"file":"pwa-session-notifications.d.ts","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-session-notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAExE,8CAA8C;AAC9C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,mCAAmC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,2BAA2B,GAAG,cAAc,GAAG,IAAI,CAyBtG"}
@@ -1,3 +1,4 @@
1
+ import { hostBrowserText } from '../../browser-text.js';
1
2
  /**
2
3
  * 将 DSH 原生会话事件投影为 PWA 推送载荷。
3
4
  *
@@ -5,6 +6,7 @@
5
6
  * 因此这里只读取稳定字符串字段并按语义分类;无法识别的事件安静忽略。
6
7
  */
7
8
  export function createPwaSessionNotification(input) {
9
+ const locale = input.locale ?? 'zh';
8
10
  const sessionId = readSessionId(input.session);
9
11
  if (sessionId === null)
10
12
  return null;
@@ -15,16 +17,16 @@ export function createPwaSessionNotification(input) {
15
17
  const url = `/?sessionId=${encodeURIComponent(sessionId)}`;
16
18
  if (normalized === 'turn_end' || normalized.endsWith('_turn_end')) {
17
19
  return {
18
- title: 'DSH 会话已完成',
19
- body: `会话 ${sessionId} 已完成当前轮次。`,
20
+ title: hostBrowserText(locale, 'push.turnEndTitle'),
21
+ body: hostBrowserText(locale, 'push.turnEndBody', { sessionId }),
20
22
  tag: `codingns4dsh-turn-${sessionId}`,
21
23
  url,
22
24
  };
23
25
  }
24
26
  if (isWaitingEvent(normalized)) {
25
27
  return {
26
- title: 'DSH 等待你的输入',
27
- body: `会话 ${sessionId} 正在等待确认或回答。`,
28
+ title: hostBrowserText(locale, 'push.waitingTitle'),
29
+ body: hostBrowserText(locale, 'push.waitingBody', { sessionId }),
28
30
  tag: `codingns4dsh-input-${sessionId}`,
29
31
  url,
30
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pwa-session-notifications.js","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-session-notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pwa-session-notifications.js","sourceRoot":"","sources":["../../../../../../src/host/modules/pwa/pwa-session-notifications.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-session-bridge.d.ts","sourceRoot":"","sources":["../../../../src/host/native-session-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-session-bridge.d.ts","sourceRoot":"","sources":["../../../../src/host/native-session-bridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,oCAAoC,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,IAAI,IAAI,SAAS,OAAO,EAAE,CAAA;IAC1B,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAA;CAC5E;AAED,oEAAoE;AACpE,MAAM,MAAM,2BAA2B,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,aAAa,CAAA;AAE3E,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,kCAAkC;AAClC,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,8BAA8B;AAC9B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,MAAM,6BAA6B,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAA;AAErG,+BAA+B;AAC/B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,+BAA+B;AAC/B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,0DAA0D;AAC1D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;CACzC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,kDAAkD;IAClD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACpC;AAED,mCAAmC;AACnC,MAAM,MAAM,6BAA6B,GAAG,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAC,CAAA;AAEvG,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjH,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,CAAC,CAAA;CAChG;AAED,iCAAiC;AACjC,MAAM,WAAW,iCAAiC;IAChD,cAAc,CAAC,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IACpF,gBAAgB,CAAC,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CACvF;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,UAAU,EAAE,+BAA+B,GAAG,SAAS,CAAA;IAChE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,iCAAiC,CAAA;IAChE,sCAAsC;IACtC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IAC3C,oDAAoD;IACpD,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B,CAAA;IAC9D,mCAAmC;IACnC,IAAI,IAAI,SAAS,OAAO,EAAE,CAAA;IAC1B,+DAA+D;IAC/D,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;IAC7D,wBAAwB;IACxB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC/D,iCAAiC;IACjC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC;;;OAGG;IACH,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,4BAA4B,GAAG,IAAI,CAAA;IACrG,2CAA2C;IAC3C,gBAAgB,CAAC,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAA;IAClG,oDAAoD;IACpD,uBAAuB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAA;IAC5F,oCAAoC;IACpC,oBAAoB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAA;IACxF,kDAAkD;IAClD,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAA;IAChF,yDAAyD;IACzD,qBAAqB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAA;IACxF,2BAA2B;IAC3B,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9C,sDAAsD;IACtD,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC7D,8CAA8C;IAC9C,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;IACnH,qDAAqD;IACrD,YAAY,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAA;IACvH,sCAAsC;IACtC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7C,yCAAyC;IACzC,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,sCAAsC;IACtC,SAAS,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;QAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAC9D,GAAG,MAAM,IAAI,CAAA;CACf;AAED,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,2BAA2B,CA+dhH"}
@@ -113,69 +113,76 @@ export function createCodingNsNativeSessionBridge(ctx, dshVersion) {
113
113
  // 保留已有容量并跳过等价事件,让用量更新直接落到同一个组件上。
114
114
  const previous = latestRequestContext(session);
115
115
  const contextKey = `${sessionId}\u0000${context.provider}\u0000${context.model}`;
116
+ // 该路由的稳定锚点:进程内确认的 Provider usage 优先,进程重启后从
117
+ // 会话日志里该路由的首个 usage 恢复。Provider 容量会随服务端变化,
118
+ // 路由内以首个 usage 为准;占位值、迟到值和 catalog 提示都不能改写它。
119
+ const anchoredWindow = confirmedContextWindows.get(contextKey)
120
+ ?? routeFirstUsageContextWindow(session, context.provider, context.model);
116
121
  if (previous !== null && previous.provider === context.provider && previous.model === context.model) {
117
- const historicalWindow = historicalUsageContextWindow(session);
118
122
  if (context.contextWindow === undefined) {
119
- if (historicalWindow !== undefined && previous.contextWindow !== historicalWindow) {
123
+ // Registry 在一轮开始时只能提供适配器身份:恢复该路由自己的稳定
124
+ // 容量,而不是继承上一条 request/context——相邻记录可能来自其他
125
+ // Provider,容量口径不同(例如 DSH 主模型的通用 1M 占位值)。
126
+ if (anchoredWindow !== undefined && previous.contextWindow !== anchoredWindow) {
120
127
  session.append('request/context', {
121
128
  provider: context.provider,
122
129
  model: context.model,
123
- contextWindow: historicalWindow,
130
+ contextWindow: anchoredWindow,
124
131
  });
125
132
  }
126
133
  return true;
127
134
  }
128
- if (previous.contextWindow === context.contextWindow
129
- && context.confirmed === true
130
- && historicalWindow !== undefined
131
- && historicalWindow !== context.contextWindow) {
132
- session.append('request/context', {
133
- provider: context.provider,
134
- model: context.model,
135
- contextWindow: historicalWindow,
136
- });
137
- confirmedContextWindows.set(contextKey, historicalWindow);
138
- return true;
139
- }
140
135
  if (previous.contextWindow === context.contextWindow) {
141
- if (context.confirmed === true && context.source !== 'catalog' && context.contextWindow !== undefined) {
136
+ if (context.confirmed === true && context.source !== 'catalog') {
137
+ if (anchoredWindow !== undefined && anchoredWindow !== context.contextWindow) {
138
+ // 当前记录与输入一致但与已知锚点冲突:输入是占位或迟到值,
139
+ // 把该路由的容量写回锚点,避免错误值固化。
140
+ session.append('request/context', {
141
+ provider: context.provider,
142
+ model: context.model,
143
+ contextWindow: anchoredWindow,
144
+ });
145
+ return true;
146
+ }
142
147
  confirmedContextWindows.set(contextKey, context.contextWindow);
143
148
  }
144
149
  return true;
145
150
  }
146
- // 已经确认过的同一路由容量是会话级事实。迟到/全局 usage 不能覆盖它。
147
- // DSH 每个新 step 会先写入一次通用 1M 占位值。catalog 提示必须能把
148
- // 这个占位值恢复为已知容量,但真实 Provider usage 仍由锁定值保护。
149
- if (confirmedContextWindows.has(contextKey) && context.source !== 'catalog')
150
- return true;
151
- // 进程重启后仍可从历史 usage 恢复稳定容量,避免尾部遗留的错误
152
- // request/context=1M 在第二轮开始时再次成为当前窗口。
153
- if (context.confirmed === true && historicalWindow !== undefined && historicalWindow !== context.contextWindow) {
154
- if (previous.contextWindow !== historicalWindow) {
151
+ // 已经确认过的同一路由容量是会话级事实。迟到/全局 usage、新 step 的
152
+ // 占位值以及过期的 catalog 提示都不能覆盖它;与事实一致的修正(例如
153
+ // 占位值覆盖后 Provider usage 再次到达)则允许写回,让 ContextMeter
154
+ // 无需等待下一轮就能恢复正确分母。
155
+ if (anchoredWindow !== undefined && context.contextWindow !== anchoredWindow) {
156
+ if (previous.contextWindow !== anchoredWindow) {
155
157
  session.append('request/context', {
156
158
  provider: context.provider,
157
159
  model: context.model,
158
- contextWindow: historicalWindow,
160
+ contextWindow: anchoredWindow,
159
161
  });
160
162
  }
161
- confirmedContextWindows.set(contextKey, historicalWindow);
162
163
  return true;
163
164
  }
164
- // 允许本次运行首次明确确认的 usage 修正历史遗留的路由占位值,
165
- // 例如旧日志中的 1M 随后被 Codex usage 明确纠正为 258400。
166
165
  if (context.confirmed !== true)
167
166
  return true;
167
+ session.append('request/context', {
168
+ provider: context.provider,
169
+ model: context.model,
170
+ contextWindow: context.contextWindow,
171
+ });
172
+ if (context.source !== 'catalog')
173
+ confirmedContextWindows.set(contextKey, context.contextWindow);
174
+ return true;
168
175
  }
169
- // Registry 在一轮开始时只能提供适配器身份,不能提供 Provider 容量。
170
- // 继承上一条已知容量,避免先写无容量事件导致 ContextMeter 卸载;
171
- // 真正的 usage 到达后,投影器会用 Provider 的最新容量覆盖它。
172
- const contextWindow = context.contextWindow ?? previous?.contextWindow;
176
+ // 跨路由时只恢复该路由自己的稳定容量;没有锚点时写入无容量事件,
177
+ // 让 Provider usage 建立第一手容量,而不是借用其他 Provider 的分母。
178
+ const contextWindow = anchoredWindow ?? context.contextWindow;
173
179
  session.append('request/context', {
174
180
  provider: context.provider,
175
181
  model: context.model,
176
182
  ...(contextWindow === undefined ? {} : { contextWindow }),
177
183
  });
178
- if (context.confirmed === true && context.source !== 'catalog' && context.contextWindow !== undefined) {
184
+ if (context.confirmed === true && context.source !== 'catalog'
185
+ && context.contextWindow !== undefined && context.contextWindow === contextWindow) {
179
186
  confirmedContextWindows.set(contextKey, context.contextWindow);
180
187
  }
181
188
  return true;
@@ -191,14 +198,20 @@ export function createCodingNsNativeSessionBridge(ctx, dshVersion) {
191
198
  return false;
192
199
  try {
193
200
  const previousContext = latestRequestContext(session);
194
- const normalizedUsage = previousContext?.contextWindow !== undefined
201
+ // 只有该路由已确认的容量才能纠正 usage 样本;未确认的 request/context
202
+ // 可能是新 step 的占位值,不能反过来把 Provider 的真实容量改坏。
203
+ const anchoredWindow = previousContext === null
204
+ ? undefined
205
+ : confirmedContextWindows.get(`${sessionId}\u0000${previousContext.provider}\u0000${previousContext.model}`)
206
+ ?? routeFirstUsageContextWindow(session, previousContext.provider, previousContext.model);
207
+ const normalizedUsage = anchoredWindow !== undefined
195
208
  && usage.contextWindow !== undefined
196
- && usage.contextWindow !== previousContext.contextWindow
209
+ && usage.contextWindow !== anchoredWindow
197
210
  ? {
198
211
  ...usage,
199
- contextWindow: previousContext.contextWindow,
212
+ contextWindow: anchoredWindow,
200
213
  ...(usage.contextTokens === undefined ? {} : {
201
- contextUsageRatio: Number(Math.min(1, usage.contextTokens / previousContext.contextWindow).toFixed(6)),
214
+ contextUsageRatio: Number(Math.min(1, usage.contextTokens / anchoredWindow).toFixed(6)),
202
215
  }),
203
216
  }
204
217
  : usage;
@@ -575,7 +588,13 @@ function latestRequestContext(session) {
575
588
  }
576
589
  return null;
577
590
  }
578
- function historicalUsageContextWindow(session) {
591
+ /**
592
+ * 按路由统计首个 usage 的上下文容量:同时依次穿越 request/context 与
593
+ * assistant/attempt,把每条 usage 归属到最近一次声明的路由。窗口在会话内
594
+ * 恒定,首个 usage 是该路由最可信的第一手事实;后续被占位值污染或 Provider
595
+ * 服务端变化产生的不同值都不能视为“新事实”。
596
+ */
597
+ function routeFirstUsageContextWindow(session, provider, model) {
579
598
  let events;
580
599
  try {
581
600
  events = session.snapshotEvents();
@@ -583,28 +602,27 @@ function historicalUsageContextWindow(session) {
583
602
  catch {
584
603
  return undefined;
585
604
  }
586
- const counts = new Map();
605
+ let matchesRoute = false;
587
606
  for (const candidate of events) {
588
- const event = isRecord(candidate) && candidate.type === 'assistant/attempt' ? candidate : null;
589
- const data = isRecord(event?.data) ? event.data : null;
607
+ const event = isRecord(candidate) ? candidate : null;
608
+ if (event?.type === 'request/context') {
609
+ const data = isRecord(event.data) ? event.data : null;
610
+ matchesRoute = data?.provider === provider && data.model === model;
611
+ continue;
612
+ }
613
+ if (event?.type !== 'assistant/attempt' || !matchesRoute)
614
+ continue;
615
+ const data = isRecord(event.data) ? event.data : null;
590
616
  const stream = Array.isArray(data?.stream) ? data.stream : [];
591
617
  for (const entry of stream) {
592
618
  const chunk = isRecord(entry) && isRecord(entry.chunk) ? entry.chunk : null;
593
619
  const usage = isRecord(chunk?.usage) ? chunk.usage : null;
594
620
  const window = usage?.contextWindow;
595
621
  if (typeof window === 'number' && Number.isFinite(window) && window > 0)
596
- counts.set(window, (counts.get(window) ?? 0) + 1);
597
- }
598
- }
599
- let selected;
600
- let count = 0;
601
- for (const [window, occurrences] of counts) {
602
- if (occurrences >= count) {
603
- selected = window;
604
- count = occurrences;
622
+ return window;
605
623
  }
606
624
  }
607
- return selected;
625
+ return undefined;
608
626
  }
609
627
  function activeStep(session) {
610
628
  let events;