dsh-over-ssh 0.1.0 → 0.2.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 (250) hide show
  1. package/README.md +19 -17
  2. package/agents/agent-manifest.json +6 -6
  3. package/agents/linux-amd64/dsh-over-ssh-agent +0 -0
  4. package/agents/linux-arm64/dsh-over-ssh-agent +0 -0
  5. package/lib/client.js +422 -337
  6. package/lib/file-references.js +92 -35
  7. package/lib/fs.js +295 -113
  8. package/lib/index.js +6912 -4330
  9. package/lib/terminal-wrapper.js +9 -4
  10. package/lib/types/src/config.d.ts +156 -9
  11. package/lib/types/src/file-references.d.ts +0 -1
  12. package/lib/types/src/host/app/backend.d.ts +44 -3
  13. package/lib/types/src/host/app/recycle-bin/recycle-bin-contract.d.ts +0 -1
  14. package/lib/types/src/host/app/recycle-bin/recycle-bin-service.d.ts +0 -1
  15. package/lib/types/src/host/app/session-admin/session-admin-contract.d.ts +12 -1
  16. package/lib/types/src/host/app/session-admin/session-admin-service.d.ts +0 -1
  17. package/lib/types/src/host/app/transport/transport-selector.d.ts +0 -1
  18. package/lib/types/src/host/app/transport/transport-service.d.ts +0 -1
  19. package/lib/types/src/host/domain/capability.d.ts +0 -1
  20. package/lib/types/src/host/domain/errors.d.ts +0 -1
  21. package/lib/types/src/host/domain/roots/connection.d.ts +0 -1
  22. package/lib/types/src/host/domain/roots/root.d.ts +24 -9
  23. package/lib/types/src/host/domain/roots/session-roots.d.ts +23 -1
  24. package/lib/types/src/host/domain/roots/ssh-config.d.ts +0 -1
  25. package/lib/types/src/host/domain/session/session-admin.d.ts +0 -1
  26. package/lib/types/src/host/domain/transfer/recycle-bin.d.ts +0 -1
  27. package/lib/types/src/host/domain/transfer/transfer.d.ts +0 -1
  28. package/lib/types/src/host/infra/transport/agent/agent-installer.d.ts +0 -1
  29. package/lib/types/src/host/infra/transport/forward.d.ts +75 -0
  30. package/lib/types/src/host/infra/transport/ssh/ssh2-transport.d.ts +5 -1
  31. package/lib/types/src/host/infra/transport/transport-base.d.ts +0 -1
  32. package/lib/types/src/host/infra/transport/transport.d.ts +42 -2
  33. package/lib/types/src/host/integration/agent/agent-preflight.d.ts +0 -1
  34. package/lib/types/src/host/integration/fs/file-reference-provider.d.ts +0 -1
  35. package/lib/types/src/host/integration/fs/fs-provider.d.ts +18 -3
  36. package/lib/types/src/host/integration/transfer/transfer-service.d.ts +0 -1
  37. package/lib/types/src/index.d.ts +23 -1
  38. package/lib/types/src/local-bridge-refs.d.ts +0 -1
  39. package/lib/types/src/local-bridge.d.ts +0 -1
  40. package/lib/types/src/shared/root-keys.d.ts +120 -0
  41. package/lib/types/src/wiring/helpers.d.ts +0 -1
  42. package/package.json +5 -3
  43. package/lib/types/src/client/controls.d.ts +0 -131
  44. package/lib/types/src/client/core/card-focus-trap.d.ts +0 -45
  45. package/lib/types/src/client/core/controls.d.ts +0 -164
  46. package/lib/types/src/client/core/latest.d.ts +0 -48
  47. package/lib/types/src/client/core/locale.d.ts +0 -38
  48. package/lib/types/src/client/core/message.d.ts +0 -37
  49. package/lib/types/src/client/core/panel-model.d.ts +0 -134
  50. package/lib/types/src/client/core/portal.d.ts +0 -266
  51. package/lib/types/src/client/core/remote.d.ts +0 -84
  52. package/lib/types/src/client/core/styles.d.ts +0 -458
  53. package/lib/types/src/client/file-tree-io.d.ts +0 -19
  54. package/lib/types/src/client/file-tree.d.ts +0 -271
  55. package/lib/types/src/client/flows/directory-browser.d.ts +0 -587
  56. package/lib/types/src/client/flows/session-directory.d.ts +0 -415
  57. package/lib/types/src/client/flows/workspace-directory-flow.d.ts +0 -480
  58. package/lib/types/src/client/locale.d.ts +0 -31
  59. package/lib/types/src/client/panel-model.d.ts +0 -37
  60. package/lib/types/src/client/panel.d.ts +0 -77
  61. package/lib/types/src/client/roots/connection-test.d.ts +0 -69
  62. package/lib/types/src/client/roots/roots-panel-state.d.ts +0 -307
  63. package/lib/types/src/client/roots/roots-panel-view.d.ts +0 -280
  64. package/lib/types/src/client/roots/roots-panel.d.ts +0 -364
  65. package/lib/types/src/client/roots/transfer-panel-view.d.ts +0 -35
  66. package/lib/types/src/client/roots/transfer-panel.d.ts +0 -241
  67. package/lib/types/src/client/roots/transfer-progress.d.ts +0 -67
  68. package/lib/types/src/client/roots-panel-view.d.ts +0 -236
  69. package/lib/types/src/client/roots-panel.d.ts +0 -347
  70. package/lib/types/src/client/session/session-panel-view.d.ts +0 -336
  71. package/lib/types/src/client/session/session-panel.d.ts +0 -322
  72. package/lib/types/src/client/session/session-remote-mark.d.ts +0 -110
  73. package/lib/types/src/client/session/session-row-actions.d.ts +0 -398
  74. package/lib/types/src/client/session-panel.d.ts +0 -152
  75. package/lib/types/src/client/styles.d.ts +0 -252
  76. package/lib/types/src/client/workspace-directory-flow.d.ts +0 -342
  77. package/lib/types/src/fs.d.ts +0 -46
  78. package/lib/types/src/host/app/recycle-bin/recycle-bin-move.d.ts +0 -18
  79. package/lib/types/src/host/app/recycle-bin/recycle-bin-world.d.ts +0 -38
  80. package/lib/types/src/host/app/recycle-bin-contract.d.ts +0 -215
  81. package/lib/types/src/host/app/recycle-bin-move.d.ts +0 -18
  82. package/lib/types/src/host/app/recycle-bin-service.d.ts +0 -45
  83. package/lib/types/src/host/app/recycle-bin-world.d.ts +0 -35
  84. package/lib/types/src/host/app/roots/roots-api-connections.d.ts +0 -49
  85. package/lib/types/src/host/app/roots/roots-api-contract.d.ts +0 -369
  86. package/lib/types/src/host/app/roots/roots-api-directories.d.ts +0 -13
  87. package/lib/types/src/host/app/roots/roots-api-http.d.ts +0 -77
  88. package/lib/types/src/host/app/roots/roots-api-long-poll.d.ts +0 -130
  89. package/lib/types/src/host/app/roots/roots-api-projections.d.ts +0 -102
  90. package/lib/types/src/host/app/roots/roots-api-roots.d.ts +0 -13
  91. package/lib/types/src/host/app/roots/roots-api-state.d.ts +0 -22
  92. package/lib/types/src/host/app/roots/roots-api-transfers.d.ts +0 -26
  93. package/lib/types/src/host/app/roots/roots-api.d.ts +0 -55
  94. package/lib/types/src/host/app/roots/user-roots.d.ts +0 -552
  95. package/lib/types/src/host/app/roots-api-connections.d.ts +0 -49
  96. package/lib/types/src/host/app/roots-api-contract.d.ts +0 -339
  97. package/lib/types/src/host/app/roots-api-directories.d.ts +0 -13
  98. package/lib/types/src/host/app/roots-api-http.d.ts +0 -77
  99. package/lib/types/src/host/app/roots-api-projections.d.ts +0 -102
  100. package/lib/types/src/host/app/roots-api-roots.d.ts +0 -13
  101. package/lib/types/src/host/app/roots-api-state.d.ts +0 -22
  102. package/lib/types/src/host/app/roots-api-support.d.ts +0 -182
  103. package/lib/types/src/host/app/roots-api-transfers.d.ts +0 -13
  104. package/lib/types/src/host/app/roots-api.d.ts +0 -55
  105. package/lib/types/src/host/app/routed-fs.d.ts +0 -239
  106. package/lib/types/src/host/app/serialize.d.ts +0 -37
  107. package/lib/types/src/host/app/session-admin/session-admin-context.d.ts +0 -36
  108. package/lib/types/src/host/app/session-admin/session-admin-delete.d.ts +0 -34
  109. package/lib/types/src/host/app/session-admin-context.d.ts +0 -36
  110. package/lib/types/src/host/app/session-admin-contract.d.ts +0 -214
  111. package/lib/types/src/host/app/session-admin-delete.d.ts +0 -34
  112. package/lib/types/src/host/app/session-admin-service.d.ts +0 -38
  113. package/lib/types/src/host/app/takeover/takeover-plan.d.ts +0 -227
  114. package/lib/types/src/host/app/takeover/takeover-rows.d.ts +0 -55
  115. package/lib/types/src/host/app/transport-selector.d.ts +0 -98
  116. package/lib/types/src/host/app/transport-service.d.ts +0 -75
  117. package/lib/types/src/host/app/user-roots.d.ts +0 -461
  118. package/lib/types/src/host/domain/bin-location.d.ts +0 -79
  119. package/lib/types/src/host/domain/connection.d.ts +0 -95
  120. package/lib/types/src/host/domain/glob-pattern.d.ts +0 -62
  121. package/lib/types/src/host/domain/literal-text.d.ts +0 -63
  122. package/lib/types/src/host/domain/path-grammar.d.ts +0 -84
  123. package/lib/types/src/host/domain/recycle-bin.d.ts +0 -337
  124. package/lib/types/src/host/domain/root.d.ts +0 -74
  125. package/lib/types/src/host/domain/roots/bin-location.d.ts +0 -91
  126. package/lib/types/src/host/domain/roots/route-table.d.ts +0 -102
  127. package/lib/types/src/host/domain/route-table.d.ts +0 -80
  128. package/lib/types/src/host/domain/session/terminal-target.d.ts +0 -136
  129. package/lib/types/src/host/domain/session-admin.d.ts +0 -330
  130. package/lib/types/src/host/domain/shell.d.ts +0 -47
  131. package/lib/types/src/host/domain/ssh-config.d.ts +0 -73
  132. package/lib/types/src/host/domain/terminal-target.d.ts +0 -132
  133. package/lib/types/src/host/domain/tool-requests.d.ts +0 -369
  134. package/lib/types/src/host/domain/transfer.d.ts +0 -260
  135. package/lib/types/src/host/infra/backend/local-backend.d.ts +0 -84
  136. package/lib/types/src/host/infra/backend/local-version.d.ts +0 -43
  137. package/lib/types/src/host/infra/backend/platform-local-backend.d.ts +0 -89
  138. package/lib/types/src/host/infra/backend/remote-backend.d.ts +0 -239
  139. package/lib/types/src/host/infra/cache/lru.d.ts +0 -52
  140. package/lib/types/src/host/infra/cache/versioned.d.ts +0 -77
  141. package/lib/types/src/host/infra/temp-name.d.ts +0 -19
  142. package/lib/types/src/host/infra/transport/agent/agent-protocol-client.d.ts +0 -132
  143. package/lib/types/src/host/infra/transport/agent/agent-protocol-codec.d.ts +0 -140
  144. package/lib/types/src/host/infra/transport/agent/agent-protocol-errors.d.ts +0 -41
  145. package/lib/types/src/host/infra/transport/agent/agent-protocol-frames.d.ts +0 -197
  146. package/lib/types/src/host/infra/transport/agent/agent-protocol-types.d.ts +0 -564
  147. package/lib/types/src/host/infra/transport/agent/agent-transport.d.ts +0 -418
  148. package/lib/types/src/host/infra/transport/agent-installer.d.ts +0 -121
  149. package/lib/types/src/host/infra/transport/agent-protocol-client.d.ts +0 -123
  150. package/lib/types/src/host/infra/transport/agent-protocol-codec.d.ts +0 -131
  151. package/lib/types/src/host/infra/transport/agent-protocol-errors.d.ts +0 -41
  152. package/lib/types/src/host/infra/transport/agent-protocol-frames.d.ts +0 -197
  153. package/lib/types/src/host/infra/transport/agent-protocol-types.d.ts +0 -509
  154. package/lib/types/src/host/infra/transport/agent-transport.d.ts +0 -353
  155. package/lib/types/src/host/infra/transport/alias-transport.d.ts +0 -206
  156. package/lib/types/src/host/infra/transport/askpass-fs.d.ts +0 -20
  157. package/lib/types/src/host/infra/transport/askpass.d.ts +0 -133
  158. package/lib/types/src/host/infra/transport/command-pool.d.ts +0 -61
  159. package/lib/types/src/host/infra/transport/fs-commands.d.ts +0 -140
  160. package/lib/types/src/host/infra/transport/git-status-route.d.ts +0 -63
  161. package/lib/types/src/host/infra/transport/git-status.d.ts +0 -101
  162. package/lib/types/src/host/infra/transport/node-spawn.d.ts +0 -26
  163. package/lib/types/src/host/infra/transport/session-window.d.ts +0 -51
  164. package/lib/types/src/host/infra/transport/shell-quote.d.ts +0 -59
  165. package/lib/types/src/host/infra/transport/ssh/alias-transport.d.ts +0 -206
  166. package/lib/types/src/host/infra/transport/ssh/askpass-fs.d.ts +0 -20
  167. package/lib/types/src/host/infra/transport/ssh/askpass.d.ts +0 -133
  168. package/lib/types/src/host/infra/transport/ssh/shell-quote.d.ts +0 -62
  169. package/lib/types/src/host/infra/transport/ssh/ssh-argv.d.ts +0 -43
  170. package/lib/types/src/host/infra/transport/ssh-argv.d.ts +0 -43
  171. package/lib/types/src/host/infra/transport/ssh2-transport.d.ts +0 -302
  172. package/lib/types/src/host/integration/agent/agent-install-io.d.ts +0 -33
  173. package/lib/types/src/host/integration/agent/askpass-registry.d.ts +0 -66
  174. package/lib/types/src/host/integration/agent-install-io.d.ts +0 -33
  175. package/lib/types/src/host/integration/agent-preflight.d.ts +0 -56
  176. package/lib/types/src/host/integration/anchor-directory.d.ts +0 -56
  177. package/lib/types/src/host/integration/askpass-registry.d.ts +0 -59
  178. package/lib/types/src/host/integration/bin-root-resolver.d.ts +0 -81
  179. package/lib/types/src/host/integration/connection-test.d.ts +0 -73
  180. package/lib/types/src/host/integration/file-reference-provider.d.ts +0 -115
  181. package/lib/types/src/host/integration/fs/git-status-wiring.d.ts +0 -21
  182. package/lib/types/src/host/integration/fs/platform-errors.d.ts +0 -94
  183. package/lib/types/src/host/integration/fs/remote-file-tools.d.ts +0 -369
  184. package/lib/types/src/host/integration/fs/remote-index.d.ts +0 -177
  185. package/lib/types/src/host/integration/fs-provider.d.ts +0 -226
  186. package/lib/types/src/host/integration/lsp/lsp-framing.d.ts +0 -38
  187. package/lib/types/src/host/integration/lsp/lsp-registry.d.ts +0 -67
  188. package/lib/types/src/host/integration/lsp/lsp-session.d.ts +0 -130
  189. package/lib/types/src/host/integration/management-tools.d.ts +0 -64
  190. package/lib/types/src/host/integration/recycle-bin-service.d.ts +0 -247
  191. package/lib/types/src/host/integration/remote/connection-test.d.ts +0 -73
  192. package/lib/types/src/host/integration/remote/remote-face.d.ts +0 -127
  193. package/lib/types/src/host/integration/remote/remote-tool-backend.d.ts +0 -108
  194. package/lib/types/src/host/integration/remote-face.d.ts +0 -127
  195. package/lib/types/src/host/integration/remote-file-tools.d.ts +0 -241
  196. package/lib/types/src/host/integration/remote-home.d.ts +0 -69
  197. package/lib/types/src/host/integration/remote-index.d.ts +0 -165
  198. package/lib/types/src/host/integration/remote-job-tools.d.ts +0 -295
  199. package/lib/types/src/host/integration/remote-tool-backend.d.ts +0 -97
  200. package/lib/types/src/host/integration/remote-tools.d.ts +0 -206
  201. package/lib/types/src/host/integration/root-registry.d.ts +0 -115
  202. package/lib/types/src/host/integration/roots/anchor-directory.d.ts +0 -56
  203. package/lib/types/src/host/integration/roots/bin-root-resolver.d.ts +0 -81
  204. package/lib/types/src/host/integration/roots/remote-home.d.ts +0 -69
  205. package/lib/types/src/host/integration/roots/root-registry.d.ts +0 -144
  206. package/lib/types/src/host/integration/roots/roots-wiring.d.ts +0 -219
  207. package/lib/types/src/host/integration/roots/session-root-index.d.ts +0 -52
  208. package/lib/types/src/host/integration/roots-api.d.ts +0 -407
  209. package/lib/types/src/host/integration/roots-wiring.d.ts +0 -211
  210. package/lib/types/src/host/integration/session/session-api.d.ts +0 -88
  211. package/lib/types/src/host/integration/session/session-bin-lock.d.ts +0 -80
  212. package/lib/types/src/host/integration/session/session-header.d.ts +0 -151
  213. package/lib/types/src/host/integration/session/session-labels.d.ts +0 -56
  214. package/lib/types/src/host/integration/session/session-route-wiring.d.ts +0 -50
  215. package/lib/types/src/host/integration/session-admin-service.d.ts +0 -236
  216. package/lib/types/src/host/integration/session-api.d.ts +0 -81
  217. package/lib/types/src/host/integration/session-bin-lock.d.ts +0 -80
  218. package/lib/types/src/host/integration/session-header.d.ts +0 -118
  219. package/lib/types/src/host/integration/session-labels.d.ts +0 -56
  220. package/lib/types/src/host/integration/session-route-wiring.d.ts +0 -50
  221. package/lib/types/src/host/integration/session-scope.d.ts +0 -113
  222. package/lib/types/src/host/integration/session-tools.d.ts +0 -44
  223. package/lib/types/src/host/integration/strict-arguments.d.ts +0 -79
  224. package/lib/types/src/host/integration/takeover/takeover-api.d.ts +0 -62
  225. package/lib/types/src/host/integration/takeover/takeover-route-wiring.d.ts +0 -60
  226. package/lib/types/src/host/integration/takeover/takeover-service.d.ts +0 -167
  227. package/lib/types/src/host/integration/terminal-manifest.d.ts +0 -94
  228. package/lib/types/src/host/integration/tools/management-tools.d.ts +0 -245
  229. package/lib/types/src/host/integration/tools/remote-job-tools.d.ts +0 -316
  230. package/lib/types/src/host/integration/tools/remote-lsp-tools.d.ts +0 -43
  231. package/lib/types/src/host/integration/tools/remote-tools.d.ts +0 -236
  232. package/lib/types/src/host/integration/tools/session-target.d.ts +0 -52
  233. package/lib/types/src/host/integration/tools/session-tools.d.ts +0 -46
  234. package/lib/types/src/host/integration/tools/strict-arguments.d.ts +0 -79
  235. package/lib/types/src/host/integration/tools/terminal-manifest.d.ts +0 -94
  236. package/lib/types/src/host/integration/transfer/remote-copy.d.ts +0 -66
  237. package/lib/types/src/host/integration/transfer/transfer-adapters.d.ts +0 -48
  238. package/lib/types/src/host/integration/transfer/transfer-tracker.d.ts +0 -106
  239. package/lib/types/src/host/integration/transfer-adapters.d.ts +0 -44
  240. package/lib/types/src/host/integration/transfer-service.d.ts +0 -164
  241. package/lib/types/src/host/integration/transfer-tracker.d.ts +0 -106
  242. package/lib/types/src/host/integration/user-roots.d.ts +0 -461
  243. package/lib/types/src/wiring/connections.d.ts +0 -189
  244. package/lib/types/src/wiring/fs.d.ts +0 -13
  245. package/lib/types/src/wiring/install-memo.d.ts +0 -32
  246. package/lib/types/src/wiring/legacy-dirs.d.ts +0 -62
  247. package/lib/types/src/wiring/package-paths.d.ts +0 -35
  248. package/lib/types/src/wiring/roots.d.ts +0 -21
  249. package/lib/types/src/wiring/state-dir.d.ts +0 -29
  250. package/lib/types/src/wiring/tools.d.ts +0 -35
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  DSH(DeepSeek Harness)第三方插件:把 VSCode Remote-SSH 式的远程开发做进 DSH —— 连接管理(密钥 / 密码 / ProxyJump / `~/.ssh/config` 导入)、远程文件(**无同步**直读直写)、远程终端、远程工作区、远端 `@` 补全、上传/下载,并支持"本地根 + 远端根"同处一个工作区。
4
4
 
5
- 设计依据:[`doc/01-product/02-技术设计-SSH远程开发插件.md`](doc/01-product/02-技术设计-SSH远程开发插件.md)(v0.2)。需求依据:[`doc/01-product/01-需求分析-多根工作区-远程根-会话管理.md`](doc/01-product/01-需求分析-多根工作区-远程根-会话管理.md)(v0.4)。文档知识库入口:[`doc/README.md`](doc/README.md)。
5
+ 设计依据:`doc/01-product/02-技术设计-SSH远程开发插件.md`(v0.2)。需求依据:`doc/01-product/01-需求分析-多根工作区-远程根-会话管理.md`(v0.4)。文档知识库入口:`doc/README.md`。
6
6
 
7
7
  ## 安装
8
8
 
@@ -45,11 +45,11 @@ shell:
45
45
 
46
46
  | 平台 | 字节 | sha256 |
47
47
  |---|---|---|
48
- | linux-amd64 | 4,907,168 | `08998e6f51bc1a3759a966e96263c380f81f4281f2a50b0257b61f12b1341c3b` |
49
- | linux-arm64 | 4,653,216 | `0e19b3e77590f233093c09a7adc20487d721407bf805a9f879a756c9f03b9a11` |
48
+ | linux-amd64 | 4,927,648 | `4f47307e4927e39972ebad9c2f25b3676e990ff1335b72ee33c3e8ec25a1e2cf` |
49
+ | linux-arm64 | 4,653,216 | `9c1895ca3310a8fe5aed13a281cbdd98fe95928c24848ba58fea509b5f7341e6` |
50
50
 
51
- - 代理版本:`1.7.0-0ae8c02`
52
- - 源码提交:`0ae8c02`(Go 仓 `dsh-over-ssh-agent` 的这个提交)
51
+ - 代理版本:`0.2.0-2dc1feb`
52
+ - 源码提交:`2dc1feb`(Go 仓 `dsh-over-ssh-agent` 的这个提交)
53
53
  - 清单原文:包内 `agents/agent-manifest.json`
54
54
  - 核对:`sha256sum agents/<平台>/dsh-over-ssh-agent` 与上表比对;按上面的提交检出 Go 仓后
55
55
  `scripts/check.sh` 可重建同样的产物。
@@ -61,7 +61,7 @@ shell:
61
61
  - **传输层自研**,不使用核心 `packages/ssh/*` 家族。原因见设计文档 §3.1:官方实现的 `BatchMode=yes` 让密码认证不可能、远端必须预装 Node + helper、`ctx.ssh` 单例、且其 Web 集成需单独实现(preset 的 `isolate` 子树覆盖不到 `agent.ctx`)。
62
62
  - **文件按路径路由,进程不路由**:核心 provider 的公开方法收不到 agent/session 身份,因此 fs 用自研路由 provider 支持"本地 + 远端多根",而 bash/终端保持单一执行世界,远端命令走显式入口。
63
63
  - **远端零安装(Tier 1,地板)**:只依赖远端已有的 POSIX 工具(`sh`/`base64`/`stat`/`find`/可选 `git`/`rg`),连上后做一次能力探测并按能力降级。
64
- - **可选 Go 代理(Tier 2,增强)**:独立仓库 [`../dsh-over-ssh-agent`](../dsh-over-ssh-agent),纯静态单文件(随包产物的体积与摘要以 `agents/agent-manifest.json` 的 `bytes`/`sha256` 为准,交叉编译矩阵见 [`../dsh-over-ssh-agent/doc/05-benchmarks/baseline.md`](../dsh-over-ssh-agent/doc/05-benchmarks/baseline.md);零第三方依赖),经 ssh stdio 通信(不监听端口),补齐原生监听/索引/长任务/远端 LSP/Landlock 围栏。决策见 [`doc/03-decisions/0005-optional-go-remote-agent.md`](doc/03-decisions/0005-optional-go-remote-agent.md);代理不可用时一律回退 Tier 1。
64
+ - **可选 Go 代理(Tier 2,增强)**:独立仓库 `../dsh-over-ssh-agent`,纯静态单文件(随包产物的体积与摘要以 `agents/agent-manifest.json` 的 `bytes`/`sha256` 为准,交叉编译矩阵见 `../dsh-over-ssh-agent/doc/05-benchmarks/baseline.md`;第三方依赖 4 个,全部经 ADR-0008 授权),经 ssh 通信(stdio 或常驻 daemon 的 unix socket,**不监听 TCP 端口**),补齐原生监听/索引/长任务/远端 LSP/Landlock 围栏。决策见 `doc/03-decisions/0005-optional-go-remote-agent.md`;代理不可用时一律回退 Tier 1。
65
65
  - **默认尝试部署**(2026-10-13 起,审计 0040):连接的默认传输是 `agent`,首次连接会把代理装到远端 `$HOME/.cache/dsh-over-ssh/dsh-over-ssh-agent`(约 4.7 MiB / 4,907,168 B,以 `agents/agent-manifest.json` 为准,`0700`),失败自动回退 Tier 1。想避开远端写入就显式写 `transport: alias`。
66
66
  - **密码认证同样可用**:代理经系统 ssh 启动,而系统 ssh 靠 `SSH_ASKPASS` 助手取密码(秘密只经环境变量传递,不落盘)。此前"密码认证无法用代理"的说法是把本插件硬写 `BatchMode=yes` 误当成了 SSH 的限制。
67
67
  - 随包只带 `linux-amd64` 与 `linux-arm64` 两个产物;其它平台的远端会正常降级到 Tier 1。
@@ -71,13 +71,15 @@ shell:
71
71
 
72
72
  ```
73
73
  src/
74
+ index.ts fs.ts file-references.ts # 三个 DSH 入口(组合根)
74
75
  host/
75
76
  domain/ # 纯 TS、零框架依赖、100% 单测覆盖
76
- app/ # 应用层用例(依赖抽象)
77
+ app/ # 应用层用例(根路由、传输服务、状态)
77
78
  infra/ # 传输/后端/缓存/持久化实现
78
79
  integration/ # 与核心对接:fs provider、fileReferences、tools、Remote API、终端 wrapper
79
- client/ # web client 半(React + TS + CSS Modules)
80
- tests/ # 每个模块一个独立测试文件
80
+ client/ # web client 半(React + TS + CSS Modules)——与 host/ 是兄弟目录
81
+ shared/ # 两半共用的纯工具(路由常量、根键等)
82
+ tests/ # 镜像 src/ 的测试树(每模块一个 *.test.ts;根级只留 architecture/config 两个横切用例)
81
83
  ```
82
84
 
83
85
  ## 测试
@@ -91,7 +93,7 @@ npm run typecheck # 需要先安装 devDependencies(typescript)
91
93
 
92
94
  约定:**一个源文件对应一个 `tests/<同名>.test.ts`**;领域层与基础设施层不依赖核心包,因此测试无需安装 `@deepseek-ai/*`。
93
95
 
94
- 当前数字只在 [`doc/05-benchmarks/baseline.md`](doc/05-benchmarks/baseline.md) 维护,本文不重复抄录。抄录的副本会与基准不一致,这类不一致在本仓库已经出现过。要现在的数字就跑命令:
96
+ 当前数字只在 `doc/05-benchmarks/baseline.md` 维护,本文不重复抄录。抄录的副本会与基准不一致,这类不一致在本仓库已经出现过。要现在的数字就跑命令:
95
97
 
96
98
  ```sh
97
99
  node --test --test-concurrency=4 "tests/**/*.test.ts" # 正确性:用例数与失败数
@@ -108,13 +110,13 @@ npm run agents # 随包代理清
108
110
 
109
111
  见设计文档 §13:M0 spike(三个未验证假设)→ M1 传输与连接管理 → M2 路由 fs → M3 远端搜索与 `@` → M4 文件树与传输 → M5 远程终端 → M6 会话管理 → M7 性能与内存回归。
110
112
 
111
- 当前进度(本仓库内):只列最近三条,更早的里程碑见 [`doc/06-audits/README.md`](doc/06-audits/README.md) 的历史记录表。
113
+ 当前进度(本仓库内):只列最近三条,更早的里程碑见 `doc/06-audits/README.md` 的历史记录表。
112
114
 
113
115
  - [x] **改名 `dsh-over-ssh`**:仓库目录、Go module、二进制、状态目录、两个回收站、HTTP 路由共 11 处名字统一,
114
- 已有数据走 4 条一次性迁移(远端旧代理目录不删)。见 [`0110`](doc/06-audits/0110-rename-to-dsh-over-ssh.md)。
115
- - [x] 阶段 2 的「添加目录」按**会话**隔离。同一工作区开两个会话时,A 加的目录 B 既看不到也用不了;fork 出来的会话继承父会话的目录,老数据(无 `sessions` 字段)保持工作区级不打断。会话身份由 `AsyncLocalStorage` 从工具派发带到 `ctx.fs`(平台只给 fs 传 `cwd`)。GUI 文件面板、`glob`/`grep` 与隐式会话根三处残余面已写明。见 [`0108`](doc/06-audits/0108-per-session-root-isolation.md)。
116
- - [ ] 阶段 2 的「一键接管」开关尚不可用。审计 0095 的实现有宿主异步清单、行标识与回滚缺陷,不安全的逐行写入路径已移除,面板只显示状态与手动配置提示。平台的单行管理 API 不能保证四行批量原子切换或精确恢复原有 profile 覆盖,要等可靠的批量事务与还原机制可用并通过真实组合验证后才能启用。见 [`0096`](doc/06-audits/0096-takeover-safety-correction.md)。
117
- - [x] 阶段 2 的会话工作目录根。活会话 cwd 自动成为会话作用域、隐藏、纯内存的本地根;`resolve`/`lstat` 失败时同步一次再重试。真机端到端未跑。见 [`0094`](doc/06-audits/0094-session-workspace-root.md)。
118
- - [x] 卸载不等于关闭。用时间区分重注册与真关闭:`surfaceDetached()` 推迟一个任务、`surfaceAttached()` 取消,调度可注入,策略离线可测。见 [`0091`](doc/06-audits/0091-unmount-is-not-close.md)。
116
+ 已有数据走 4 条一次性迁移(远端旧代理目录不删)。见 `0110`(`doc/06-audits/0110-rename-to-dsh-over-ssh.md`)。
117
+ - [x] 阶段 2 的「添加目录」按**会话**隔离。同一工作区开两个会话时,A 加的目录 B 既看不到也用不了;fork 出来的会话继承父会话的目录,老数据(无 `sessions` 字段)保持工作区级不打断。会话身份由 `AsyncLocalStorage` 从工具派发带到 `ctx.fs`(平台只给 fs 传 `cwd`)。GUI 文件面板、`glob`/`grep` 与隐式会话根三处残余面已写明。见 `0108`(`doc/06-audits/0108-per-session-root-isolation.md`)。
118
+ - [ ] 阶段 2 的「一键接管」开关尚不可用。审计 0095 的实现有宿主异步清单、行标识与回滚缺陷,不安全的逐行写入路径已移除,面板只显示状态与手动配置提示。平台的单行管理 API 不能保证四行批量原子切换或精确恢复原有 profile 覆盖,要等可靠的批量事务与还原机制可用并通过真实组合验证后才能启用。见 `0096`(`doc/06-audits/0096-takeover-safety-correction.md`)。
119
+ - [x] 阶段 2 的会话工作目录根。活会话 cwd 自动成为会话作用域、隐藏、纯内存的本地根;`resolve`/`lstat` 失败时同步一次再重试。真机端到端未跑。见 `0094`(`doc/06-audits/0094-session-workspace-root.md`)。
120
+ - [x] 卸载不等于关闭。用时间区分重注册与真关闭:`surfaceDetached()` 推迟一个任务、`surfaceAttached()` 取消,调度可注入,策略离线可测。见 `0091`(`doc/06-audits/0091-unmount-is-not-close.md`)。
119
121
 
120
- 并行轨道(独立仓库 [`../dsh-over-ssh-agent`](../dsh-over-ssh-agent)):协议、文件原语、索引与搜索、watch、proc、LSP、Landlock 围栏均已实现,多会话与常驻 daemon 分四阶段完成。当前状态、未做项与实测数字见该仓库的 [`README.md`](../dsh-over-ssh-agent/README.md) 与 [`benchmark`](../dsh-over-ssh-agent/doc/05-benchmarks/baseline.md)。
122
+ 并行轨道(独立仓库 `../dsh-over-ssh-agent`):协议、文件原语、索引与搜索、watch、proc、LSP、Landlock 围栏均已实现,多会话与常驻 daemon 分四阶段完成。当前状态、未做项与实测数字见该仓库的 `README.md`(`../dsh-over-ssh-agent/README.md`) 与 `benchmark`(`../dsh-over-ssh-agent/doc/05-benchmarks/baseline.md`)。
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-11-01T13:33:43.884Z",
4
- "agentVersion": "1.7.0-0ae8c02",
5
- "sourceCommit": "0ae8c02",
3
+ "generatedAt": "2026-11-04T23:44:48.795Z",
4
+ "agentVersion": "0.2.0-2dc1feb",
5
+ "sourceCommit": "2dc1feb",
6
6
  "artifacts": [
7
7
  {
8
8
  "platform": "linux-amd64",
9
9
  "path": "linux-amd64/dsh-over-ssh-agent",
10
- "sha256": "08998e6f51bc1a3759a966e96263c380f81f4281f2a50b0257b61f12b1341c3b",
11
- "bytes": 4907168
10
+ "sha256": "4f47307e4927e39972ebad9c2f25b3676e990ff1335b72ee33c3e8ec25a1e2cf",
11
+ "bytes": 4927648
12
12
  },
13
13
  {
14
14
  "platform": "linux-arm64",
15
15
  "path": "linux-arm64/dsh-over-ssh-agent",
16
- "sha256": "0e19b3e77590f233093c09a7adc20487d721407bf805a9f879a756c9f03b9a11",
16
+ "sha256": "9c1895ca3310a8fe5aed13a281cbdd98fe95928c24848ba58fea509b5f7341e6",
17
17
  "bytes": 4653216
18
18
  }
19
19
  ]