@jingyi0605/codingns4dsh 0.1.0

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 (312) hide show
  1. package/README.md +1114 -0
  2. package/assets/provider-icons/claude-code.png +0 -0
  3. package/assets/provider-icons/codex.png +0 -0
  4. package/assets/provider-icons/command-code.svg +5 -0
  5. package/assets/provider-icons/deepseek-harness.svg +9 -0
  6. package/assets/provider-icons/gemini.png +0 -0
  7. package/assets/provider-icons/grok.png +0 -0
  8. package/assets/provider-icons/kimi.png +0 -0
  9. package/assets/provider-icons/opencode.png +0 -0
  10. package/assets/provider-icons/pi.svg +7 -0
  11. package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +97 -0
  12. package/data/build/dist/bootstrap/dsh-connection-adapter.js +169 -0
  13. package/data/build/dist/bootstrap/index.d.ts +38 -0
  14. package/data/build/dist/bootstrap/index.js +44 -0
  15. package/data/build/dist/client/account-bar.d.ts +9 -0
  16. package/data/build/dist/client/account-bar.js +398 -0
  17. package/data/build/dist/client/bundle.js +26167 -0
  18. package/data/build/dist/client/cli-catalog.d.ts +24 -0
  19. package/data/build/dist/client/cli-catalog.js +108 -0
  20. package/data/build/dist/client/cli-slots.d.ts +38 -0
  21. package/data/build/dist/client/cli-slots.js +297 -0
  22. package/data/build/dist/client/debug/ui.d.ts +12 -0
  23. package/data/build/dist/client/debug/ui.js +451 -0
  24. package/data/build/dist/client/dsh-h5-bootstrap.d.ts +64 -0
  25. package/data/build/dist/client/dsh-h5-bootstrap.js +293 -0
  26. package/data/build/dist/client/dsh-runtime-version.d.ts +3 -0
  27. package/data/build/dist/client/dsh-runtime-version.js +11 -0
  28. package/data/build/dist/client/external-tool-stream.d.ts +24 -0
  29. package/data/build/dist/client/external-tool-stream.js +114 -0
  30. package/data/build/dist/client/features/cli-adapters.d.ts +7 -0
  31. package/data/build/dist/client/features/cli-adapters.js +215 -0
  32. package/data/build/dist/client/features/debug.d.ts +4 -0
  33. package/data/build/dist/client/features/debug.js +24 -0
  34. package/data/build/dist/client/features/index.d.ts +33 -0
  35. package/data/build/dist/client/features/index.js +44 -0
  36. package/data/build/dist/client/features/lan-access-panel.d.ts +5 -0
  37. package/data/build/dist/client/features/lan-access-panel.js +146 -0
  38. package/data/build/dist/client/features/lan-access.d.ts +9 -0
  39. package/data/build/dist/client/features/lan-access.js +30 -0
  40. package/data/build/dist/client/features/login-protection-panel.d.ts +5 -0
  41. package/data/build/dist/client/features/login-protection-panel.js +91 -0
  42. package/data/build/dist/client/features/login-protection-session.d.ts +6 -0
  43. package/data/build/dist/client/features/login-protection-session.js +25 -0
  44. package/data/build/dist/client/features/login-protection.d.ts +4 -0
  45. package/data/build/dist/client/features/login-protection.js +23 -0
  46. package/data/build/dist/client/features/reverse-proxy-panel.d.ts +9 -0
  47. package/data/build/dist/client/features/reverse-proxy-panel.js +159 -0
  48. package/data/build/dist/client/features/reverse-proxy.d.ts +12 -0
  49. package/data/build/dist/client/features/reverse-proxy.js +112 -0
  50. package/data/build/dist/client/features/terminal-enhancement-panel.d.ts +5 -0
  51. package/data/build/dist/client/features/terminal-enhancement-panel.js +160 -0
  52. package/data/build/dist/client/features/terminal-enhancement.d.ts +4 -0
  53. package/data/build/dist/client/features/terminal-enhancement.js +24 -0
  54. package/data/build/dist/client/features/types.d.ts +58 -0
  55. package/data/build/dist/client/features/types.js +2 -0
  56. package/data/build/dist/client/features/workspace-session-enhancement-panel.d.ts +5 -0
  57. package/data/build/dist/client/features/workspace-session-enhancement-panel.js +66 -0
  58. package/data/build/dist/client/features/workspace-session-enhancement.d.ts +4 -0
  59. package/data/build/dist/client/features/workspace-session-enhancement.js +101 -0
  60. package/data/build/dist/client/h5-bootstrap-entry.d.ts +2 -0
  61. package/data/build/dist/client/h5-bootstrap-entry.js +17 -0
  62. package/data/build/dist/client/index.d.ts +31 -0
  63. package/data/build/dist/client/index.js +98 -0
  64. package/data/build/dist/client/lan-access.d.ts +28 -0
  65. package/data/build/dist/client/lan-access.js +68 -0
  66. package/data/build/dist/client/locale.d.ts +20 -0
  67. package/data/build/dist/client/locale.js +393 -0
  68. package/data/build/dist/client/provider-icon-assets.d.ts +2 -0
  69. package/data/build/dist/client/provider-icon-assets.js +23 -0
  70. package/data/build/dist/client/provider-icons.d.ts +19 -0
  71. package/data/build/dist/client/provider-icons.js +39 -0
  72. package/data/build/dist/client/remote-web-context.d.ts +57 -0
  73. package/data/build/dist/client/remote-web-context.js +939 -0
  74. package/data/build/dist/client/session-adapter-cache.d.ts +18 -0
  75. package/data/build/dist/client/session-adapter-cache.js +84 -0
  76. package/data/build/dist/client/settings-bridge.d.ts +32 -0
  77. package/data/build/dist/client/settings-bridge.js +126 -0
  78. package/data/build/dist/client/settings-section.d.ts +30 -0
  79. package/data/build/dist/client/settings-section.js +93 -0
  80. package/data/build/dist/client/subscription-slot.d.ts +18 -0
  81. package/data/build/dist/client/subscription-slot.js +223 -0
  82. package/data/build/dist/client/terminal/index.d.ts +4 -0
  83. package/data/build/dist/client/terminal/index.js +3 -0
  84. package/data/build/dist/client/terminal/model.d.ts +116 -0
  85. package/data/build/dist/client/terminal/model.js +435 -0
  86. package/data/build/dist/client/terminal/styles.d.ts +21 -0
  87. package/data/build/dist/client/terminal/styles.js +51 -0
  88. package/data/build/dist/client/terminal/ui.d.ts +19 -0
  89. package/data/build/dist/client/terminal/ui.js +257 -0
  90. package/data/build/dist/client/terminal/xterm-view.d.ts +13 -0
  91. package/data/build/dist/client/terminal/xterm-view.js +213 -0
  92. package/data/build/dist/client/theme.d.ts +56 -0
  93. package/data/build/dist/client/theme.js +186 -0
  94. package/data/build/dist/client/workspace-session-archive-dom.d.ts +29 -0
  95. package/data/build/dist/client/workspace-session-archive-dom.js +525 -0
  96. package/data/build/dist/client/workspace-session-fiber.d.ts +3 -0
  97. package/data/build/dist/client/workspace-session-fiber.js +33 -0
  98. package/data/build/dist/client/workspace-session-logo-dom.d.ts +26 -0
  99. package/data/build/dist/client/workspace-session-logo-dom.js +128 -0
  100. package/data/build/dist/features/index.d.ts +3 -0
  101. package/data/build/dist/features/index.js +2 -0
  102. package/data/build/dist/features/registry.d.ts +74 -0
  103. package/data/build/dist/features/registry.js +382 -0
  104. package/data/build/dist/features/resource-scope/index.d.ts +39 -0
  105. package/data/build/dist/features/resource-scope/index.js +161 -0
  106. package/data/build/dist/host/auth-session.d.ts +42 -0
  107. package/data/build/dist/host/auth-session.js +186 -0
  108. package/data/build/dist/host/cli-adapters/claude-driver.d.ts +14 -0
  109. package/data/build/dist/host/cli-adapters/claude-driver.js +103 -0
  110. package/data/build/dist/host/cli-adapters/codex-driver.d.ts +45 -0
  111. package/data/build/dist/host/cli-adapters/codex-driver.js +534 -0
  112. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts +38 -0
  113. package/data/build/dist/host/cli-adapters/command-code-driver.js +394 -0
  114. package/data/build/dist/host/cli-adapters/command-code-subscription.d.ts +19 -0
  115. package/data/build/dist/host/cli-adapters/command-code-subscription.js +126 -0
  116. package/data/build/dist/host/cli-adapters/driver.d.ts +41 -0
  117. package/data/build/dist/host/cli-adapters/driver.js +2 -0
  118. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts +37 -0
  119. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +180 -0
  120. package/data/build/dist/host/cli-adapters/dsh-tool-history.d.ts +48 -0
  121. package/data/build/dist/host/cli-adapters/dsh-tool-history.js +373 -0
  122. package/data/build/dist/host/cli-adapters/feature.d.ts +7 -0
  123. package/data/build/dist/host/cli-adapters/feature.js +335 -0
  124. package/data/build/dist/host/cli-adapters/gemini-driver.d.ts +24 -0
  125. package/data/build/dist/host/cli-adapters/gemini-driver.js +427 -0
  126. package/data/build/dist/host/cli-adapters/grok-driver.d.ts +38 -0
  127. package/data/build/dist/host/cli-adapters/grok-driver.js +372 -0
  128. package/data/build/dist/host/cli-adapters/http-sse-client.d.ts +22 -0
  129. package/data/build/dist/host/cli-adapters/http-sse-client.js +99 -0
  130. package/data/build/dist/host/cli-adapters/interaction-events.d.ts +11 -0
  131. package/data/build/dist/host/cli-adapters/interaction-events.js +80 -0
  132. package/data/build/dist/host/cli-adapters/json-rpc-process.d.ts +65 -0
  133. package/data/build/dist/host/cli-adapters/json-rpc-process.js +256 -0
  134. package/data/build/dist/host/cli-adapters/kimi-driver.d.ts +21 -0
  135. package/data/build/dist/host/cli-adapters/kimi-driver.js +382 -0
  136. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +22 -0
  137. package/data/build/dist/host/cli-adapters/model-catalog.js +89 -0
  138. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts +55 -0
  139. package/data/build/dist/host/cli-adapters/opencode-driver.js +728 -0
  140. package/data/build/dist/host/cli-adapters/pi-driver.d.ts +43 -0
  141. package/data/build/dist/host/cli-adapters/pi-driver.js +312 -0
  142. package/data/build/dist/host/cli-adapters/process-utils.d.ts +16 -0
  143. package/data/build/dist/host/cli-adapters/process-utils.js +27 -0
  144. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +82 -0
  145. package/data/build/dist/host/cli-adapters/provider-subscription.js +610 -0
  146. package/data/build/dist/host/cli-adapters/registry.d.ts +95 -0
  147. package/data/build/dist/host/cli-adapters/registry.js +659 -0
  148. package/data/build/dist/host/cli-adapters/rpc-driver-utils.d.ts +24 -0
  149. package/data/build/dist/host/cli-adapters/rpc-driver-utils.js +119 -0
  150. package/data/build/dist/host/cli-adapters/session-probe.d.ts +20 -0
  151. package/data/build/dist/host/cli-adapters/session-probe.js +139 -0
  152. package/data/build/dist/host/cli-adapters/session-store.d.ts +68 -0
  153. package/data/build/dist/host/cli-adapters/session-store.js +180 -0
  154. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +45 -0
  155. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +205 -0
  156. package/data/build/dist/host/cli-adapters/stream-normalizer.d.ts +25 -0
  157. package/data/build/dist/host/cli-adapters/stream-normalizer.js +83 -0
  158. package/data/build/dist/host/cli-adapters/tool-observation.d.ts +9 -0
  159. package/data/build/dist/host/cli-adapters/tool-observation.js +39 -0
  160. package/data/build/dist/host/control-api-client.d.ts +84 -0
  161. package/data/build/dist/host/control-api-client.js +130 -0
  162. package/data/build/dist/host/credential-store.d.ts +54 -0
  163. package/data/build/dist/host/credential-store.js +114 -0
  164. package/data/build/dist/host/debug.d.ts +79 -0
  165. package/data/build/dist/host/debug.js +295 -0
  166. package/data/build/dist/host/dsh-device-runtime.d.ts +39 -0
  167. package/data/build/dist/host/dsh-device-runtime.js +118 -0
  168. package/data/build/dist/host/dsh-gateway-feature.d.ts +5 -0
  169. package/data/build/dist/host/dsh-gateway-feature.js +55 -0
  170. package/data/build/dist/host/dsh-runtime-version.d.ts +12 -0
  171. package/data/build/dist/host/dsh-runtime-version.js +69 -0
  172. package/data/build/dist/host/features/auth.d.ts +11 -0
  173. package/data/build/dist/host/features/auth.js +273 -0
  174. package/data/build/dist/host/features/debug.d.ts +5 -0
  175. package/data/build/dist/host/features/debug.js +90 -0
  176. package/data/build/dist/host/features/host-status.d.ts +12 -0
  177. package/data/build/dist/host/features/host-status.js +54 -0
  178. package/data/build/dist/host/features/index.d.ts +19 -0
  179. package/data/build/dist/host/features/index.js +29 -0
  180. package/data/build/dist/host/features/lan-access-dsh.d.ts +8 -0
  181. package/data/build/dist/host/features/lan-access-dsh.js +45 -0
  182. package/data/build/dist/host/features/terminal-process.d.ts +5 -0
  183. package/data/build/dist/host/features/terminal-process.js +110 -0
  184. package/data/build/dist/host/features/terminal-status.d.ts +18 -0
  185. package/data/build/dist/host/features/terminal-status.js +56 -0
  186. package/data/build/dist/host/features/types.d.ts +41 -0
  187. package/data/build/dist/host/features/types.js +2 -0
  188. package/data/build/dist/host/index.d.ts +43 -0
  189. package/data/build/dist/host/index.js +135 -0
  190. package/data/build/dist/host/lan-access-dsh.d.ts +83 -0
  191. package/data/build/dist/host/lan-access-dsh.js +831 -0
  192. package/data/build/dist/host/native-session-bridge.d.ts +130 -0
  193. package/data/build/dist/host/native-session-bridge.js +317 -0
  194. package/data/build/dist/host/relay-tunnel-runtime.d.ts +97 -0
  195. package/data/build/dist/host/relay-tunnel-runtime.js +361 -0
  196. package/data/build/dist/host/remote-web-runtime.d.ts +78 -0
  197. package/data/build/dist/host/remote-web-runtime.js +559 -0
  198. package/data/build/dist/host/rpc-table.d.ts +32 -0
  199. package/data/build/dist/host/rpc-table.js +47 -0
  200. package/data/build/dist/host/rpc.d.ts +18 -0
  201. package/data/build/dist/host/rpc.js +248 -0
  202. package/data/build/dist/host/settings.d.ts +19 -0
  203. package/data/build/dist/host/settings.js +80 -0
  204. package/data/build/dist/host/terminal/attachment-registry.d.ts +17 -0
  205. package/data/build/dist/host/terminal/attachment-registry.js +49 -0
  206. package/data/build/dist/host/terminal/backends/conpty-backend.d.ts +39 -0
  207. package/data/build/dist/host/terminal/backends/conpty-backend.js +160 -0
  208. package/data/build/dist/host/terminal/backends/local-pty-backend.d.ts +36 -0
  209. package/data/build/dist/host/terminal/backends/local-pty-backend.js +178 -0
  210. package/data/build/dist/host/terminal/backends/tmux-backend.d.ts +40 -0
  211. package/data/build/dist/host/terminal/backends/tmux-backend.js +191 -0
  212. package/data/build/dist/host/terminal/broker/conpty-broker-client.d.ts +27 -0
  213. package/data/build/dist/host/terminal/broker/conpty-broker-client.js +154 -0
  214. package/data/build/dist/host/terminal/broker/conpty-broker-process.d.ts +10 -0
  215. package/data/build/dist/host/terminal/broker/conpty-broker-process.js +147 -0
  216. package/data/build/dist/host/terminal/broker/conpty-broker-protocol.d.ts +92 -0
  217. package/data/build/dist/host/terminal/broker/conpty-broker-protocol.js +134 -0
  218. package/data/build/dist/host/terminal/controller-factory.d.ts +37 -0
  219. package/data/build/dist/host/terminal/controller-factory.js +82 -0
  220. package/data/build/dist/host/terminal/index.d.ts +17 -0
  221. package/data/build/dist/host/terminal/index.js +17 -0
  222. package/data/build/dist/host/terminal/runtime-adapter.d.ts +77 -0
  223. package/data/build/dist/host/terminal/runtime-adapter.js +18 -0
  224. package/data/build/dist/host/terminal/runtime-manager.d.ts +41 -0
  225. package/data/build/dist/host/terminal/runtime-manager.js +179 -0
  226. package/data/build/dist/host/terminal/shell-detection.d.ts +23 -0
  227. package/data/build/dist/host/terminal/shell-detection.js +105 -0
  228. package/data/build/dist/host/terminal/startup.d.ts +33 -0
  229. package/data/build/dist/host/terminal/startup.js +100 -0
  230. package/data/build/dist/host/terminal/terminal-controller.d.ts +78 -0
  231. package/data/build/dist/host/terminal/terminal-controller.js +324 -0
  232. package/data/build/dist/host/terminal/terminal-process-service.d.ts +30 -0
  233. package/data/build/dist/host/terminal/terminal-process-service.js +194 -0
  234. package/data/build/dist/host/terminal/terminal-process-store.d.ts +45 -0
  235. package/data/build/dist/host/terminal/terminal-process-store.js +183 -0
  236. package/data/build/dist/host/terminal/terminal-service.d.ts +87 -0
  237. package/data/build/dist/host/terminal/terminal-service.js +528 -0
  238. package/data/build/dist/host/terminal/terminal-store.d.ts +49 -0
  239. package/data/build/dist/host/terminal/terminal-store.js +242 -0
  240. package/data/build/dist/index.d.ts +37 -0
  241. package/data/build/dist/index.js +26 -0
  242. package/data/build/dist/shared/contracts/auth.d.ts +122 -0
  243. package/data/build/dist/shared/contracts/auth.js +8 -0
  244. package/data/build/dist/shared/contracts/cli-adapter.d.ts +192 -0
  245. package/data/build/dist/shared/contracts/cli-adapter.js +2 -0
  246. package/data/build/dist/shared/contracts/command-code.d.ts +5 -0
  247. package/data/build/dist/shared/contracts/command-code.js +2 -0
  248. package/data/build/dist/shared/contracts/config.d.ts +113 -0
  249. package/data/build/dist/shared/contracts/config.js +86 -0
  250. package/data/build/dist/shared/contracts/debug-config.d.ts +28 -0
  251. package/data/build/dist/shared/contracts/debug-config.js +78 -0
  252. package/data/build/dist/shared/contracts/debug.d.ts +75 -0
  253. package/data/build/dist/shared/contracts/debug.js +121 -0
  254. package/data/build/dist/shared/contracts/dsh-device.d.ts +72 -0
  255. package/data/build/dist/shared/contracts/dsh-device.js +2 -0
  256. package/data/build/dist/shared/contracts/errors.d.ts +33 -0
  257. package/data/build/dist/shared/contracts/errors.js +41 -0
  258. package/data/build/dist/shared/contracts/feature.d.ts +71 -0
  259. package/data/build/dist/shared/contracts/feature.js +2 -0
  260. package/data/build/dist/shared/contracts/host-status.d.ts +14 -0
  261. package/data/build/dist/shared/contracts/host-status.js +2 -0
  262. package/data/build/dist/shared/contracts/lan-access-dsh.d.ts +30 -0
  263. package/data/build/dist/shared/contracts/lan-access-dsh.js +2 -0
  264. package/data/build/dist/shared/contracts/peer-host.d.ts +37 -0
  265. package/data/build/dist/shared/contracts/peer-host.js +9 -0
  266. package/data/build/dist/shared/contracts/signaling.d.ts +67 -0
  267. package/data/build/dist/shared/contracts/signaling.js +2 -0
  268. package/data/build/dist/shared/contracts/subscription.d.ts +69 -0
  269. package/data/build/dist/shared/contracts/subscription.js +2 -0
  270. package/data/build/dist/shared/contracts/terminal-process.d.ts +65 -0
  271. package/data/build/dist/shared/contracts/terminal-process.js +2 -0
  272. package/data/build/dist/shared/contracts/terminal.d.ts +127 -0
  273. package/data/build/dist/shared/contracts/terminal.js +2 -0
  274. package/data/build/dist/shared/contracts/transport.d.ts +45 -0
  275. package/data/build/dist/shared/contracts/transport.js +3 -0
  276. package/data/build/dist/shared/contracts/version.d.ts +19 -0
  277. package/data/build/dist/shared/contracts/version.js +74 -0
  278. package/data/build/dist/shared/index.d.ts +22 -0
  279. package/data/build/dist/shared/index.js +9 -0
  280. package/data/build/dist/transport/carrier.d.ts +38 -0
  281. package/data/build/dist/transport/carrier.js +268 -0
  282. package/data/build/dist/transport/debug.d.ts +22 -0
  283. package/data/build/dist/transport/debug.js +57 -0
  284. package/data/build/dist/transport/dsh-envelope.d.ts +41 -0
  285. package/data/build/dist/transport/dsh-envelope.js +107 -0
  286. package/data/build/dist/transport/dsh-gateway.d.ts +64 -0
  287. package/data/build/dist/transport/dsh-gateway.js +254 -0
  288. package/data/build/dist/transport/dsh-session.d.ts +55 -0
  289. package/data/build/dist/transport/dsh-session.js +256 -0
  290. package/data/build/dist/transport/dsh-transport.d.ts +57 -0
  291. package/data/build/dist/transport/dsh-transport.js +125 -0
  292. package/data/build/dist/transport/frame.d.ts +132 -0
  293. package/data/build/dist/transport/frame.js +168 -0
  294. package/data/build/dist/transport/index.d.ts +11 -0
  295. package/data/build/dist/transport/index.js +11 -0
  296. package/data/build/dist/transport/multiplexer.d.ts +63 -0
  297. package/data/build/dist/transport/multiplexer.js +323 -0
  298. package/data/build/dist/transport/webrtc-client.d.ts +65 -0
  299. package/data/build/dist/transport/webrtc-client.js +255 -0
  300. package/data/build/dist/transport/webrtc-host.d.ts +58 -0
  301. package/data/build/dist/transport/webrtc-host.js +252 -0
  302. package/data/build/dist/typert.host.d.ts +25 -0
  303. package/data/build/dist/typert.host.js +150 -0
  304. package/dsh.bundle.patch +12 -0
  305. package/package.json +135 -0
  306. package/profile/README.md +27 -0
  307. package/profile/cordis.patch.yml +2 -0
  308. package/profile/package.json +20 -0
  309. package/profile/scripts/check-dsh-install.mjs +71 -0
  310. package/profile/version.json +5 -0
  311. package/scripts/check-dsh-install.mjs +88 -0
  312. package/version.json +6 -0
@@ -0,0 +1,393 @@
1
+ import { useSyncExternalStore } from 'react';
2
+ /** Codingns4DSH 自有词典命名空间。词典缺少的语言由 DSH 自动回退到英文。 */
3
+ export const CODINGNS_LOCALE_NS = 'codingns';
4
+ const en = {
5
+ 'common.brand': 'Codingns4DSH',
6
+ 'settings.title': 'Codingns4DSH features',
7
+ 'settings.subtitle': 'Configure modules without changing DSH global settings.',
8
+ 'settings.restartTarget': 'Target after restart: {state}',
9
+ 'settings.enabled': 'Enabled',
10
+ 'settings.disabled': 'Disabled',
11
+ 'settings.runtimeReported': 'The current process state is reported by the module runtime.',
12
+ 'settings.restartRequired': 'Restart DSH to apply this change.',
13
+ 'settings.toggle': '{label} toggle',
14
+ 'settings.legacyFallback': 'This DSH version uses compatibility mode; multi-tab and shell-selection extensions are unavailable.',
15
+ 'settings.versionBlocked': 'This module is unavailable on DSH {version}; it requires DSH {minimum} or newer.',
16
+ 'feature.workspaceSession.legacyFallback': 'DSH 0.1.5 compatibility path is enabled but not verified. Session-row DOM injection and archive entry placement may vary; restoring archived sessions is unavailable.',
17
+ 'feature.lanAccess.label': 'LAN access to DSH',
18
+ 'feature.lanAccess.description': 'Access DSH through a LAN IP, provide crypto.randomUUID when needed, and forward the listener to the current DSH Web port.',
19
+ 'feature.loginProtection.label': 'Login protection',
20
+ 'feature.loginProtection.description': 'Protect LAN and relay DSH Web access with one local account; loopback access is always allowed.',
21
+ 'feature.reverseProxy.label': 'Relay access service',
22
+ 'feature.reverseProxy.description': 'Access a DSH Host through the isolated DSH-Codingns4DSH relay.',
23
+ 'feature.cliAdapters.label': 'External Agent integration',
24
+ 'feature.cliAdapters.description': 'View installed external Agents, versions, command paths, available models, and enable them independently.',
25
+ 'feature.workspaceSession.label': 'Workspace session enhancement',
26
+ 'feature.workspaceSession.description': 'Show the Agent logo, archived-session entry, and subscription or usage information.',
27
+ 'feature.terminal.label': 'Terminal enhancement',
28
+ 'feature.terminal.description': 'Configure the default shell and terminal appearance. Enabling or disabling requires a DSH restart.',
29
+ 'terminal.title': 'Terminal',
30
+ 'terminal.new': 'New terminal',
31
+ 'terminal.description': 'Run commands in the session workspace',
32
+ 'terminal.loadingShell': 'Reading shells…',
33
+ 'terminal.retry': 'Retry',
34
+ 'terminal.noShell': 'No available shell',
35
+ 'terminal.selectShell': 'Select Shell',
36
+ 'terminal.error': 'Terminal error',
37
+ 'terminal.rename': 'Double-click to rename terminal',
38
+ 'terminal.cleanupFailed': 'Terminal “{title}” could not be closed: {message}',
39
+ 'terminal.currentStatus': 'Current status: {status}; Host platform: {platform}',
40
+ 'terminal.enhanced': 'Terminal enhancement enabled',
41
+ 'terminal.basic': 'Basic local terminal',
42
+ 'terminal.saved': 'Terminal settings saved',
43
+ 'terminal.readingStatus': 'Reading Host terminal status…',
44
+ 'terminal.restartNote': 'Enabling or disabling requires a DSH restart. Disabling stops restoration and connection only; existing tmux or ConPTY sessions are not terminated.',
45
+ 'terminal.newDefault': 'New terminal default',
46
+ 'terminal.theme': 'Theme',
47
+ 'terminal.bindingScope': 'Terminal binding scope',
48
+ 'terminal.systemRecommended': 'System recommended',
49
+ 'terminal.inheritDshTheme': 'Inherit DSH theme',
50
+ 'terminal.custom': 'Custom',
51
+ 'terminal.background': 'Background color',
52
+ 'terminal.foreground': 'Foreground color',
53
+ 'terminal.cursorColor': 'Cursor color',
54
+ 'terminal.font': 'Font',
55
+ 'terminal.fontSize': 'Font size (px)',
56
+ 'terminal.lineHeight': 'Line height',
57
+ 'terminal.cursorShape': 'Cursor shape',
58
+ 'terminal.cursorBlink': 'Cursor blink',
59
+ 'terminal.scrollback': 'Scrollback lines',
60
+ 'terminal.inheritFont': 'Inherit DSH native font',
61
+ 'terminal.inherit': 'Inherit',
62
+ 'terminal.workspaceBinding': 'Bind by workspace (recommended)',
63
+ 'terminal.sessionBinding': 'Bind by DSH session',
64
+ 'terminal.workspaceBindingHelp': 'Workspace mode shares a terminal between DSH sessions in the same workspace; session mode gives each session its own terminal. Changing the scope requires a restart.',
65
+ 'terminal.defaultProfileHelp': '“System recommended” is resolved by Host from the operating system and installed shells; unavailable saved values fall back to the system recommendation.',
66
+ 'terminal.profileUnavailable': '{profile} (currently unavailable)',
67
+ 'terminal.cursorInherit': 'Inherit',
68
+ 'terminal.cursorBlock': 'Block',
69
+ 'terminal.cursorBar': 'Bar',
70
+ 'terminal.cursorUnderline': 'Underline',
71
+ 'terminal.cursorOn': 'On',
72
+ 'terminal.cursorOff': 'Off',
73
+ 'terminal.resetInherit': 'Restore inherited',
74
+ 'terminal.unsupportedPlatform': 'Unsupported platform',
75
+ 'lan.listenHost': 'Listen host',
76
+ 'lan.description': 'Add a listener on this machine and redirect access to the current DSH Web. This is LAN access and does not use the cross-NAT relay service.',
77
+ 'lan.listenPort': 'Listen port',
78
+ 'lan.dshPort': 'Local DSH port (auto-detected, or enter manually)',
79
+ 'lan.allInterfaces': 'All interfaces (0.0.0.0)',
80
+ 'lan.detect': 'Auto-detect',
81
+ 'lan.detectMultiple': 'Multiple DSH instance ports detected: {ports}. Select one manually.',
82
+ 'lan.detectNone': 'No DSH Web port detected. Enter it manually.',
83
+ 'lan.detected': 'Detected DSH Web ports: {ports}',
84
+ 'lan.autoStart': 'Auto-start (restore the current mapping when DSH starts)',
85
+ 'lan.start': 'Start LAN access to DSH',
86
+ 'lan.update': 'Update LAN access to DSH',
87
+ 'lan.stop': 'Stop',
88
+ 'lan.forwarding': 'Forwarding: http://{host}:{port} → DSH Web 127.0.0.1:{dshPort}',
89
+ 'lan.started': 'LAN access to DSH started: http://{host}:{port} → 127.0.0.1:{dshPort}',
90
+ 'lan.stopped': 'LAN access to DSH stopped',
91
+ 'lan.autoStartOn': 'Auto-start enabled. The mapping will be restored the next time DSH starts.',
92
+ 'lan.autoStartOff': 'Auto-start disabled',
93
+ 'lan.processing': 'Processing…',
94
+ 'relay.controlApi': 'Control API address',
95
+ 'relay.add': 'Add',
96
+ 'relay.cancel': 'Cancel',
97
+ 'relay.adding': 'Adding…',
98
+ 'relay.email': 'Email',
99
+ 'relay.password': 'Password',
100
+ 'relay.refreshDevices': 'Refresh devices',
101
+ 'relay.logout': 'Log out',
102
+ 'relay.bindHost': 'Bind current Host',
103
+ 'relay.unbindHost': 'Unbind current Host',
104
+ 'relay.hostLabel': 'Host label',
105
+ 'relay.hostPublicKey': 'Host public key',
106
+ 'relay.hostFingerprint': 'Host fingerprint',
107
+ 'relay.settings': 'Service settings',
108
+ 'relay.loginHint': 'Log in to Codingns4DSH to manage devices and the current Host.',
109
+ 'relay.addServer': 'Add relay server',
110
+ 'relay.addServerHint': 'Enter a new Control API address.',
111
+ 'relay.login': 'Log in',
112
+ 'relay.loggingIn': 'Logging in…',
113
+ 'relay.loggedIn': 'Logged in',
114
+ 'relay.loggingOut': 'Logged out',
115
+ 'relay.loginSuccess': 'Login succeeded',
116
+ 'relay.loggedOut': 'Logged out',
117
+ 'relay.bindSuccess': 'Host bound successfully',
118
+ 'relay.unbindSuccess': 'Host unbound',
119
+ 'relay.device': 'Device: {value}',
120
+ 'relay.host': 'Host: {value}',
121
+ 'relay.devicesSummary': 'Current device {current}; other active devices: {count}',
122
+ 'relay.dshDevices': 'DSH-Codingns4DSH devices',
123
+ 'relay.selectDevice': 'Select a DSH Host',
124
+ 'relay.online': 'online',
125
+ 'relay.offline': 'offline',
126
+ 'relay.unknown': 'Unknown',
127
+ 'relay.unrecognized': 'Unrecognized',
128
+ 'relay.unbound': 'Unbound',
129
+ 'cli.installStatus': 'Installation status',
130
+ 'cli.enabledStatus': 'Enabled status',
131
+ 'cli.version': 'Version',
132
+ 'cli.commandPath': 'Command path',
133
+ 'cli.protocol': 'Standard protocol',
134
+ 'cli.capabilities': 'Verified capabilities',
135
+ 'cli.installed': 'Installed',
136
+ 'cli.notInstalled': 'Not installed',
137
+ 'cli.enabled': 'Enabled',
138
+ 'cli.disabled': 'Disabled',
139
+ 'cli.notDetectedVersion': 'Version not detected',
140
+ 'cli.notDetectedCommand': 'Command not detected',
141
+ 'cli.undeclared': 'Undeclared',
142
+ 'cli.defaultEffort': 'Default',
143
+ 'cli.thinkingLevel': 'Thinking level: {value}',
144
+ 'cli.agentSelector': 'Agent selector',
145
+ 'cli.modelSelector': 'Model and thinking level selector',
146
+ 'cli.adapterToggle': '{name} toggle',
147
+ 'cli.loadingModel': 'Loading models…',
148
+ 'cli.noModelsAvailable': 'No models available',
149
+ 'cli.model': 'Model',
150
+ 'cli.thinking': 'Thinking level',
151
+ 'cli.back': '‹ Back',
152
+ 'cli.chooseModel': 'Choose model, current {model}, thinking level {effort}',
153
+ 'cli.chooseModelMenu': 'Model and thinking level',
154
+ 'cli.readingAgents': 'Reading external Agent status…',
155
+ 'cli.noAgents': 'No external Agent is currently available.',
156
+ 'cli.viewDetails': 'View {name} details',
157
+ 'cli.closeDetails': 'Close Agent details',
158
+ 'cli.sessions': 'External Agent sessions',
159
+ 'cli.readingSessions': 'Reading external sessions…',
160
+ 'cli.noSessions': 'No external Agent sessions have been created.',
161
+ 'cli.session': '{id} session',
162
+ 'cli.open': 'Open',
163
+ 'cli.opening': 'Opening…',
164
+ 'cli.remove': 'Remove',
165
+ 'cli.removing': 'Removing…',
166
+ 'cli.removeFromSidebar': 'Remove {name} from sidebar',
167
+ 'cli.modelCatalog': 'Model catalog',
168
+ 'cli.agentNotInstalled': 'Agent is not installed; the model catalog cannot be read.',
169
+ 'cli.agentDisabled': 'Agent is disabled; enable it before reading the model catalog.',
170
+ 'cli.readingModels': 'Reading model catalog…',
171
+ 'cli.done': 'Done',
172
+ 'cli.noModels': 'No models found.',
173
+ 'cli.statusMissing': 'Original session was deleted',
174
+ 'cli.statusCorrupt': 'Original session is corrupted',
175
+ 'cli.statusUnreachable': 'The original session cannot be checked right now',
176
+ 'cli.statusEphemeral': 'No separate original session',
177
+ 'cli.statusActive': 'Running',
178
+ 'cli.statusError': 'Error',
179
+ 'cli.statusArchived': 'Archived',
180
+ 'cli.statusPaused': 'Paused',
181
+ 'cli.currentAgent': 'Current Agent: {name}{locked}',
182
+ 'cli.locked': ' (locked)',
183
+ 'cli.selectAgent': 'Select Agent',
184
+ 'workspace.showLogo': 'Show Agent logo',
185
+ 'workspace.logoDescription': 'Display the selected external Agent logo in native workspace session rows.',
186
+ 'workspace.showArchivedSessions': 'Show archived workspace sessions',
187
+ 'workspace.archivedSessionsDescription': 'Display an archived-session folder entry above each workspace\'s more-sessions button.',
188
+ 'workspace.showSubscriptionUsage': 'Show subscription and usage',
189
+ 'workspace.subscriptionUsageDescription': 'Detect and display provider subscription balances and upstream usage in the conversation footer.',
190
+ };
191
+ const zh = {
192
+ 'common.brand': 'Codingns4DSH',
193
+ 'settings.title': 'Codingns4DSH 功能模块',
194
+ 'settings.subtitle': '按模块配置 Codingns4DSH 功能,不影响 DSH 的全局设置。',
195
+ 'settings.restartTarget': '下次启动目标:{state}',
196
+ 'settings.enabled': '启用',
197
+ 'settings.disabled': '禁用',
198
+ 'settings.runtimeReported': '当前进程状态由模块运行时报告',
199
+ 'settings.restartRequired': '重启 DSH 后生效',
200
+ 'settings.toggle': '{label}开关',
201
+ 'settings.legacyFallback': '当前 DSH 版本使用兼容模式;多 Tab 和 Shell 选择扩展不可用。',
202
+ 'settings.versionBlocked': '当前 DSH {version} 不支持此模块;需要 DSH {minimum} 或更高版本。',
203
+ 'feature.workspaceSession.legacyFallback': '已启用 DSH 0.1.5 兼容路径,但尚未完成验证。会话行 DOM 注入和归档入口位置可能存在差异;当前版本不支持取消归档。',
204
+ 'feature.lanAccess.label': '局域网访问DSH',
205
+ 'feature.lanAccess.description': '通过局域网 IP 访问 DSH,自动补齐 crypto.randomUUID,并将监听端口转发到当前 DSH Web。',
206
+ 'feature.loginProtection.label': '登录保护',
207
+ 'feature.loginProtection.description': '使用统一的本地账号保护局域网和中继 DSH Web 访问,本机回环地址始终放行。',
208
+ 'feature.reverseProxy.label': '中转访问服务',
209
+ 'feature.reverseProxy.description': '通过隔离的 DSH-Codingns4DSH 中继访问 DSH Host。',
210
+ 'feature.cliAdapters.label': '外部Agent集成',
211
+ 'feature.cliAdapters.description': '查看外部 Agent 的安装状态、版本、命令路径和可用模型,并单独启用或停用。',
212
+ 'feature.workspaceSession.label': '工作区会话增强',
213
+ 'feature.workspaceSession.description': '在原生工作区会话行显示 Agent Logo、归档会话入口和订阅/用量信息。',
214
+ 'feature.terminal.label': '终端强化',
215
+ 'feature.terminal.description': '配置持久终端的默认 shell 与插件终端外观。启用和禁用均需重启 DSH。',
216
+ 'terminal.title': '终端',
217
+ 'terminal.new': '新建终端',
218
+ 'terminal.description': '在会话工作区运行命令',
219
+ 'terminal.loadingShell': '正在读取 Shell…',
220
+ 'terminal.retry': '重试',
221
+ 'terminal.noShell': '没有可用的 Shell',
222
+ 'terminal.selectShell': '选择 Shell',
223
+ 'terminal.error': '终端错误',
224
+ 'terminal.rename': '双击重命名终端',
225
+ 'terminal.cleanupFailed': '终端「{title}」未能结束:{message}',
226
+ 'terminal.currentStatus': '当前运行状态:{status};Host 平台:{platform}',
227
+ 'terminal.enhanced': '终端强化已启用',
228
+ 'terminal.basic': '基础本地终端',
229
+ 'terminal.saved': '终端设置已保存',
230
+ 'terminal.readingStatus': '正在读取 Host 终端状态...',
231
+ 'terminal.restartNote': '启用或禁用需要重启 DSH。禁用只会停止恢复和连接,不会结束已有的 tmux 或 ConPTY 会话。',
232
+ 'terminal.newDefault': '新建终端默认项',
233
+ 'terminal.theme': '主题',
234
+ 'terminal.bindingScope': '终端绑定范围',
235
+ 'terminal.systemRecommended': '系统推荐',
236
+ 'terminal.inheritDshTheme': '继承 DSH 主题',
237
+ 'terminal.custom': '自定义',
238
+ 'terminal.background': '背景色',
239
+ 'terminal.foreground': '前景色',
240
+ 'terminal.cursorColor': '光标颜色',
241
+ 'terminal.font': '字体',
242
+ 'terminal.fontSize': '字号(px)',
243
+ 'terminal.lineHeight': '行高',
244
+ 'terminal.cursorShape': '光标形状',
245
+ 'terminal.cursorBlink': '光标闪烁',
246
+ 'terminal.scrollback': '回滚行数',
247
+ 'terminal.inheritFont': '继承 DSH 原生字体',
248
+ 'terminal.inherit': '继承',
249
+ 'terminal.workspaceBinding': '按工作区绑定(推荐)',
250
+ 'terminal.sessionBinding': '按 DSH 会话绑定',
251
+ 'terminal.workspaceBindingHelp': '工作区模式下,同一工作区的不同 DSH 会话共享终端;会话模式下,每个会话拥有独立终端。切换范围需要重启 DSH。',
252
+ 'terminal.defaultProfileHelp': '“系统推荐”由 Host 根据操作系统和已安装的 shell 解析;不可用的已保存项会回退到系统推荐。',
253
+ 'terminal.profileUnavailable': '{profile}(当前不可用)',
254
+ 'terminal.cursorInherit': '继承',
255
+ 'terminal.cursorBlock': '方块',
256
+ 'terminal.cursorBar': '竖线',
257
+ 'terminal.cursorUnderline': '下划线',
258
+ 'terminal.cursorOn': '开启',
259
+ 'terminal.cursorOff': '关闭',
260
+ 'terminal.resetInherit': '恢复继承',
261
+ 'terminal.unsupportedPlatform': '不支持的平台',
262
+ 'lan.listenHost': '监听地址',
263
+ 'lan.description': '在本机增加一个监听端口,将访问重定向到当前 DSH Web。此功能属于局域网访问,不经过跨 NAT 中转服务。',
264
+ 'lan.listenPort': '监听端口',
265
+ 'lan.dshPort': 'DSH 本地端口(自动探测,也可手动填写)',
266
+ 'lan.allInterfaces': '所有网卡(0.0.0.0)',
267
+ 'lan.detect': '自动探测',
268
+ 'lan.detectMultiple': '检测到多个 DSH 实例端口:{ports},请手动选择。',
269
+ 'lan.detectNone': '未探测到 DSH Web 端口,请手动填写',
270
+ 'lan.detected': '已探测到 DSH Web 端口:{ports}',
271
+ 'lan.autoStart': '自动启动(启动 DSH 时自动恢复当前映射)',
272
+ 'lan.start': '启动局域网访问DSH',
273
+ 'lan.update': '更新局域网访问DSH',
274
+ 'lan.stop': '停止',
275
+ 'lan.forwarding': '当前转发:http://{host}:{port} → DSH Web 127.0.0.1:{dshPort}',
276
+ 'lan.started': '局域网访问DSH已启动:http://{host}:{port} → 127.0.0.1:{dshPort}',
277
+ 'lan.stopped': '局域网访问DSH已停止',
278
+ 'lan.autoStartOn': '已开启自动启动,下一次启动 DSH 时将自动恢复映射',
279
+ 'lan.autoStartOff': '已关闭自动启动',
280
+ 'lan.processing': '处理中…',
281
+ 'relay.controlApi': 'Control API 地址',
282
+ 'relay.add': '添加',
283
+ 'relay.cancel': '取消',
284
+ 'relay.adding': '添加中…',
285
+ 'relay.email': '邮箱',
286
+ 'relay.password': '密码',
287
+ 'relay.refreshDevices': '刷新设备',
288
+ 'relay.logout': '退出登录',
289
+ 'relay.bindHost': '绑定 Host',
290
+ 'relay.unbindHost': '解绑当前 Host',
291
+ 'relay.hostLabel': 'Host 标签',
292
+ 'relay.hostPublicKey': 'Host 公钥',
293
+ 'relay.hostFingerprint': 'Host 指纹',
294
+ 'relay.settings': '服务设置',
295
+ 'relay.loginHint': '登录 Codingns4DSH,管理设备和当前 Host。',
296
+ 'relay.addServer': '添加中转服务器',
297
+ 'relay.addServerHint': '请输入新的 Control API 地址。',
298
+ 'relay.login': '登录',
299
+ 'relay.loggingIn': '登录中…',
300
+ 'relay.loggedIn': '已登录',
301
+ 'relay.loggingOut': '退出登录',
302
+ 'relay.loginSuccess': '登录成功',
303
+ 'relay.bindSuccess': 'Host 绑定成功',
304
+ 'relay.unbindSuccess': 'Host 已解绑',
305
+ 'relay.loggedOut': '已退出登录',
306
+ 'relay.device': '设备:{value}',
307
+ 'relay.host': 'Host:{value}',
308
+ 'relay.devicesSummary': '当前设备 {current},其他活动设备 {count} 台',
309
+ 'relay.dshDevices': 'DSH-Codingns4DSH 设备',
310
+ 'relay.selectDevice': '选择 DSH Host',
311
+ 'relay.online': '在线',
312
+ 'relay.offline': '离线',
313
+ 'relay.unknown': '未知',
314
+ 'relay.unrecognized': '未识别',
315
+ 'relay.unbound': '未绑定',
316
+ 'cli.installStatus': '安装状态',
317
+ 'cli.enabledStatus': '启用状态',
318
+ 'cli.version': '版本',
319
+ 'cli.commandPath': '命令路径',
320
+ 'cli.protocol': '标准协议',
321
+ 'cli.capabilities': '已验证能力',
322
+ 'cli.installed': '已安装',
323
+ 'cli.notInstalled': '未安装',
324
+ 'cli.enabled': '已启用',
325
+ 'cli.disabled': '已停用',
326
+ 'cli.notDetectedVersion': '未检测到版本',
327
+ 'cli.notDetectedCommand': '未检测到命令',
328
+ 'cli.undeclared': '未声明',
329
+ 'cli.defaultEffort': '默认',
330
+ 'cli.thinkingLevel': '思考等级:{value}',
331
+ 'cli.agentSelector': 'Agent 选择器',
332
+ 'cli.modelSelector': '模型与思考强度选择器',
333
+ 'cli.adapterToggle': '{name}启用开关',
334
+ 'cli.loadingModel': '加载模型…',
335
+ 'cli.noModelsAvailable': '无可用模型',
336
+ 'cli.model': '模型',
337
+ 'cli.thinking': '思考等级',
338
+ 'cli.back': '‹ 返回',
339
+ 'cli.chooseModel': '选择模型,当前 {model},思考等级 {effort}',
340
+ 'cli.chooseModelMenu': '模型与思考等级',
341
+ 'cli.readingAgents': '正在读取外部 Agent 状态…',
342
+ 'cli.noAgents': '当前没有可用的外部 Agent。',
343
+ 'cli.viewDetails': '查看 {name} 详情',
344
+ 'cli.closeDetails': '关闭 Agent 详情',
345
+ 'cli.sessions': '外部 Agent 会话',
346
+ 'cli.readingSessions': '正在读取外部会话…',
347
+ 'cli.noSessions': '尚未创建外部 Agent 会话。',
348
+ 'cli.session': '{id} 会话',
349
+ 'cli.open': '打开',
350
+ 'cli.opening': '打开中…',
351
+ 'cli.remove': '移除',
352
+ 'cli.removing': '移除中…',
353
+ 'cli.removeFromSidebar': '从侧栏移除 {name}',
354
+ 'cli.modelCatalog': '模型目录',
355
+ 'cli.agentNotInstalled': 'Agent 未安装,无法读取模型目录。',
356
+ 'cli.agentDisabled': 'Agent 已停用,启用后才能读取模型目录。',
357
+ 'cli.readingModels': '正在读取模型目录…',
358
+ 'cli.done': '完成',
359
+ 'cli.noModels': '没有读取到模型。',
360
+ 'cli.statusMissing': '原始会话已删除',
361
+ 'cli.statusCorrupt': '原始会话已损坏',
362
+ 'cli.statusUnreachable': '暂时无法检查原始会话',
363
+ 'cli.statusEphemeral': '无独立原始会话',
364
+ 'cli.statusActive': '运行中',
365
+ 'cli.statusError': '异常',
366
+ 'cli.statusArchived': '已归档',
367
+ 'cli.statusPaused': '已暂停',
368
+ 'cli.currentAgent': '当前 Agent:{name}{locked}',
369
+ 'cli.locked': '(已锁定)',
370
+ 'cli.selectAgent': '选择 Agent',
371
+ 'workspace.showLogo': '显示 Agent Logo',
372
+ 'workspace.logoDescription': '在原生工作区会话行显示所选外部 Agent 的 Logo。',
373
+ 'workspace.showArchivedSessions': '显示工作区归档会话',
374
+ 'workspace.archivedSessionsDescription': '在每个工作区的“展开其余会话”按钮上方显示已归档的会话入口。',
375
+ 'workspace.showSubscriptionUsage': '显示订阅/用量检测',
376
+ 'workspace.subscriptionUsageDescription': '在对话底部检测并显示 Agent 订阅余额和上游用量。',
377
+ };
378
+ /** 在当前 Client Cordis 作用域注册中英文词典。 */
379
+ export function registerCodingNsLocale(ctx) {
380
+ return ctx.locale.register(CODINGNS_LOCALE_NS, { en, zh });
381
+ }
382
+ /** 订阅 DSH 语言修订,并返回当前 Codingns4DSH 命名空间翻译函数。 */
383
+ export function useCodingNsTranslator(locale) {
384
+ const getRevision = () => locale.getSnapshot().revision;
385
+ const subscribe = (listener) => locale.subscribe(listener);
386
+ useSyncExternalStore(subscribe, getRevision, getRevision);
387
+ return locale.bind(CODINGNS_LOCALE_NS);
388
+ }
389
+ /** 非 React 注册回调使用的翻译函数。 */
390
+ export function codingNsTranslator(locale) {
391
+ return locale.bind(CODINGNS_LOCALE_NS);
392
+ }
393
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider-icon-assets.d.ts.map
@@ -0,0 +1,23 @@
1
+ import claudeCodeIcon from '../../assets/provider-icons/claude-code.png';
2
+ import codexIcon from '../../assets/provider-icons/codex.png';
3
+ import commandCodeIcon from '../../assets/provider-icons/command-code.svg';
4
+ import deepSeekHarnessIcon from '../../assets/provider-icons/deepseek-harness.svg';
5
+ import geminiIcon from '../../assets/provider-icons/gemini.png';
6
+ import grokIcon from '../../assets/provider-icons/grok.png';
7
+ import kimiIcon from '../../assets/provider-icons/kimi.png';
8
+ import openCodeIcon from '../../assets/provider-icons/opencode.png';
9
+ import piIcon from '../../assets/provider-icons/pi.svg';
10
+ import { installProviderIcons } from './provider-icons.js';
11
+ /** 资产只在浏览器单文件入口中加载,由 tsdown 转成 data URL。 */
12
+ installProviderIcons({
13
+ dsh: deepSeekHarnessIcon,
14
+ 'command-code': commandCodeIcon,
15
+ 'claude-code': claudeCodeIcon,
16
+ kimi: kimiIcon,
17
+ gemini: geminiIcon,
18
+ pi: piIcon,
19
+ codex: codexIcon,
20
+ opencode: openCodeIcon,
21
+ grok: grokIcon,
22
+ });
23
+ //# sourceMappingURL=provider-icon-assets.js.map
@@ -0,0 +1,19 @@
1
+ export interface ProviderVisual {
2
+ readonly adapterId: string | null;
3
+ readonly displayName: string;
4
+ readonly iconUrl: string | undefined;
5
+ }
6
+ interface ProviderDefinition {
7
+ readonly adapterId: string;
8
+ readonly displayName: string;
9
+ }
10
+ /** 外部 Agent 标识与显示名称的唯一映射。浏览器入口另行安装内联资产。 */
11
+ declare const PROVIDER_DEFINITIONS: Readonly<Record<string, ProviderDefinition>>;
12
+ declare const PROVIDER_ICONS: Record<string, string>;
13
+ /** 只由浏览器入口调用,使普通 Node 测试不需要加载 png/svg。 */
14
+ export declare function installProviderIcons(icons: Readonly<Record<string, string>>): void;
15
+ export declare function providerIconUrl(adapterId: string): string | undefined;
16
+ /** 未绑定和未知值都返回中性占位,绝不冒充任一已知品牌。 */
17
+ export declare function providerVisual(adapterId: string | undefined): ProviderVisual;
18
+ export { PROVIDER_DEFINITIONS, PROVIDER_ICONS };
19
+ //# sourceMappingURL=provider-icons.d.ts.map
@@ -0,0 +1,39 @@
1
+ /** 外部 Agent 标识与显示名称的唯一映射。浏览器入口另行安装内联资产。 */
2
+ const PROVIDER_DEFINITIONS = {
3
+ dsh: { adapterId: 'dsh', displayName: 'DeepSeek Harness' },
4
+ 'command-code': { adapterId: 'command-code', displayName: 'Command Code' },
5
+ 'claude-code': { adapterId: 'claude-code', displayName: 'Claude Code' },
6
+ kimi: { adapterId: 'kimi', displayName: 'Kimi' },
7
+ gemini: { adapterId: 'gemini', displayName: 'Gemini CLI' },
8
+ pi: { adapterId: 'pi', displayName: 'Pi' },
9
+ codex: { adapterId: 'codex', displayName: 'Codex' },
10
+ opencode: { adapterId: 'opencode', displayName: 'OpenCode' },
11
+ grok: { adapterId: 'grok', displayName: 'Grok' },
12
+ };
13
+ const PROVIDER_ICONS = {};
14
+ /** 只由浏览器入口调用,使普通 Node 测试不需要加载 png/svg。 */
15
+ export function installProviderIcons(icons) {
16
+ for (const adapterId of Object.keys(PROVIDER_ICONS))
17
+ delete PROVIDER_ICONS[adapterId];
18
+ for (const adapterId of Object.keys(PROVIDER_DEFINITIONS)) {
19
+ const iconUrl = icons[adapterId];
20
+ if (iconUrl !== undefined)
21
+ PROVIDER_ICONS[adapterId] = iconUrl;
22
+ }
23
+ }
24
+ export function providerIconUrl(adapterId) {
25
+ return PROVIDER_ICONS[adapterId];
26
+ }
27
+ /** 未绑定和未知值都返回中性占位,绝不冒充任一已知品牌。 */
28
+ export function providerVisual(adapterId) {
29
+ if (adapterId === undefined || adapterId.trim() === '') {
30
+ return { adapterId: null, displayName: '未绑定 Agent', iconUrl: undefined };
31
+ }
32
+ const definition = PROVIDER_DEFINITIONS[adapterId];
33
+ if (definition === undefined) {
34
+ return { adapterId, displayName: `未知 Agent(${adapterId})`, iconUrl: undefined };
35
+ }
36
+ return { ...definition, iconUrl: PROVIDER_ICONS[adapterId] };
37
+ }
38
+ export { PROVIDER_DEFINITIONS, PROVIDER_ICONS };
39
+ //# sourceMappingURL=provider-icons.js.map
@@ -0,0 +1,57 @@
1
+ import type { DshCodingNsTransport } from '../transport/dsh-transport.js';
2
+ import { type DshTransportDebugLogger } from '../transport/debug.js';
3
+ export interface RemoteDshWebBoot {
4
+ readonly dshVersion: string;
5
+ readonly contentType?: string;
6
+ readonly html: string;
7
+ readonly entry?: string;
8
+ readonly styles?: readonly string[];
9
+ readonly scripts?: readonly string[];
10
+ readonly capabilities?: readonly string[];
11
+ }
12
+ export interface RemoteDshWebContextOptions {
13
+ readonly transport: DshCodingNsTransport;
14
+ readonly container: HTMLElement;
15
+ readonly workspaceId?: string;
16
+ readonly sessionId?: string;
17
+ readonly resourceTimeoutMs?: number;
18
+ readonly debug?: DshTransportDebugLogger;
19
+ }
20
+ /**
21
+ * 一个 HostScope 对应一个独立 iframe。iframe 内的 fetch 和 WebSocket 都经由
22
+ * postMessage 回到父页面,再由 DSH Transport 走 web.* Envelope;页面本身不接触
23
+ * ticket、Control API 凭据或 Host 的本地地址。
24
+ */
25
+ export declare class RemoteDshWebContext {
26
+ private readonly options;
27
+ private readonly objectUrls;
28
+ private readonly moduleUrls;
29
+ private readonly moduleLoads;
30
+ private readonly sockets;
31
+ /** 请求可能来自不同生命周期的 iframe;响应必须回到原发送窗口。 */
32
+ private readonly messageWindows;
33
+ private readonly socketWindows;
34
+ private readonly iframeWindows;
35
+ /** WebSocket 只有在 Host 本地 socket 真正打开后才允许 iframe 发送首帧。 */
36
+ private readonly socketReady;
37
+ private iframeValue;
38
+ private sessionIdValue;
39
+ private disposed;
40
+ private readonly onMessageBound;
41
+ private readonly debug;
42
+ constructor(options: RemoteDshWebContextOptions);
43
+ get iframe(): HTMLIFrameElement | undefined;
44
+ get sessionId(): string | undefined;
45
+ open(signal?: AbortSignal): Promise<void>;
46
+ dispose(): Promise<void>;
47
+ private prepareBootHtml;
48
+ private loadScript;
49
+ private loadStyle;
50
+ private createObjectUrl;
51
+ private onMessage;
52
+ private consumeSocket;
53
+ private postResponse;
54
+ private postEvent;
55
+ private ensureOpen;
56
+ }
57
+ //# sourceMappingURL=remote-web-context.d.ts.map