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

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 (355) hide show
  1. package/README.en.md +4 -4
  2. package/README.md +15 -6
  3. package/assets/provider-icons/antigravity.svg +39 -0
  4. package/assets/provider-icons/codebuddy.svg +37 -0
  5. package/assets/provider-icons/cursor-cli.svg +1 -0
  6. package/assets/provider-icons/kiro-cli.svg +11 -0
  7. package/assets/provider-icons/qoder-cn.svg +5 -0
  8. package/assets/provider-icons/qoder.svg +5 -0
  9. package/assets/provider-icons/workbuddy.svg +29 -0
  10. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.d.ts.map +1 -1
  11. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js +78 -1
  12. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js.map +1 -1
  13. package/data/build/dist/client/bundle.js +3864 -507
  14. package/data/build/dist/client/bundle.js.map +1 -1
  15. package/data/build/dist/client/cli-catalog.d.ts +1 -1
  16. package/data/build/dist/client/cli-catalog.d.ts.map +1 -1
  17. package/data/build/dist/client/cli-catalog.js +11 -5
  18. package/data/build/dist/client/cli-catalog.js.map +1 -1
  19. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  20. package/data/build/dist/client/cli-slots.js +111 -13
  21. package/data/build/dist/client/cli-slots.js.map +1 -1
  22. package/data/build/dist/client/debug/ui.d.ts.map +1 -1
  23. package/data/build/dist/client/debug/ui.js +2 -1
  24. package/data/build/dist/client/debug/ui.js.map +1 -1
  25. package/data/build/dist/client/delegate-command.d.ts +1 -0
  26. package/data/build/dist/client/delegate-command.d.ts.map +1 -1
  27. package/data/build/dist/client/delegate-command.js +486 -27
  28. package/data/build/dist/client/delegate-command.js.map +1 -1
  29. package/data/build/dist/client/delegate-plan.d.ts +13 -4
  30. package/data/build/dist/client/delegate-plan.d.ts.map +1 -1
  31. package/data/build/dist/client/delegate-plan.js +10 -6
  32. package/data/build/dist/client/delegate-plan.js.map +1 -1
  33. package/data/build/dist/client/delegate-ui-dom.d.ts +46 -0
  34. package/data/build/dist/client/delegate-ui-dom.d.ts.map +1 -1
  35. package/data/build/dist/client/delegate-ui-dom.js +291 -7
  36. package/data/build/dist/client/delegate-ui-dom.js.map +1 -1
  37. package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
  38. package/data/build/dist/client/features/cli-adapters.js +117 -8
  39. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  40. package/data/build/dist/client/features/mobile-access-panel.d.ts.map +1 -1
  41. package/data/build/dist/client/features/mobile-access-panel.js +8 -7
  42. package/data/build/dist/client/features/mobile-access-panel.js.map +1 -1
  43. package/data/build/dist/client/features/peer-host.d.ts +6 -4
  44. package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
  45. package/data/build/dist/client/features/peer-host.js +346 -18
  46. package/data/build/dist/client/features/peer-host.js.map +1 -1
  47. package/data/build/dist/client/git-history-graph.d.ts +2 -2
  48. package/data/build/dist/client/git-history-graph.d.ts.map +1 -1
  49. package/data/build/dist/client/git-history-graph.js +2 -2
  50. package/data/build/dist/client/git-history-graph.js.map +1 -1
  51. package/data/build/dist/client/git-management.d.ts.map +1 -1
  52. package/data/build/dist/client/git-management.js +21 -1
  53. package/data/build/dist/client/git-management.js.map +1 -1
  54. package/data/build/dist/client/locale.d.ts.map +1 -1
  55. package/data/build/dist/client/locale.js +60 -6
  56. package/data/build/dist/client/locale.js.map +1 -1
  57. package/data/build/dist/client/locales/terminalAuth.d.ts.map +1 -1
  58. package/data/build/dist/client/locales/terminalAuth.js +4 -0
  59. package/data/build/dist/client/locales/terminalAuth.js.map +1 -1
  60. package/data/build/dist/client/locales/usage.d.ts.map +1 -1
  61. package/data/build/dist/client/locales/usage.js +20 -0
  62. package/data/build/dist/client/locales/usage.js.map +1 -1
  63. package/data/build/dist/client/mobile-session-interaction.d.ts.map +1 -1
  64. package/data/build/dist/client/mobile-session-interaction.js +24 -7
  65. package/data/build/dist/client/mobile-session-interaction.js.map +1 -1
  66. package/data/build/dist/client/mobile-sidebar-gestures.d.ts +55 -7
  67. package/data/build/dist/client/mobile-sidebar-gestures.d.ts.map +1 -1
  68. package/data/build/dist/client/mobile-sidebar-gestures.js +339 -40
  69. package/data/build/dist/client/mobile-sidebar-gestures.js.map +1 -1
  70. package/data/build/dist/client/model-catalog-cache.d.ts +5 -0
  71. package/data/build/dist/client/model-catalog-cache.d.ts.map +1 -0
  72. package/data/build/dist/client/model-catalog-cache.js +58 -0
  73. package/data/build/dist/client/model-catalog-cache.js.map +1 -0
  74. package/data/build/dist/client/peer-host-aggregate-refresh.d.ts +7 -0
  75. package/data/build/dist/client/peer-host-aggregate-refresh.d.ts.map +1 -1
  76. package/data/build/dist/client/peer-host-aggregate-refresh.js +13 -1
  77. package/data/build/dist/client/peer-host-aggregate-refresh.js.map +1 -1
  78. package/data/build/dist/client/peer-host-native-projection.d.ts +16 -1
  79. package/data/build/dist/client/peer-host-native-projection.d.ts.map +1 -1
  80. package/data/build/dist/client/peer-host-native-projection.js +49 -8
  81. package/data/build/dist/client/peer-host-native-projection.js.map +1 -1
  82. package/data/build/dist/client/peer-host-native-store-projection.d.ts +6 -2
  83. package/data/build/dist/client/peer-host-native-store-projection.d.ts.map +1 -1
  84. package/data/build/dist/client/peer-host-native-store-projection.js +308 -10
  85. package/data/build/dist/client/peer-host-native-store-projection.js.map +1 -1
  86. package/data/build/dist/client/provider-icon-assets.js +14 -0
  87. package/data/build/dist/client/provider-icon-assets.js.map +1 -1
  88. package/data/build/dist/client/provider-icons.d.ts.map +1 -1
  89. package/data/build/dist/client/provider-icons.js +15 -3
  90. package/data/build/dist/client/provider-icons.js.map +1 -1
  91. package/data/build/dist/client/remote-web-context.js +10 -6
  92. package/data/build/dist/client/remote-web-context.js.map +1 -1
  93. package/data/build/dist/client/service-tier.d.ts +54 -0
  94. package/data/build/dist/client/service-tier.d.ts.map +1 -0
  95. package/data/build/dist/client/service-tier.js +78 -0
  96. package/data/build/dist/client/service-tier.js.map +1 -0
  97. package/data/build/dist/client/settings-promo-styles.d.ts +28 -0
  98. package/data/build/dist/client/settings-promo-styles.d.ts.map +1 -0
  99. package/data/build/dist/client/settings-promo-styles.js +58 -0
  100. package/data/build/dist/client/settings-promo-styles.js.map +1 -0
  101. package/data/build/dist/client/settings-promo.d.ts +14 -0
  102. package/data/build/dist/client/settings-promo.d.ts.map +1 -0
  103. package/data/build/dist/client/settings-promo.js +68 -0
  104. package/data/build/dist/client/settings-promo.js.map +1 -0
  105. package/data/build/dist/client/settings-section.d.ts +2 -1
  106. package/data/build/dist/client/settings-section.d.ts.map +1 -1
  107. package/data/build/dist/client/settings-section.js +7 -4
  108. package/data/build/dist/client/settings-section.js.map +1 -1
  109. package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
  110. package/data/build/dist/client/subscription-slot.js +181 -16
  111. package/data/build/dist/client/subscription-slot.js.map +1 -1
  112. package/data/build/dist/client/terminal/model.d.ts +82 -3
  113. package/data/build/dist/client/terminal/model.d.ts.map +1 -1
  114. package/data/build/dist/client/terminal/model.js +368 -29
  115. package/data/build/dist/client/terminal/model.js.map +1 -1
  116. package/data/build/dist/client/terminal/recovery.d.ts +16 -1
  117. package/data/build/dist/client/terminal/recovery.d.ts.map +1 -1
  118. package/data/build/dist/client/terminal/recovery.js +101 -39
  119. package/data/build/dist/client/terminal/recovery.js.map +1 -1
  120. package/data/build/dist/client/terminal/styles.d.ts +10 -0
  121. package/data/build/dist/client/terminal/styles.d.ts.map +1 -1
  122. package/data/build/dist/client/terminal/styles.js +27 -3
  123. package/data/build/dist/client/terminal/styles.js.map +1 -1
  124. package/data/build/dist/client/terminal/ui.d.ts +3 -2
  125. package/data/build/dist/client/terminal/ui.d.ts.map +1 -1
  126. package/data/build/dist/client/terminal/ui.js +215 -104
  127. package/data/build/dist/client/terminal/ui.js.map +1 -1
  128. package/data/build/dist/client/terminal/xterm-view.d.ts +5 -1
  129. package/data/build/dist/client/terminal/xterm-view.d.ts.map +1 -1
  130. package/data/build/dist/client/terminal/xterm-view.js +378 -20
  131. package/data/build/dist/client/terminal/xterm-view.js.map +1 -1
  132. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts +58 -0
  133. package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -0
  134. package/data/build/dist/host/cli-adapters/acp-cli-driver.js +271 -0
  135. package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -0
  136. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts +30 -0
  137. package/data/build/dist/host/cli-adapters/antigravity-driver.d.ts.map +1 -0
  138. package/data/build/dist/host/cli-adapters/antigravity-driver.js +210 -0
  139. package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -0
  140. package/data/build/dist/host/cli-adapters/claude-driver.js +1 -1
  141. package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
  142. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts +139 -0
  143. package/data/build/dist/host/cli-adapters/codebuddy-driver.d.ts.map +1 -0
  144. package/data/build/dist/host/cli-adapters/codebuddy-driver.js +1721 -0
  145. package/data/build/dist/host/cli-adapters/codebuddy-driver.js.map +1 -0
  146. package/data/build/dist/host/cli-adapters/codebuddy-subscription.d.ts +53 -0
  147. package/data/build/dist/host/cli-adapters/codebuddy-subscription.d.ts.map +1 -0
  148. package/data/build/dist/host/cli-adapters/codebuddy-subscription.js +778 -0
  149. package/data/build/dist/host/cli-adapters/codebuddy-subscription.js.map +1 -0
  150. package/data/build/dist/host/cli-adapters/codex-driver.d.ts +12 -0
  151. package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
  152. package/data/build/dist/host/cli-adapters/codex-driver.js +153 -6
  153. package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
  154. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts +43 -3
  155. package/data/build/dist/host/cli-adapters/command-code-driver.d.ts.map +1 -1
  156. package/data/build/dist/host/cli-adapters/command-code-driver.js +637 -72
  157. package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
  158. package/data/build/dist/host/cli-adapters/command-code-history.d.ts +147 -0
  159. package/data/build/dist/host/cli-adapters/command-code-history.d.ts.map +1 -0
  160. package/data/build/dist/host/cli-adapters/command-code-history.js +659 -0
  161. package/data/build/dist/host/cli-adapters/command-code-history.js.map +1 -0
  162. package/data/build/dist/host/cli-adapters/cursor-driver.d.ts +12 -0
  163. package/data/build/dist/host/cli-adapters/cursor-driver.d.ts.map +1 -0
  164. package/data/build/dist/host/cli-adapters/cursor-driver.js +20 -0
  165. package/data/build/dist/host/cli-adapters/cursor-driver.js.map +1 -0
  166. package/data/build/dist/host/cli-adapters/custom-upstream-classifier.d.ts +67 -0
  167. package/data/build/dist/host/cli-adapters/custom-upstream-classifier.d.ts.map +1 -0
  168. package/data/build/dist/host/cli-adapters/custom-upstream-classifier.js +169 -0
  169. package/data/build/dist/host/cli-adapters/custom-upstream-classifier.js.map +1 -0
  170. package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts +2 -1
  171. package/data/build/dist/host/cli-adapters/delegate-dispatch.d.ts.map +1 -1
  172. package/data/build/dist/host/cli-adapters/delegate-dispatch.js +14 -61
  173. package/data/build/dist/host/cli-adapters/delegate-dispatch.js.map +1 -1
  174. package/data/build/dist/host/cli-adapters/delegation-authorization.d.ts +19 -0
  175. package/data/build/dist/host/cli-adapters/delegation-authorization.d.ts.map +1 -0
  176. package/data/build/dist/host/cli-adapters/delegation-authorization.js +49 -0
  177. package/data/build/dist/host/cli-adapters/delegation-authorization.js.map +1 -0
  178. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.d.ts +34 -0
  179. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.d.ts.map +1 -0
  180. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js +121 -0
  181. package/data/build/dist/host/cli-adapters/delegation-mention-rewrite.js.map +1 -0
  182. package/data/build/dist/host/cli-adapters/driver.d.ts +6 -0
  183. package/data/build/dist/host/cli-adapters/driver.d.ts.map +1 -1
  184. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  185. package/data/build/dist/host/cli-adapters/feature.js +269 -18
  186. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  187. package/data/build/dist/host/cli-adapters/kiro-driver.d.ts +12 -0
  188. package/data/build/dist/host/cli-adapters/kiro-driver.d.ts.map +1 -0
  189. package/data/build/dist/host/cli-adapters/kiro-driver.js +18 -0
  190. package/data/build/dist/host/cli-adapters/kiro-driver.js.map +1 -0
  191. package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts.map +1 -1
  192. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js +11 -0
  193. package/data/build/dist/host/cli-adapters/legacy-session-adapter.js.map +1 -1
  194. package/data/build/dist/host/cli-adapters/model-catalog.d.ts +5 -0
  195. package/data/build/dist/host/cli-adapters/model-catalog.d.ts.map +1 -1
  196. package/data/build/dist/host/cli-adapters/model-catalog.js +130 -0
  197. package/data/build/dist/host/cli-adapters/model-catalog.js.map +1 -1
  198. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +33 -3
  199. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -1
  200. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +115 -9
  201. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -1
  202. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +14 -2
  203. package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -1
  204. package/data/build/dist/host/cli-adapters/native-team-subagent.js +23 -4
  205. package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
  206. package/data/build/dist/host/cli-adapters/new-api-subscription.d.ts +75 -0
  207. package/data/build/dist/host/cli-adapters/new-api-subscription.d.ts.map +1 -0
  208. package/data/build/dist/host/cli-adapters/new-api-subscription.js +959 -0
  209. package/data/build/dist/host/cli-adapters/new-api-subscription.js.map +1 -0
  210. package/data/build/dist/host/cli-adapters/opencode-driver.d.ts.map +1 -1
  211. package/data/build/dist/host/cli-adapters/opencode-driver.js +9 -7
  212. package/data/build/dist/host/cli-adapters/opencode-driver.js.map +1 -1
  213. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts +33 -3
  214. package/data/build/dist/host/cli-adapters/provider-subscription.d.ts.map +1 -1
  215. package/data/build/dist/host/cli-adapters/provider-subscription.js +158 -40
  216. package/data/build/dist/host/cli-adapters/provider-subscription.js.map +1 -1
  217. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts +71 -0
  218. package/data/build/dist/host/cli-adapters/qoder-driver.d.ts.map +1 -0
  219. package/data/build/dist/host/cli-adapters/qoder-driver.js +553 -0
  220. package/data/build/dist/host/cli-adapters/qoder-driver.js.map +1 -0
  221. package/data/build/dist/host/cli-adapters/qoder-subscription.d.ts +31 -0
  222. package/data/build/dist/host/cli-adapters/qoder-subscription.d.ts.map +1 -0
  223. package/data/build/dist/host/cli-adapters/qoder-subscription.js +178 -0
  224. package/data/build/dist/host/cli-adapters/qoder-subscription.js.map +1 -0
  225. package/data/build/dist/host/cli-adapters/registry.d.ts +41 -2
  226. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  227. package/data/build/dist/host/cli-adapters/registry.js +187 -18
  228. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  229. package/data/build/dist/host/cli-adapters/session-store.d.ts +4 -0
  230. package/data/build/dist/host/cli-adapters/session-store.d.ts.map +1 -1
  231. package/data/build/dist/host/cli-adapters/session-store.js +18 -2
  232. package/data/build/dist/host/cli-adapters/session-store.js.map +1 -1
  233. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts +14 -1
  234. package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
  235. package/data/build/dist/host/cli-adapters/standard-stream-driver.js +121 -23
  236. package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
  237. package/data/build/dist/host/cli-adapters/stream-normalizer.d.ts +10 -1
  238. package/data/build/dist/host/cli-adapters/stream-normalizer.d.ts.map +1 -1
  239. package/data/build/dist/host/cli-adapters/stream-normalizer.js +23 -0
  240. package/data/build/dist/host/cli-adapters/stream-normalizer.js.map +1 -1
  241. package/data/build/dist/host/cli-adapters/subagent-tool.d.ts.map +1 -1
  242. package/data/build/dist/host/cli-adapters/subagent-tool.js +53 -7
  243. package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -1
  244. package/data/build/dist/host/cli-bridge/bridge-server.d.ts +5 -0
  245. package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -1
  246. package/data/build/dist/host/cli-bridge/bridge-server.js +7 -2
  247. package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -1
  248. package/data/build/dist/host/cli-bridge/command-code-mod.d.ts +5 -1
  249. package/data/build/dist/host/cli-bridge/command-code-mod.d.ts.map +1 -1
  250. package/data/build/dist/host/cli-bridge/command-code-mod.js +43 -12
  251. package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -1
  252. package/data/build/dist/host/cli-bridge/dispatch.d.ts.map +1 -1
  253. package/data/build/dist/host/cli-bridge/dispatch.js +43 -5
  254. package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -1
  255. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +24 -5
  256. package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -1
  257. package/data/build/dist/host/features/peer-host.d.ts +21 -1
  258. package/data/build/dist/host/features/peer-host.d.ts.map +1 -1
  259. package/data/build/dist/host/features/peer-host.js +174 -30
  260. package/data/build/dist/host/features/peer-host.js.map +1 -1
  261. package/data/build/dist/host/features/types.d.ts +2 -0
  262. package/data/build/dist/host/features/types.d.ts.map +1 -1
  263. package/data/build/dist/host/index.d.ts +11 -1
  264. package/data/build/dist/host/index.d.ts.map +1 -1
  265. package/data/build/dist/host/index.js +12 -2
  266. package/data/build/dist/host/index.js.map +1 -1
  267. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js +6 -1
  268. package/data/build/dist/host/modules/peer-host/peer-host-native-protocol.js.map +1 -1
  269. package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.d.ts +2 -0
  270. package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.d.ts.map +1 -1
  271. package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.js +26 -7
  272. package/data/build/dist/host/modules/peer-host/peer-host-virtual-registry.js.map +1 -1
  273. package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
  274. package/data/build/dist/host/native-session-bridge.js +36 -7
  275. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  276. package/data/build/dist/host/rpc.js +5 -2
  277. package/data/build/dist/host/rpc.js.map +1 -1
  278. package/data/build/dist/host/settings.d.ts.map +1 -1
  279. package/data/build/dist/host/settings.js +12 -5
  280. package/data/build/dist/host/settings.js.map +1 -1
  281. package/data/build/dist/host/terminal/backends/local-pty-backend.d.ts.map +1 -1
  282. package/data/build/dist/host/terminal/backends/local-pty-backend.js +14 -0
  283. package/data/build/dist/host/terminal/backends/local-pty-backend.js.map +1 -1
  284. package/data/build/dist/host/terminal/backends/tmux-backend.d.ts +40 -1
  285. package/data/build/dist/host/terminal/backends/tmux-backend.d.ts.map +1 -1
  286. package/data/build/dist/host/terminal/backends/tmux-backend.js +291 -18
  287. package/data/build/dist/host/terminal/backends/tmux-backend.js.map +1 -1
  288. package/data/build/dist/host/terminal/runtime-adapter.d.ts +32 -0
  289. package/data/build/dist/host/terminal/runtime-adapter.d.ts.map +1 -1
  290. package/data/build/dist/host/terminal/runtime-adapter.js +8 -0
  291. package/data/build/dist/host/terminal/runtime-adapter.js.map +1 -1
  292. package/data/build/dist/host/terminal/runtime-manager.d.ts +3 -0
  293. package/data/build/dist/host/terminal/runtime-manager.d.ts.map +1 -1
  294. package/data/build/dist/host/terminal/runtime-manager.js +92 -4
  295. package/data/build/dist/host/terminal/runtime-manager.js.map +1 -1
  296. package/data/build/dist/host/terminal/terminal-controller.d.ts.map +1 -1
  297. package/data/build/dist/host/terminal/terminal-controller.js +58 -6
  298. package/data/build/dist/host/terminal/terminal-controller.js.map +1 -1
  299. package/data/build/dist/host/terminal/terminal-process-service.d.ts.map +1 -1
  300. package/data/build/dist/host/terminal/terminal-process-service.js +12 -2
  301. package/data/build/dist/host/terminal/terminal-process-service.js.map +1 -1
  302. package/data/build/dist/host/terminal/terminal-service.d.ts +41 -4
  303. package/data/build/dist/host/terminal/terminal-service.d.ts.map +1 -1
  304. package/data/build/dist/host/terminal/terminal-service.js +551 -61
  305. package/data/build/dist/host/terminal/terminal-service.js.map +1 -1
  306. package/data/build/dist/index.d.ts +2 -2
  307. package/data/build/dist/index.d.ts.map +1 -1
  308. package/data/build/dist/index.js +2 -2
  309. package/data/build/dist/index.js.map +1 -1
  310. package/data/build/dist/shared/contracts/cli-adapter.d.ts +64 -2
  311. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  312. package/data/build/dist/shared/contracts/config.d.ts +54 -11
  313. package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
  314. package/data/build/dist/shared/contracts/config.js +52 -8
  315. package/data/build/dist/shared/contracts/config.js.map +1 -1
  316. package/data/build/dist/shared/contracts/subscription.d.ts +5 -1
  317. package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
  318. package/data/build/dist/shared/contracts/subscription.js.map +1 -1
  319. package/data/build/dist/shared/contracts/terminal.d.ts +8 -1
  320. package/data/build/dist/shared/contracts/terminal.d.ts.map +1 -1
  321. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  322. package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
  323. package/data/build/dist/shared/contracts/version.js +1 -1
  324. package/data/build/dist/shared/contracts/version.js.map +1 -1
  325. package/data/build/dist/shared/debug.d.ts +8 -0
  326. package/data/build/dist/shared/debug.d.ts.map +1 -1
  327. package/data/build/dist/shared/debug.js +43 -7
  328. package/data/build/dist/shared/debug.js.map +1 -1
  329. package/data/build/dist/shared/delegation-carrier.d.ts +24 -0
  330. package/data/build/dist/shared/delegation-carrier.d.ts.map +1 -0
  331. package/data/build/dist/shared/delegation-carrier.js +111 -0
  332. package/data/build/dist/shared/delegation-carrier.js.map +1 -0
  333. package/data/build/dist/shared/index.d.ts +2 -2
  334. package/data/build/dist/shared/index.d.ts.map +1 -1
  335. package/data/build/dist/shared/index.js +2 -2
  336. package/data/build/dist/shared/index.js.map +1 -1
  337. package/data/build/dist/shared/terminal-input.d.ts +8 -0
  338. package/data/build/dist/shared/terminal-input.d.ts.map +1 -0
  339. package/data/build/dist/shared/terminal-input.js +10 -0
  340. package/data/build/dist/shared/terminal-input.js.map +1 -0
  341. package/data/build/dist/transport/debug.d.ts +7 -0
  342. package/data/build/dist/transport/debug.d.ts.map +1 -1
  343. package/data/build/dist/transport/debug.js +33 -5
  344. package/data/build/dist/transport/debug.js.map +1 -1
  345. package/data/build/dist/transport/index.d.ts +1 -1
  346. package/data/build/dist/transport/index.d.ts.map +1 -1
  347. package/data/build/dist/transport/index.js +1 -1
  348. package/data/build/dist/transport/index.js.map +1 -1
  349. package/data/build/dist/typert.host.js +1 -1
  350. package/data/build/dist/typert.host.js.map +1 -1
  351. package/package.json +1 -1
  352. package/profile/README.md +2 -2
  353. package/profile/package.json +2 -2
  354. package/profile/version.json +1 -1
  355. package/version.json +1 -1
@@ -1,8 +1,17 @@
1
- import { callCliRpc } from './cli-catalog.js';
2
- import { DELEGATE_COMMAND_NAME, delegateAdapterOptions, extractDelegateTask } from './delegate-plan.js';
3
- import { setDelegatePopupOptions, startDelegateUiDom } from './delegate-ui-dom.js';
1
+ import { adapterCatalogWithDsh, callCliRpc } from './cli-catalog.js';
2
+ import { appendDelegateCarrier, DELEGATE_COMMAND_NAME, delegateAdapterOptions } from './delegate-plan.js';
3
+ import { DELEGATE_POPUP_LOGO_ATTRIBUTE, setDelegatePopupOptions, startDelegateUiDom } from './delegate-ui-dom.js';
4
+ import { providerIconUrl } from './provider-icons.js';
5
+ import { getModelCatalogCache, loadModelCatalog } from './model-catalog-cache.js';
4
6
  import { resolveDelegateIcon } from '../dsh-capabilities/client/primitives-adapter.js';
5
7
  import { debugInfo, debugWarn } from '../shared/debug.js';
8
+ import { encodeDelegationCarrier } from '../shared/delegation-carrier.js';
9
+ const DELEGATE_REFERENCE_SOURCE = 'codingns-delegate';
10
+ const delegateReferenceLabels = new Map();
11
+ const delegateReferenceSelections = new Map();
12
+ function delegateReferenceKey(adapterId, modelId) {
13
+ return modelId?.trim() ? `${adapterId}\u0000${modelId.trim()}` : adapterId;
14
+ }
6
15
  /**
7
16
  * 把 `/委派` 注册进 `/` 菜单。
8
17
  *
@@ -18,6 +27,14 @@ export function registerDelegateCommand(ctx, options) {
18
27
  const ui = startDelegateUiDom({
19
28
  menuLabel: () => t('delegate.label'),
20
29
  popupPlaceholder: () => t('delegate.searchPlaceholder'),
30
+ composerPlaceholder: () => t('delegate.composerPlaceholder'),
31
+ cardTitle: () => t('delegate.cardTitle'),
32
+ cardStatus: () => t('delegate.cardStatus'),
33
+ cardTarget: (value) => t('delegate.cardTarget', {
34
+ label: value.label,
35
+ adapter: value.adapterId,
36
+ model: value.modelId === undefined ? '' : ` · ${value.modelId}`,
37
+ }),
21
38
  });
22
39
  // commandUi 由另一个 Client 插件提供,装配顺序不保证它已经就绪;直接同步读取会
23
40
  // 在加载晚于本模块时静默丢掉注册。Cordis 的 inject 会把回调推迟到服务可用时,
@@ -40,6 +57,7 @@ function registerDelegateCommandIn(ctx, options) {
40
57
  }
41
58
  const t = options.locale.bind('codingns');
42
59
  try {
60
+ registerDelegateReferenceSource(ctx, options);
43
61
  // 注册必须由本作用域的 effect 持有:commandUi.register 的 disposer 只在显式
44
62
  // 调用时才移除命令,effect 保证停用时一定会调用它。
45
63
  ctx.effect(() => commandUi.register({
@@ -62,21 +80,40 @@ function registerDelegateCommandIn(ctx, options) {
62
80
  if (!capability.supported)
63
81
  throw new Error(capability.message);
64
82
  const catalog = await callCliRpc(options.rpc, 'catalog', { sessionId: session.sessionId });
65
- const list = delegateAdapterOptions(catalog);
83
+ const list = delegateAdapterOptions(adapterCatalogWithDsh(catalog, options.dshVersion));
66
84
  // 登记给 DOM 增强器,供弹层按标题反查适配器并插入图标。
67
85
  setDelegatePopupOptions(list);
68
86
  return list;
69
87
  },
70
88
  async onSelect(option, session) {
71
- const task = readDelegateTask(ctx, session.sessionId, option.id, option.label);
72
- const result = await callCliRpc(options.rpc, 'delegate', {
73
- sessionId: session.sessionId,
74
- adapterId: option.id,
75
- prompt: task,
76
- });
77
- if (!result.ok)
78
- throw new Error(result.error ?? t('delegate.failed'));
79
- notifySession(ctx, session.sessionId, 'info', t('delegate.started', { name: option.label }));
89
+ const input = readSessionInput(ctx, session.sessionId);
90
+ if (input === undefined) {
91
+ return;
92
+ }
93
+ const snapshot = input.state.getSnapshot();
94
+ const draft = snapshot.draft ?? '';
95
+ delegateReferenceLabels.set(option.id, option.label);
96
+ const selection = input.caretSpan?.();
97
+ const span = snapshot.draftRev === undefined
98
+ ? undefined
99
+ : delegateCommandSpan(draft, snapshot.draftRev, selection) ?? (selection === undefined ? undefined : { ...selection, draftRev: snapshot.draftRev });
100
+ const inserted = span !== undefined && input.insertReference?.({
101
+ source: DELEGATE_REFERENCE_SOURCE,
102
+ ref: option.id,
103
+ label: option.label,
104
+ appearance: 'session',
105
+ clipboardText: `@${option.label}`,
106
+ }, span) === true;
107
+ if (inserted) {
108
+ return;
109
+ }
110
+ if (input.setDraft === undefined) {
111
+ input?.notify('error', t('delegate.draftUnsupported'));
112
+ return;
113
+ }
114
+ // 旧版 DSH 没有结构化引用能力时保留 carrier 字符串回退;当前 rc.2
115
+ // 会走上面的 ReferenceChip 路径,不会再把内部 HTML 注释直接显示出来。
116
+ input.setDraft(appendDelegateCarrier(draft, option.id, option.label));
80
117
  },
81
118
  },
82
119
  }), 'codingns4dsh: delegate command');
@@ -87,31 +124,453 @@ function registerDelegateCommandIn(ctx, options) {
87
124
  debugWarn('codingns4dsh: /委派 命令注册失败', { error: error instanceof Error ? error.message : String(error) });
88
125
  }
89
126
  }
90
- /** 读取当前草稿里 `/委派` 之后的任务描述;取不到时留空,由 Host 回退到最近一条用户消息。 */
91
- function readDelegateTask(ctx, sessionId, adapterId, adapterLabel) {
92
- const draft = readDraft(ctx, sessionId);
93
- return extractDelegateTask(draft, adapterId, adapterLabel);
127
+ /**
128
+ * 找到当前 `/委派` 命令令牌,供 popupSelect 选择结果直接替换为 chip。
129
+ * 命令弹层的 onSelect 在消费令牌前触发,此时公开的 caretSpan 可能只是折叠光标,
130
+ * 因而不能依赖它来推断命令范围。
131
+ */
132
+ function delegateCommandSpan(draft, draftRev, selection) {
133
+ const caret = selection?.end ?? draft.length;
134
+ const token = /\/(?:delegate|委派)(?=\s|$)/gu;
135
+ let match;
136
+ while ((match = token.exec(draft)) !== null) {
137
+ const start = match.index;
138
+ const end = start + match[0].length;
139
+ const before = draft[start - 1];
140
+ // 只接受命令边界;普通文本中的同名字符串不能被误替换。
141
+ if (start > 0 && before !== undefined && !/\s/u.test(before))
142
+ continue;
143
+ if (caret >= start && caret <= end + 1)
144
+ return { start, end, draftRev };
145
+ // 选择菜单可能把光标留在令牌末尾之后的一个空格,仍视为当前命令。
146
+ if (caret > end && draft.slice(end, caret).trim() === '')
147
+ return { start, end, draftRev };
148
+ }
149
+ return undefined;
94
150
  }
95
- function readDraft(ctx, sessionId) {
151
+ /** 注册结构化 Agent 引用源:显示层使用 chip,提交层再序列化为 Host carrier。 */
152
+ function registerDelegateReferenceSource(ctx, options) {
153
+ const inputTriggers = readService(ctx, 'inputTriggers');
154
+ const source = {
155
+ trigger: '@',
156
+ name: DELEGATE_REFERENCE_SOURCE,
157
+ async candidates(session, request) {
158
+ try {
159
+ const catalog = await callCliRpc(options.rpc, 'catalog', { sessionId: session.sessionId });
160
+ const query = request.query.trim().toLowerCase();
161
+ const available = delegateAdapterOptions(adapterCatalogWithDsh(catalog, options.dshVersion));
162
+ // 让输入框中的 chip 也能按同一份目录补 Provider Logo。
163
+ setDelegatePopupOptions(available);
164
+ return available
165
+ .filter((option) => query === '' || option.id.toLowerCase().includes(query) || option.label.toLowerCase().includes(query))
166
+ .map((option) => {
167
+ delegateReferenceLabels.set(option.id, option.label);
168
+ delegateReferenceSelections.set(option.id, { adapterId: option.id, label: option.label });
169
+ return { name: option.id, label: option.label, value: option.id, icon: 'session' };
170
+ });
171
+ }
172
+ catch {
173
+ return [];
174
+ }
175
+ },
176
+ onPick(pick) {
177
+ const ref = pick.candidate.value ?? pick.candidate.name;
178
+ const selection = delegateReferenceSelections.get(ref);
179
+ const label = pick.candidate.label?.trim() || selection?.label || delegateReferenceLabels.get(ref) || ref;
180
+ delegateReferenceLabels.set(ref, label);
181
+ return { insert: { source: DELEGATE_REFERENCE_SOURCE, ref, label, appearance: 'session', clipboardText: `@${label}` } };
182
+ },
183
+ codec: {
184
+ clipboardText(ref) {
185
+ return `@${delegateReferenceLabels.get(ref) || ref}`;
186
+ },
187
+ async serialize(ref) {
188
+ const selection = delegateReferenceSelections.get(ref);
189
+ const adapterId = selection?.adapterId || ref.split('\u0000', 1)[0] || ref;
190
+ const label = selection?.label || delegateReferenceLabels.get(ref) || adapterId;
191
+ return encodeDelegationCarrier(adapterId, label, selection?.modelId);
192
+ },
193
+ },
194
+ };
96
195
  try {
97
- const actx = readSessions(ctx)?.scope(sessionId);
98
- if (actx === undefined)
99
- return '';
100
- return readConversation(ctx)?.input.for(actx).state.getSnapshot().draft ?? '';
196
+ ctx.effect(() => {
197
+ // 自定义 `#` 入口不依赖 inputTriggers。移动端服务装配顺序可能是
198
+ // commandUi 先就绪、inputTriggers 后就绪;不能因为一次性探测失败而丢掉核心入口。
199
+ const disposeHashShortcut = registerDelegateHashShortcut(ctx, options);
200
+ const disposeSource = inputTriggers !== undefined && typeof inputTriggers.registerSource === 'function'
201
+ ? inputTriggers.registerSource(source)
202
+ : undefined;
203
+ return () => {
204
+ disposeHashShortcut();
205
+ disposeSource?.();
206
+ };
207
+ }, 'codingns4dsh: delegate reference source');
208
+ }
209
+ catch (error) {
210
+ debugWarn('codingns4dsh: Agent 引用源注册失败', { error: error instanceof Error ? error.message : String(error) });
211
+ }
212
+ }
213
+ /**
214
+ * 为 DSH 输入框补充 `#` 委派快捷入口。
215
+ *
216
+ * 原生 inputTriggers 只有 `/` 与 `@` 两个触发字符,而且 onPick 是同步契约,无法在
217
+ * 选择适配器后等待 `cli/models` 再切换二级目录。因此这里使用插件自己的轻量弹层:
218
+ * `#` 触发适配器列表,点击适配器后立即请求它的模型目录,点击模型时才写入结构化
219
+ * ReferenceChip。草稿里不会留下“已选择,请继续输入”的持久提示。
220
+ */
221
+ function registerDelegateHashShortcut(ctx, options) {
222
+ if (typeof document === 'undefined' || typeof window === 'undefined')
223
+ return () => undefined;
224
+ const t = options.locale.bind('codingns');
225
+ let popup;
226
+ let popupSessionId = '';
227
+ let popupMode = 'adapter';
228
+ let popupAdapter;
229
+ let popupOptions = [];
230
+ let popupModels = [];
231
+ let popupEditor;
232
+ let popupToken;
233
+ let popupRequestId = 0;
234
+ let refreshTimer;
235
+ const cancelRefresh = () => {
236
+ if (refreshTimer === undefined)
237
+ return;
238
+ clearTimeout(refreshTimer);
239
+ refreshTimer = undefined;
240
+ };
241
+ const close = () => {
242
+ popupRequestId += 1;
243
+ popup?.remove();
244
+ popup = undefined;
245
+ popupEditor = undefined;
246
+ popupToken = undefined;
247
+ popupAdapter = undefined;
248
+ popupOptions = [];
249
+ popupModels = [];
250
+ popupMode = 'adapter';
251
+ };
252
+ const inputFor = (sessionId) => {
253
+ try {
254
+ const conversation = readConversation(ctx);
255
+ const actx = readSessions(ctx)?.scope(sessionId);
256
+ if (actx !== undefined && conversation !== undefined)
257
+ return conversation.input.for(actx);
258
+ // DSH rc.2 的 InputHub 同时提供按 sessionId 解析的 shell;移动端布局或
259
+ // 早期装配阶段可能还拿不到 retained Session scope,此路径仍能读写草稿。
260
+ return conversation?.input.shell?.(sessionId);
261
+ }
262
+ catch {
263
+ return undefined;
264
+ }
265
+ };
266
+ const position = () => {
267
+ if (popup === undefined || popupEditor === undefined)
268
+ return;
269
+ const rect = popupEditor.getBoundingClientRect();
270
+ const viewport = window.visualViewport;
271
+ const viewportLeft = viewport?.offsetLeft ?? 0;
272
+ const viewportTop = viewport?.offsetTop ?? 0;
273
+ const viewportWidth = viewport?.width ?? window.innerWidth;
274
+ const viewportHeight = viewport?.height ?? window.innerHeight;
275
+ const popupWidth = Math.min(340, Math.max(220, rect.width));
276
+ const gap = 6;
277
+ const minEdge = 8;
278
+ const below = rect.bottom + gap;
279
+ const above = rect.top - gap - popup.offsetHeight;
280
+ const maxTop = viewportTop + viewportHeight - minEdge - popup.offsetHeight;
281
+ // 移动端输入框通常贴在视口底部,优先向上展开,避免弹层被软键盘裁掉。
282
+ const top = above >= viewportTop + minEdge
283
+ ? above
284
+ : Math.min(maxTop, Math.max(viewportTop + minEdge, below));
285
+ const left = Math.max(viewportLeft + minEdge, Math.min(rect.left, viewportLeft + viewportWidth - popupWidth - minEdge));
286
+ Object.assign(popup.style, {
287
+ left: `${left}px`,
288
+ top: `${top}px`,
289
+ minWidth: `${popupWidth}px`,
290
+ });
291
+ };
292
+ const ensurePopup = (editor, sessionId) => {
293
+ if (popup !== undefined && popupSessionId === sessionId) {
294
+ popupEditor = editor;
295
+ position();
296
+ return popup;
297
+ }
298
+ close();
299
+ popupSessionId = sessionId;
300
+ popupEditor = editor;
301
+ popup = document.createElement('div');
302
+ popup.setAttribute('data-codingns-delegate-hash-popup', '');
303
+ popup.setAttribute('role', 'listbox');
304
+ Object.assign(popup.style, {
305
+ position: 'fixed', zIndex: '2147483647', maxWidth: 'min(360px, calc(100vw - 16px))', maxHeight: 'min(420px, calc(100vh - 24px))', overflowY: 'auto',
306
+ padding: '6px', border: '1px solid var(--dsw-alias-border-l2,rgba(127,127,127,.35))', borderRadius: '10px',
307
+ background: 'var(--dsw-alias-bg-layer-3,#242526)', color: 'var(--dsw-alias-label-primary,#f5f5f5)',
308
+ boxShadow: '0 10px 30px rgba(0,0,0,.28)', font: '13px var(--dsw-font,system-ui,sans-serif)',
309
+ });
310
+ document.body.append(popup);
311
+ position();
312
+ return popup;
313
+ };
314
+ const render = (title, rows) => {
315
+ if (popup === undefined)
316
+ return;
317
+ popup.replaceChildren();
318
+ const heading = document.createElement('div');
319
+ heading.textContent = title;
320
+ Object.assign(heading.style, { padding: '5px 8px 7px', color: 'var(--dsw-alias-label-secondary,#a9adb5)', fontSize: '12px', fontWeight: '600' });
321
+ popup.append(heading);
322
+ if (rows.length === 0) {
323
+ const empty = document.createElement('div');
324
+ empty.textContent = t('delegate.popupNoResults');
325
+ Object.assign(empty.style, { padding: '8px', color: 'var(--dsw-alias-label-secondary,#a9adb5)' });
326
+ popup.append(empty);
327
+ position();
328
+ return;
329
+ }
330
+ for (const row of rows) {
331
+ const button = document.createElement('button');
332
+ button.type = 'button';
333
+ button.setAttribute('role', 'option');
334
+ button.dataset.value = row.id;
335
+ Object.assign(button.style, { display: 'flex', width: '100%', minWidth: '0', gap: '8px', alignItems: 'center', padding: '8px', border: '0', borderRadius: '7px', background: 'transparent', color: 'inherit', textAlign: 'left', cursor: 'pointer' });
336
+ button.addEventListener('mouseenter', () => { button.style.background = 'var(--dsw-alias-interactive-bg-hover,rgba(127,127,127,.16))'; });
337
+ button.addEventListener('mouseleave', () => { button.style.background = 'transparent'; });
338
+ button.addEventListener('click', row.onClick);
339
+ const iconUrl = row.iconId === undefined ? undefined : providerIconUrl(row.iconId);
340
+ if (iconUrl !== undefined && iconUrl !== '' && row.iconId !== undefined) {
341
+ const image = document.createElement('img');
342
+ image.setAttribute('src', iconUrl);
343
+ image.setAttribute('alt', '');
344
+ image.setAttribute('aria-hidden', 'true');
345
+ image.setAttribute(DELEGATE_POPUP_LOGO_ATTRIBUTE, row.iconId);
346
+ Object.assign(image.style, { width: '16px', height: '16px', flex: '0 0 16px', objectFit: 'contain', borderRadius: '3px' });
347
+ button.append(image);
348
+ }
349
+ const text = document.createElement('span');
350
+ text.textContent = row.label;
351
+ Object.assign(text.style, { minWidth: '0', overflowWrap: 'anywhere', flex: '1 1 auto' });
352
+ button.append(text);
353
+ if (row.detail) {
354
+ const detail = document.createElement('span');
355
+ detail.textContent = row.detail;
356
+ Object.assign(detail.style, { flex: '0 1 auto', minWidth: '0', maxWidth: '45%', overflowWrap: 'anywhere', color: 'var(--dsw-alias-label-secondary,#a9adb5)', fontSize: '12px' });
357
+ button.append(detail);
358
+ }
359
+ popup.append(button);
360
+ }
361
+ position();
362
+ };
363
+ const selectModel = (model) => {
364
+ const input = inputFor(popupSessionId);
365
+ const token = popupToken;
366
+ const adapter = popupAdapter;
367
+ if (input === undefined || token === undefined || adapter === undefined)
368
+ return;
369
+ const ref = delegateReferenceKey(adapter.id, model.id);
370
+ delegateReferenceSelections.set(ref, { adapterId: adapter.id, label: adapter.label, modelId: model.id });
371
+ delegateReferenceLabels.set(ref, adapter.label);
372
+ const inserted = input.insertReference?.({ source: DELEGATE_REFERENCE_SOURCE, ref, label: adapter.label, appearance: 'session', clipboardText: `@${adapter.label}` }, token) === true;
373
+ if (!inserted) {
374
+ const snapshot = input.state.getSnapshot();
375
+ const draft = snapshot.draft ?? '';
376
+ const replacement = encodeDelegationCarrier(adapter.id, adapter.label, model.id);
377
+ input.setDraft?.(`${draft.slice(0, token.start)}${replacement}${draft.slice(token.end)}`);
378
+ }
379
+ close();
380
+ };
381
+ const selectAdapter = async (adapter) => {
382
+ // 选择适配器后进入模型目录,取消触发 `#` 时为确保快照发布而安排的旧重试,
383
+ // 避免它把已加载的模型列表重新按旧 token 过滤为空。
384
+ cancelRefresh();
385
+ popupAdapter = adapter;
386
+ popupMode = 'model';
387
+ const requestId = ++popupRequestId;
388
+ const sessionId = popupSessionId;
389
+ render(t('delegate.selectModel', { name: adapter.label }), [{ id: 'loading', label: t('delegate.loadingModels'), onClick: () => undefined }]);
390
+ try {
391
+ const catalog = await loadModelCatalog(options.rpc, adapter.id, sessionId);
392
+ popupModels = catalog.groups.flatMap((group) => group.models.map((model) => {
393
+ const efforts = model.efforts.map((effort) => model.effortLabels?.[effort] ?? effort);
394
+ const effortsLabel = efforts.length === 0 ? undefined : t('cli.thinkingLevel', { value: efforts.join(t('common.listSeparator')) });
395
+ const details = [model.description, effortsLabel].filter((value) => value !== undefined && value.trim() !== '');
396
+ return { id: model.id, label: model.name || model.id, ...(details.length === 0 ? {} : { detail: details.join(' · ') }) };
397
+ }));
398
+ if (popup === undefined || popupMode !== 'model' || popupRequestId !== requestId || popupSessionId !== sessionId || popupAdapter?.id !== adapter.id)
399
+ return;
400
+ render(t('delegate.selectModel', { name: adapter.label }), popupModels.map((model) => ({ ...model, onClick: () => selectModel(model) })));
401
+ }
402
+ catch (error) {
403
+ if (popup === undefined || popupMode !== 'model' || popupRequestId !== requestId || popupSessionId !== sessionId || popupAdapter?.id !== adapter.id)
404
+ return;
405
+ render(t('delegate.selectModel', { name: adapter.label }), [{ id: 'error', label: error instanceof Error ? error.message : t('delegate.modelCatalogFailed'), onClick: () => undefined }]);
406
+ }
407
+ };
408
+ const sessionIdFor = (element) => {
409
+ const direct = element?.closest('[data-conversation-session]')?.getAttribute('data-conversation-session')?.trim();
410
+ if (direct)
411
+ return direct;
412
+ // 某些移动端布局把 Composer 移到 sticky 容器,编辑器与会话根不再是同一棵 DOM 子树。
413
+ // 当前页面只有一个可见会话时,按 Composer 反查对应根节点即可继续使用 scoped input。
414
+ const editor = element?.closest('[contenteditable="true"], textarea, input, [role="textbox"], [data-composer-input="true"]');
415
+ if (editor === null || editor === undefined)
416
+ return undefined;
417
+ const candidates = [...document.querySelectorAll('[data-conversation-session]')]
418
+ .filter((root) => root.querySelector('[contenteditable="true"], textarea, input, [role="textbox"], [data-composer-input="true"]') !== null);
419
+ return candidates.length === 1 ? candidates[0]?.getAttribute('data-conversation-session')?.trim() : undefined;
420
+ };
421
+ const refresh = (target) => {
422
+ const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;
423
+ const editor = element?.closest('[contenteditable="true"], textarea, input, [role="textbox"], [data-composer-input="true"]');
424
+ const sessionId = sessionIdFor(element);
425
+ if (!(editor instanceof HTMLElement) || sessionId === undefined || sessionId === '')
426
+ return;
427
+ const input = inputFor(sessionId);
428
+ if (input === undefined)
429
+ return;
430
+ const snapshot = input.state.getSnapshot();
431
+ if (snapshot.phase !== undefined && snapshot.phase !== 'plain') {
432
+ close();
433
+ return;
434
+ }
435
+ const snapshotDraft = snapshot.draft ?? '';
436
+ const selection = input.caretSpan?.();
437
+ const domCaret = editorCaretOffset(editor);
438
+ const caret = Math.max(0, selection?.end ?? domCaret ?? snapshotDraft.length);
439
+ // Lexical 输入更新先于 SessionInput 状态发布。若快照还没有本次输入的 `#`,
440
+ // 使用编辑器当前文本完成识别,随后再由延迟重试同步到最新 draftRev。
441
+ const domDraft = editorDraft(editor);
442
+ const snapshotToken = hashTokenAtCaret(snapshotDraft, caret);
443
+ const domToken = domDraft === undefined ? undefined : hashTokenAtCaret(domDraft, caret);
444
+ const token = domToken ?? snapshotToken;
445
+ if (token === undefined) {
446
+ close();
447
+ return;
448
+ }
449
+ popupSessionId = sessionId;
450
+ popupToken = { ...token, end: caret, draftRev: selection?.draftRev ?? snapshot.draftRev ?? 0 };
451
+ const root = ensurePopup(editor, sessionId);
452
+ const query = token.query.trim().toLowerCase();
453
+ if (popupMode === 'model' && popupAdapter !== undefined) {
454
+ render(t('delegate.selectModel', { name: popupAdapter.label }), popupModels.filter((model) => query === '' || model.id.toLowerCase().includes(query) || model.label.toLowerCase().includes(query)).map((model) => ({ ...model, onClick: () => selectModel(model) })));
455
+ return;
456
+ }
457
+ popupMode = 'adapter';
458
+ popupAdapter = undefined;
459
+ const requestId = ++popupRequestId;
460
+ void callCliRpc(options.rpc, 'catalog', { sessionId }).then((catalog) => {
461
+ if (popup === undefined || popupSessionId !== sessionId || popupMode !== 'adapter' || popupRequestId !== requestId)
462
+ return;
463
+ popupOptions = delegateAdapterOptions(adapterCatalogWithDsh(catalog, options.dshVersion));
464
+ setDelegatePopupOptions(popupOptions);
465
+ const rows = popupOptions
466
+ .filter((item) => query === '' || item.id.toLowerCase().includes(query) || item.label.toLowerCase().includes(query))
467
+ .map((item) => {
468
+ const row = {
469
+ id: item.id,
470
+ label: item.label,
471
+ iconId: item.id,
472
+ onClick: () => { void selectAdapter(item); },
473
+ };
474
+ if (item.detail !== undefined)
475
+ row.detail = item.detail;
476
+ return row;
477
+ });
478
+ render(t('delegate.selectAdapter'), rows);
479
+ }).catch(() => { if (popup === root && popupRequestId === requestId)
480
+ render(t('delegate.selectAdapter'), []); });
481
+ };
482
+ const scheduleRefresh = (target) => {
483
+ queueMicrotask(() => refresh(target));
484
+ cancelRefresh();
485
+ refreshTimer = setTimeout(() => {
486
+ refreshTimer = undefined;
487
+ refresh(target);
488
+ }, 32);
489
+ };
490
+ const onInput = (event) => { scheduleRefresh(event.target); };
491
+ const onCompositionEnd = (event) => { scheduleRefresh(event.target); };
492
+ const onFocus = (event) => { scheduleRefresh(event.target); };
493
+ const onKeyup = (event) => {
494
+ if (event.key.length === 1 || event.key === 'Backspace' || event.key === 'Delete')
495
+ scheduleRefresh(event.target);
496
+ };
497
+ const onPointer = (event) => {
498
+ const target = event.target;
499
+ if (popup !== undefined && target instanceof Node && !popup.contains(target)) {
500
+ const element = target instanceof Element ? target : target.parentElement;
501
+ if (!element?.closest('[contenteditable="true"], textarea, input, [role="textbox"], [data-composer-input="true"]'))
502
+ close();
503
+ }
504
+ };
505
+ const onKey = (event) => { if (event.key === 'Escape')
506
+ close(); };
507
+ const onResize = () => position();
508
+ document.addEventListener('input', onInput, true);
509
+ document.addEventListener('compositionend', onCompositionEnd, true);
510
+ document.addEventListener('focusin', onFocus, true);
511
+ document.addEventListener('keyup', onKeyup, true);
512
+ document.addEventListener('pointerdown', onPointer, true);
513
+ document.addEventListener('keydown', onKey, true);
514
+ window.addEventListener('resize', onResize);
515
+ window.visualViewport?.addEventListener('resize', onResize);
516
+ window.visualViewport?.addEventListener('scroll', onResize);
517
+ return () => {
518
+ close();
519
+ cancelRefresh();
520
+ document.removeEventListener('input', onInput, true);
521
+ document.removeEventListener('compositionend', onCompositionEnd, true);
522
+ document.removeEventListener('focusin', onFocus, true);
523
+ document.removeEventListener('keyup', onKeyup, true);
524
+ document.removeEventListener('pointerdown', onPointer, true);
525
+ document.removeEventListener('keydown', onKey, true);
526
+ window.removeEventListener('resize', onResize);
527
+ window.visualViewport?.removeEventListener('resize', onResize);
528
+ window.visualViewport?.removeEventListener('scroll', onResize);
529
+ };
530
+ }
531
+ /** 读取编辑器当前文本;状态快照发布前先用 DOM 文本识别本轮输入。 */
532
+ function editorDraft(editor) {
533
+ if ('value' in editor && typeof editor.value === 'string')
534
+ return editor.value;
535
+ return typeof editor.textContent === 'string' ? editor.textContent : undefined;
536
+ }
537
+ /** 返回光标在 contenteditable 文本投影中的偏移;无法读取时由调用方回退到 draft 末尾。 */
538
+ function editorCaretOffset(editor) {
539
+ if ('selectionStart' in editor && typeof editor.selectionStart === 'number')
540
+ return editor.selectionStart;
541
+ const selection = window.getSelection();
542
+ if (selection === null || selection.rangeCount === 0 || selection.anchorNode === null || !editor.contains(selection.anchorNode))
543
+ return undefined;
544
+ try {
545
+ const range = selection.getRangeAt(0).cloneRange();
546
+ range.selectNodeContents(editor);
547
+ range.setEnd(selection.anchorNode, selection.anchorOffset);
548
+ return range.toString().length;
101
549
  }
102
550
  catch {
103
- return '';
551
+ return undefined;
104
552
  }
105
553
  }
106
- function notifySession(ctx, sessionId, level, text) {
554
+ /** 匹配光标前最后一个以边界开头的 `#name` token;跨空格后停止,避免误触发。 */
555
+ function hashTokenAtCaret(draft, caret) {
556
+ const before = draft.slice(0, Math.max(0, caret));
557
+ const hash = before.lastIndexOf('#');
558
+ if (hash < 0 || /\s/u.test(before.slice(hash + 1)))
559
+ return undefined;
560
+ const previous = before[hash - 1];
561
+ if (hash > 0 && previous !== undefined && /[\p{L}\p{N}_]/u.test(previous))
562
+ return undefined;
563
+ return { start: hash, query: before.slice(hash + 1) };
564
+ }
565
+ function readSessionInput(ctx, sessionId) {
107
566
  try {
108
567
  const actx = readSessions(ctx)?.scope(sessionId);
109
568
  if (actx === undefined)
110
- return;
111
- readConversation(ctx)?.input.for(actx).notify(level, text);
569
+ return undefined;
570
+ return readConversation(ctx)?.input.for(actx);
112
571
  }
113
572
  catch {
114
- // 通知失败不影响已经落地的委派。
573
+ return undefined;
115
574
  }
116
575
  }
117
576
  function readCommandUi(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"delegate-command.js","sourceRoot":"","sources":["../../../../src/client/delegate-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACvG,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAsEzD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAY,EAAE,OAAuC;IAC3F,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,8CAA8C;IAC9C,oDAAoD;IACpD,0BAA0B;IAC1B,MAAM,EAAE,GAAG,kBAAkB,CAAC;QAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACpC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC;KACxD,CAAC,CAAA;IACF,kDAAkD;IAClD,gDAAgD;IAChD,mDAAmD;IACnD,kCAAkC;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;QAChD,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,EAAE;QACV,EAAE,CAAC,OAAO,EAAE,CAAA;QACZ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC,CAAA;AACH,CAAC;AAED,6CAA6C;AAC7C,SAAS,yBAAyB,CAAC,GAAY,EAAE,OAAuC;IACtF,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,CAAC,+CAA+C,CAAC,CAAA;QAC1D,OAAM;IACR,CAAC;IACD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,IAAI,CAAC;QACH,0DAA0D;QAC1D,+BAA+B;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;YAClC,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAChC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAC5C,IAAI,EAAE,mBAAmB,EAAE;YAC3B,8CAA8C;YAC9C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;YACrB,EAAE,EAAE;gBACF,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,aAAa;gBACzB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;oBACnB,WAAW,EAAE,CAAC,CAAC,4BAA4B,CAAC;oBAC5C,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC;oBAChC,SAAS,EAAE,CAAC,CAAC,0BAA0B,CAAC;iBACzC,CAAC;gBACF,KAAK,CAAC,OAAO,CAAC,OAAO;oBACnB,MAAM,UAAU,GAAG,MAAM,UAAU,CAAqB,OAAO,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;oBAC7H,IAAI,CAAC,UAAU,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;oBAC9D,MAAM,OAAO,GAAG,MAAM,UAAU,CAA0C,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;oBACnI,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;oBAC5C,gCAAgC;oBAChC,uBAAuB,CAAC,IAAI,CAAC,CAAA;oBAC7B,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;oBAC5B,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC9E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAiB,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE;wBACvE,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,SAAS,EAAE,MAAM,CAAC,EAAE;wBACpB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAA;oBACF,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAA;oBACrE,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC9F,CAAC;aACF;SACF,CAAC,EAAE,gCAAgC,CAAC,CAAA;QACrC,SAAS,CAAC,yBAAyB,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,SAAS,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1G,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,SAAS,gBAAgB,CAAC,GAAY,EAAE,SAAiB,EAAE,SAAiB,EAAE,YAAoB;IAChG,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACvC,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,SAAS,CAAC,GAAY,EAAE,SAAiB;IAChD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QACjC,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAY,EAAE,SAAiB,EAAE,KAAuB,EAAE,IAAY;IAC3F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,MAAM,OAAO,GAAG,WAAW,CAAmB,GAAG,EAAE,WAAW,CAAC,CAAA;IAC/D,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9F,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,MAAM,OAAO,GAAG,WAAW,CAAkB,GAAG,EAAE,UAAU,CAAC,CAAA;IAC7D,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3F,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,OAAO,GAAG,WAAW,CAAsB,GAAG,EAAE,cAAc,CAAC,CAAA;IACrE,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AAChG,CAAC;AAED,kDAAkD;AAClD,SAAS,WAAW,CAAI,GAAY,EAAE,IAAY;IAChD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"delegate-command.js","sourceRoot":"","sources":["../../../../src/client/delegate-command.ts"],"names":[],"mappings":"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"}