@deepseek-harness-tui/dsh-tui 0.11.2 → 0.13.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 (786) hide show
  1. package/README.md +60 -8
  2. package/assets/deepy/README.md +60 -0
  3. package/assets/deepy/frames.json +1 -0
  4. package/assets/whale-girl/whale-girl-happy.png +0 -0
  5. package/assets/whaleGirl/README.md +7 -0
  6. package/assets/whaleGirl/frames.json +1 -0
  7. package/assets/whaleGirl/img/building/00.png +0 -0
  8. package/assets/whaleGirl/img/building/01.png +0 -0
  9. package/assets/whaleGirl/img/building/02.png +0 -0
  10. package/assets/whaleGirl/img/building/03.png +0 -0
  11. package/assets/whaleGirl/img/building/04.png +0 -0
  12. package/assets/whaleGirl/img/building/05.png +0 -0
  13. package/assets/whaleGirl/img/building/06.png +0 -0
  14. package/assets/whaleGirl/img/building/07.png +0 -0
  15. package/assets/whaleGirl/img/building/08.png +0 -0
  16. package/assets/whaleGirl/img/building/09.png +0 -0
  17. package/assets/whaleGirl/img/building/10.png +0 -0
  18. package/assets/whaleGirl/img/building/11.png +0 -0
  19. package/assets/whaleGirl/img/building/12.png +0 -0
  20. package/assets/whaleGirl/img/building/13.png +0 -0
  21. package/assets/whaleGirl/img/building/14.png +0 -0
  22. package/assets/whaleGirl/img/building/15.png +0 -0
  23. package/assets/whaleGirl/img/building/16.png +0 -0
  24. package/assets/whaleGirl/img/building/17.png +0 -0
  25. package/assets/whaleGirl/img/building/18.png +0 -0
  26. package/assets/whaleGirl/img/building/19.png +0 -0
  27. package/assets/whaleGirl/img/building/20.png +0 -0
  28. package/assets/whaleGirl/img/building/21.png +0 -0
  29. package/assets/whaleGirl/img/building/22.png +0 -0
  30. package/assets/whaleGirl/img/building/23.png +0 -0
  31. package/assets/whaleGirl/img/carrying/00.png +0 -0
  32. package/assets/whaleGirl/img/carrying/01.png +0 -0
  33. package/assets/whaleGirl/img/carrying/02.png +0 -0
  34. package/assets/whaleGirl/img/carrying/03.png +0 -0
  35. package/assets/whaleGirl/img/carrying/04.png +0 -0
  36. package/assets/whaleGirl/img/carrying/05.png +0 -0
  37. package/assets/whaleGirl/img/carrying/06.png +0 -0
  38. package/assets/whaleGirl/img/carrying/07.png +0 -0
  39. package/assets/whaleGirl/img/compacting/00.png +0 -0
  40. package/assets/whaleGirl/img/compacting/01.png +0 -0
  41. package/assets/whaleGirl/img/compacting/02.png +0 -0
  42. package/assets/whaleGirl/img/compacting/03.png +0 -0
  43. package/assets/whaleGirl/img/compacting/04.png +0 -0
  44. package/assets/whaleGirl/img/compacting/05.png +0 -0
  45. package/assets/whaleGirl/img/compacting/06.png +0 -0
  46. package/assets/whaleGirl/img/compacting/07.png +0 -0
  47. package/assets/whaleGirl/img/compacting/08.png +0 -0
  48. package/assets/whaleGirl/img/compacting/09.png +0 -0
  49. package/assets/whaleGirl/img/conducting/00.png +0 -0
  50. package/assets/whaleGirl/img/conducting/01.png +0 -0
  51. package/assets/whaleGirl/img/conducting/02.png +0 -0
  52. package/assets/whaleGirl/img/conducting/03.png +0 -0
  53. package/assets/whaleGirl/img/conducting/04.png +0 -0
  54. package/assets/whaleGirl/img/conducting/05.png +0 -0
  55. package/assets/whaleGirl/img/conducting/06.png +0 -0
  56. package/assets/whaleGirl/img/conducting/07.png +0 -0
  57. package/assets/whaleGirl/img/conducting/08.png +0 -0
  58. package/assets/whaleGirl/img/conducting/09.png +0 -0
  59. package/assets/whaleGirl/img/conducting/10.png +0 -0
  60. package/assets/whaleGirl/img/conducting/11.png +0 -0
  61. package/assets/whaleGirl/img/drag/00.png +0 -0
  62. package/assets/whaleGirl/img/drag/01.png +0 -0
  63. package/assets/whaleGirl/img/drag/02.png +0 -0
  64. package/assets/whaleGirl/img/drag/03.png +0 -0
  65. package/assets/whaleGirl/img/drag/04.png +0 -0
  66. package/assets/whaleGirl/img/drag/05.png +0 -0
  67. package/assets/whaleGirl/img/drag/06.png +0 -0
  68. package/assets/whaleGirl/img/drag/07.png +0 -0
  69. package/assets/whaleGirl/img/drag/08.png +0 -0
  70. package/assets/whaleGirl/img/drag/09.png +0 -0
  71. package/assets/whaleGirl/img/error/00.png +0 -0
  72. package/assets/whaleGirl/img/error/01.png +0 -0
  73. package/assets/whaleGirl/img/error/02.png +0 -0
  74. package/assets/whaleGirl/img/error/03.png +0 -0
  75. package/assets/whaleGirl/img/error/04.png +0 -0
  76. package/assets/whaleGirl/img/error/05.png +0 -0
  77. package/assets/whaleGirl/img/error/06.png +0 -0
  78. package/assets/whaleGirl/img/error/07.png +0 -0
  79. package/assets/whaleGirl/img/error/08.png +0 -0
  80. package/assets/whaleGirl/img/error/09.png +0 -0
  81. package/assets/whaleGirl/img/happy/00.png +0 -0
  82. package/assets/whaleGirl/img/happy/01.png +0 -0
  83. package/assets/whaleGirl/img/happy/02.png +0 -0
  84. package/assets/whaleGirl/img/happy/03.png +0 -0
  85. package/assets/whaleGirl/img/happy/04.png +0 -0
  86. package/assets/whaleGirl/img/happy/05.png +0 -0
  87. package/assets/whaleGirl/img/happy/06.png +0 -0
  88. package/assets/whaleGirl/img/happy/07.png +0 -0
  89. package/assets/whaleGirl/img/happy/08.png +0 -0
  90. package/assets/whaleGirl/img/happy/09.png +0 -0
  91. package/assets/whaleGirl/img/happy/10.png +0 -0
  92. package/assets/whaleGirl/img/idle/00.png +0 -0
  93. package/assets/whaleGirl/img/idle/01.png +0 -0
  94. package/assets/whaleGirl/img/idle/02.png +0 -0
  95. package/assets/whaleGirl/img/idle/03.png +0 -0
  96. package/assets/whaleGirl/img/idle/04.png +0 -0
  97. package/assets/whaleGirl/img/idle/05.png +0 -0
  98. package/assets/whaleGirl/img/idle/06.png +0 -0
  99. package/assets/whaleGirl/img/idle/07.png +0 -0
  100. package/assets/whaleGirl/img/idle/08.png +0 -0
  101. package/assets/whaleGirl/img/idle/09.png +0 -0
  102. package/assets/whaleGirl/img/idle/10.png +0 -0
  103. package/assets/whaleGirl/img/idle/11.png +0 -0
  104. package/assets/whaleGirl/img/idle/12.png +0 -0
  105. package/assets/whaleGirl/img/idle/13.png +0 -0
  106. package/assets/whaleGirl/img/idle/14.png +0 -0
  107. package/assets/whaleGirl/img/idle/15.png +0 -0
  108. package/assets/whaleGirl/img/idle/16.png +0 -0
  109. package/assets/whaleGirl/img/idle/17.png +0 -0
  110. package/assets/whaleGirl/img/idle/18.png +0 -0
  111. package/assets/whaleGirl/img/idle/19.png +0 -0
  112. package/assets/whaleGirl/img/idle/20.png +0 -0
  113. package/assets/whaleGirl/img/idle-look/00.png +0 -0
  114. package/assets/whaleGirl/img/idle-look/01.png +0 -0
  115. package/assets/whaleGirl/img/idle-look/02.png +0 -0
  116. package/assets/whaleGirl/img/idle-look/03.png +0 -0
  117. package/assets/whaleGirl/img/idle-look/04.png +0 -0
  118. package/assets/whaleGirl/img/idle-look/05.png +0 -0
  119. package/assets/whaleGirl/img/idle-look/06.png +0 -0
  120. package/assets/whaleGirl/img/idle-look/07.png +0 -0
  121. package/assets/whaleGirl/img/idle-look/08.png +0 -0
  122. package/assets/whaleGirl/img/idle-look/09.png +0 -0
  123. package/assets/whaleGirl/img/idle-look/10.png +0 -0
  124. package/assets/whaleGirl/img/idle-look/11.png +0 -0
  125. package/assets/whaleGirl/img/idle-look/12.png +0 -0
  126. package/assets/whaleGirl/img/idle-spout/00.png +0 -0
  127. package/assets/whaleGirl/img/idle-spout/01.png +0 -0
  128. package/assets/whaleGirl/img/idle-spout/02.png +0 -0
  129. package/assets/whaleGirl/img/idle-spout/03.png +0 -0
  130. package/assets/whaleGirl/img/idle-spout/04.png +0 -0
  131. package/assets/whaleGirl/img/idle-spout/05.png +0 -0
  132. package/assets/whaleGirl/img/idle-spout/06.png +0 -0
  133. package/assets/whaleGirl/img/idle-spout/07.png +0 -0
  134. package/assets/whaleGirl/img/idle-spout/08.png +0 -0
  135. package/assets/whaleGirl/img/idle-spout/09.png +0 -0
  136. package/assets/whaleGirl/img/idle-spout/10.png +0 -0
  137. package/assets/whaleGirl/img/music/00.png +0 -0
  138. package/assets/whaleGirl/img/music/01.png +0 -0
  139. package/assets/whaleGirl/img/music/02.png +0 -0
  140. package/assets/whaleGirl/img/music/03.png +0 -0
  141. package/assets/whaleGirl/img/music/04.png +0 -0
  142. package/assets/whaleGirl/img/music/05.png +0 -0
  143. package/assets/whaleGirl/img/music/06.png +0 -0
  144. package/assets/whaleGirl/img/music/07.png +0 -0
  145. package/assets/whaleGirl/img/notification/00.png +0 -0
  146. package/assets/whaleGirl/img/notification/01.png +0 -0
  147. package/assets/whaleGirl/img/notification/02.png +0 -0
  148. package/assets/whaleGirl/img/notification/03.png +0 -0
  149. package/assets/whaleGirl/img/notification/04.png +0 -0
  150. package/assets/whaleGirl/img/notification/05.png +0 -0
  151. package/assets/whaleGirl/img/notification/06.png +0 -0
  152. package/assets/whaleGirl/img/notification/07.png +0 -0
  153. package/assets/whaleGirl/img/poke-left/00.png +0 -0
  154. package/assets/whaleGirl/img/poke-left/01.png +0 -0
  155. package/assets/whaleGirl/img/poke-left/02.png +0 -0
  156. package/assets/whaleGirl/img/poke-left/03.png +0 -0
  157. package/assets/whaleGirl/img/poke-left/04.png +0 -0
  158. package/assets/whaleGirl/img/poke-left/05.png +0 -0
  159. package/assets/whaleGirl/img/poke-left/06.png +0 -0
  160. package/assets/whaleGirl/img/poke-left/07.png +0 -0
  161. package/assets/whaleGirl/img/poke-left/08.png +0 -0
  162. package/assets/whaleGirl/img/poke-left/09.png +0 -0
  163. package/assets/whaleGirl/img/poke-left/10.png +0 -0
  164. package/assets/whaleGirl/img/poke-right/00.png +0 -0
  165. package/assets/whaleGirl/img/poke-right/01.png +0 -0
  166. package/assets/whaleGirl/img/poke-right/02.png +0 -0
  167. package/assets/whaleGirl/img/poke-right/03.png +0 -0
  168. package/assets/whaleGirl/img/poke-right/04.png +0 -0
  169. package/assets/whaleGirl/img/poke-right/05.png +0 -0
  170. package/assets/whaleGirl/img/poke-right/06.png +0 -0
  171. package/assets/whaleGirl/img/poke-right/07.png +0 -0
  172. package/assets/whaleGirl/img/poke-right/08.png +0 -0
  173. package/assets/whaleGirl/img/poke-right/09.png +0 -0
  174. package/assets/whaleGirl/img/poke-right/10.png +0 -0
  175. package/assets/whaleGirl/img/sleeping/00.png +0 -0
  176. package/assets/whaleGirl/img/sleeping/01.png +0 -0
  177. package/assets/whaleGirl/img/sleeping/02.png +0 -0
  178. package/assets/whaleGirl/img/sleeping/03.png +0 -0
  179. package/assets/whaleGirl/img/sleeping/04.png +0 -0
  180. package/assets/whaleGirl/img/sleeping/05.png +0 -0
  181. package/assets/whaleGirl/img/smile-hearts/00.png +0 -0
  182. package/assets/whaleGirl/img/smile-hearts/01.png +0 -0
  183. package/assets/whaleGirl/img/smile-hearts/02.png +0 -0
  184. package/assets/whaleGirl/img/smile-hearts/03.png +0 -0
  185. package/assets/whaleGirl/img/smile-hearts/04.png +0 -0
  186. package/assets/whaleGirl/img/smile-hearts/05.png +0 -0
  187. package/assets/whaleGirl/img/smile-hearts/06.png +0 -0
  188. package/assets/whaleGirl/img/smile-hearts/07.png +0 -0
  189. package/assets/whaleGirl/img/smile-hearts/08.png +0 -0
  190. package/assets/whaleGirl/img/smile-hearts/09.png +0 -0
  191. package/assets/whaleGirl/img/smile-hearts/10.png +0 -0
  192. package/assets/whaleGirl/img/smile-hearts/11.png +0 -0
  193. package/assets/whaleGirl/img/smile-hearts/12.png +0 -0
  194. package/assets/whaleGirl/img/smile-hearts/13.png +0 -0
  195. package/assets/whaleGirl/img/smile-hearts/14.png +0 -0
  196. package/assets/whaleGirl/img/smile-hearts/15.png +0 -0
  197. package/assets/whaleGirl/img/swim/00.png +0 -0
  198. package/assets/whaleGirl/img/swim/01.png +0 -0
  199. package/assets/whaleGirl/img/swim/02.png +0 -0
  200. package/assets/whaleGirl/img/swim/03.png +0 -0
  201. package/assets/whaleGirl/img/swim/04.png +0 -0
  202. package/assets/whaleGirl/img/swim/05.png +0 -0
  203. package/assets/whaleGirl/img/swim/06.png +0 -0
  204. package/assets/whaleGirl/img/swim/07.png +0 -0
  205. package/assets/whaleGirl/img/thinking/00.png +0 -0
  206. package/assets/whaleGirl/img/thinking/01.png +0 -0
  207. package/assets/whaleGirl/img/thinking/02.png +0 -0
  208. package/assets/whaleGirl/img/thinking/03.png +0 -0
  209. package/assets/whaleGirl/img/thinking/04.png +0 -0
  210. package/assets/whaleGirl/img/thinking/05.png +0 -0
  211. package/assets/whaleGirl/img/thinking/06.png +0 -0
  212. package/assets/whaleGirl/img/thinking/07.png +0 -0
  213. package/assets/whaleGirl/img/thinking/08.png +0 -0
  214. package/assets/whaleGirl/img/thinking/09.png +0 -0
  215. package/assets/whaleGirl/img/thinking/10.png +0 -0
  216. package/assets/whaleGirl/img/thinking/11.png +0 -0
  217. package/assets/whaleGirl/img/thinking/12.png +0 -0
  218. package/assets/whaleGirl/img/thinking/13.png +0 -0
  219. package/assets/whaleGirl/img/thinking/14.png +0 -0
  220. package/assets/whaleGirl/img/thinking/15.png +0 -0
  221. package/assets/whaleGirl/img/thinking/16.png +0 -0
  222. package/assets/whaleGirl/img/thumbs-up/00.png +0 -0
  223. package/assets/whaleGirl/img/thumbs-up/01.png +0 -0
  224. package/assets/whaleGirl/img/thumbs-up/02.png +0 -0
  225. package/assets/whaleGirl/img/thumbs-up/03.png +0 -0
  226. package/assets/whaleGirl/img/thumbs-up/04.png +0 -0
  227. package/assets/whaleGirl/img/thumbs-up/05.png +0 -0
  228. package/assets/whaleGirl/img/thumbs-up/06.png +0 -0
  229. package/assets/whaleGirl/img/thumbs-up/07.png +0 -0
  230. package/assets/whaleGirl/img/thumbs-up/08.png +0 -0
  231. package/assets/whaleGirl/img/thumbs-up/09.png +0 -0
  232. package/assets/whaleGirl/img/thumbs-up/10.png +0 -0
  233. package/assets/whaleGirl/img/thumbs-up/11.png +0 -0
  234. package/assets/whaleGirl/img/thumbs-up/12.png +0 -0
  235. package/assets/whaleGirl/img/tickle/00.png +0 -0
  236. package/assets/whaleGirl/img/tickle/01.png +0 -0
  237. package/assets/whaleGirl/img/tickle/02.png +0 -0
  238. package/assets/whaleGirl/img/tickle/03.png +0 -0
  239. package/assets/whaleGirl/img/tickle/04.png +0 -0
  240. package/assets/whaleGirl/img/tickle/05.png +0 -0
  241. package/assets/whaleGirl/img/tickle/06.png +0 -0
  242. package/assets/whaleGirl/img/tickle/07.png +0 -0
  243. package/assets/whaleGirl/img/tickle/08.png +0 -0
  244. package/assets/whaleGirl/img/tickle/09.png +0 -0
  245. package/assets/whaleGirl/img/tickle/10.png +0 -0
  246. package/assets/whaleGirl/img/tickle/11.png +0 -0
  247. package/assets/whaleGirl/img/tickle/12.png +0 -0
  248. package/assets/whaleGirl/img/tickle/13.png +0 -0
  249. package/assets/whaleGirl/img/timings.json +1 -0
  250. package/assets/whaleGirl/img/typing/00.png +0 -0
  251. package/assets/whaleGirl/img/typing/01.png +0 -0
  252. package/assets/whaleGirl/img/typing/02.png +0 -0
  253. package/assets/whaleGirl/img/typing/03.png +0 -0
  254. package/assets/whaleGirl/img/typing/04.png +0 -0
  255. package/assets/whaleGirl/img/typing/05.png +0 -0
  256. package/assets/whaleGirl/img/typing/06.png +0 -0
  257. package/assets/whaleGirl/img/typing/07.png +0 -0
  258. package/assets/whaleGirl/img/typing/08.png +0 -0
  259. package/assets/whaleGirl/img/typing/09.png +0 -0
  260. package/assets/whaleGirl/img/typing/10.png +0 -0
  261. package/assets/whaleGirl/img/typing/11.png +0 -0
  262. package/assets/whaleGirl/img/typing/12.png +0 -0
  263. package/assets/whaleGirl/img/typing/13.png +0 -0
  264. package/assets/whaleGirl/img/waking/00.png +0 -0
  265. package/assets/whaleGirl/img/waking/01.png +0 -0
  266. package/assets/whaleGirl/img/waking/02.png +0 -0
  267. package/assets/whaleGirl/img/waking/03.png +0 -0
  268. package/assets/whaleGirl/img/waking/04.png +0 -0
  269. package/assets/whaleGirl/img/waking/05.png +0 -0
  270. package/assets/whaleGirl/img/waking/06.png +0 -0
  271. package/assets/whaleGirl/img/waking/07.png +0 -0
  272. package/assets/whaleGirl/img/waking/08.png +0 -0
  273. package/assets/whaleGirl/img/waking/09.png +0 -0
  274. package/assets/whaleGirl/img/waking/10.png +0 -0
  275. package/bin/dsh-tui.js +38 -6
  276. package/cordis.patch.yml +31 -6
  277. package/guide/dsh-tui-guide/SKILL.md +37 -0
  278. package/guide/dsh-tui-guide/configuration.en.md +415 -0
  279. package/guide/dsh-tui-guide/configuration.md +354 -0
  280. package/guide/dsh-tui-guide/getting-started.en.md +401 -0
  281. package/guide/dsh-tui-guide/getting-started.md +399 -0
  282. package/guide/dsh-tui-guide/interaction.en.md +738 -0
  283. package/guide/dsh-tui-guide/interaction.md +793 -0
  284. package/guide/dsh-tui-guide/migrate.en.md +166 -0
  285. package/guide/dsh-tui-guide/migrate.md +132 -0
  286. package/guide/dsh-tui-guide/plugins.en.md +78 -0
  287. package/guide/dsh-tui-guide/plugins.md +64 -0
  288. package/guide/dsh-tui-guide/themes.en.md +197 -0
  289. package/guide/dsh-tui-guide/themes.md +188 -0
  290. package/guide/dsh-tui-guide/user-guide.en.md +711 -0
  291. package/guide/dsh-tui-guide/user-guide.md +666 -0
  292. package/guide/dsh-tui-guide/vscode.en.md +301 -0
  293. package/guide/dsh-tui-guide/vscode.md +272 -0
  294. package/lib/settings.json +219 -5
  295. package/lib/types/adapter/channel/ui-policy.d.ts +7 -2
  296. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  297. package/lib/types/adapter/channel/ui-policy.js +18 -1
  298. package/lib/types/adapter/index.d.ts +1 -1
  299. package/lib/types/adapter/index.js +1 -1
  300. package/lib/types/adapter/kernel/host-facade.d.ts +4 -1
  301. package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -1
  302. package/lib/types/adapter/kernel/host-facade.js +8 -1
  303. package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
  304. package/lib/types/adapter/kernel/runtime.js +13 -0
  305. package/lib/types/adapter/kernel/slices/index.d.ts +1 -0
  306. package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -1
  307. package/lib/types/adapter/kernel/slices/index.js +3 -0
  308. package/lib/types/adapter/kernel/slices/panels.d.ts +3 -0
  309. package/lib/types/adapter/kernel/slices/panels.d.ts.map +1 -0
  310. package/lib/types/adapter/kernel/slices/panels.js +14 -0
  311. package/lib/types/adapter/ports/channel-capabilities.d.ts +48 -0
  312. package/lib/types/adapter/ports/channel-capabilities.d.ts.map +1 -0
  313. package/lib/types/adapter/ports/channel-capabilities.js +2 -0
  314. package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
  315. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
  316. package/lib/types/adapter/ports/channel-display.d.ts +10 -0
  317. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  318. package/lib/types/adapter/ports/channel-settings.d.ts +2 -1
  319. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  320. package/lib/types/adapter/ports/channel-ui.d.ts +91 -4
  321. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  322. package/lib/types/adapter/ports/channel-view.d.ts +137 -9
  323. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  324. package/lib/types/adapter/ports/channel.d.ts +1 -1
  325. package/lib/types/adapter/ports/channel.js +1 -1
  326. package/lib/types/adapter/ports/descriptor.d.ts +1 -1
  327. package/lib/types/adapter/ports/descriptor.js +1 -1
  328. package/lib/types/adapter/ports/index.d.ts +1 -1
  329. package/lib/types/adapter/ports/index.js +1 -1
  330. package/lib/types/adapter/ports/panels.d.ts +28 -0
  331. package/lib/types/adapter/ports/panels.d.ts.map +1 -0
  332. package/lib/types/adapter/ports/panels.js +8 -0
  333. package/lib/types/adapter/ports/workspace.d.ts +1 -1
  334. package/lib/types/adapter/ports/workspace.js +1 -1
  335. package/lib/types/adapter/spec/index.d.ts +2 -2
  336. package/lib/types/adapter/spec/index.js +2 -2
  337. package/lib/types/adapter/spec/profile.d.ts +6 -6
  338. package/lib/types/adapter/spec/profile.d.ts.map +1 -1
  339. package/lib/types/adapter/spec/profile.js +6 -6
  340. package/lib/types/adapter/spec/protocol-constants.d.ts +3 -3
  341. package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
  342. package/lib/types/adapter/spec/protocol-constants.js +5 -5
  343. package/lib/types/adapter/spec/tui-contributions.d.ts +4 -4
  344. package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
  345. package/lib/types/adapter/spec/tui-contributions.js +5 -5
  346. package/lib/types/adapter/standard/descriptor.js +1 -1
  347. package/lib/types/adapter/standard/index.d.ts +3 -3
  348. package/lib/types/adapter/standard/index.js +3 -3
  349. package/lib/types/adapter/standard/registry.d.ts +3 -2
  350. package/lib/types/adapter/standard/registry.d.ts.map +1 -1
  351. package/lib/types/adapter/standard/registry.js +6 -5
  352. package/lib/types/adapter/standard/tui-extension.d.ts +1 -1
  353. package/lib/types/adapter/standard/tui-extension.js +1 -1
  354. package/lib/types/adapter/upstream/index.d.ts +1 -0
  355. package/lib/types/adapter/upstream/index.d.ts.map +1 -1
  356. package/lib/types/adapter/upstream/index.js +1 -0
  357. package/lib/types/adapter/upstream/panels-driver.d.ts +18 -0
  358. package/lib/types/adapter/upstream/panels-driver.d.ts.map +1 -0
  359. package/lib/types/adapter/upstream/panels-driver.js +159 -0
  360. package/lib/types/api.d.ts +2 -0
  361. package/lib/types/api.d.ts.map +1 -1
  362. package/lib/types/api.js +3 -1
  363. package/lib/types/commands.d.ts.map +1 -1
  364. package/lib/types/commands.js +12 -4
  365. package/lib/types/components/ActivityLine.d.ts +6 -9
  366. package/lib/types/components/ActivityLine.d.ts.map +1 -1
  367. package/lib/types/components/ActivityLine.js +7 -8
  368. package/lib/types/components/Chat/JobCard.d.ts +27 -1
  369. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  370. package/lib/types/components/Chat/JobCard.js +128 -33
  371. package/lib/types/components/Chat/JobGroupHeader.d.ts +27 -0
  372. package/lib/types/components/Chat/JobGroupHeader.d.ts.map +1 -0
  373. package/lib/types/components/Chat/JobGroupHeader.js +62 -0
  374. package/lib/types/components/Chat/SubagentMessage.js +6 -6
  375. package/lib/types/components/GoalTodoPanel.d.ts +13 -1
  376. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  377. package/lib/types/components/GoalTodoPanel.js +55 -14
  378. package/lib/types/components/JobsPanel.d.ts +42 -2
  379. package/lib/types/components/JobsPanel.d.ts.map +1 -1
  380. package/lib/types/components/JobsPanel.js +220 -40
  381. package/lib/types/components/LogoV2.d.ts +43 -3
  382. package/lib/types/components/LogoV2.d.ts.map +1 -1
  383. package/lib/types/components/LogoV2.js +42 -15
  384. package/lib/types/components/MessageList.d.ts +8 -2
  385. package/lib/types/components/MessageList.d.ts.map +1 -1
  386. package/lib/types/components/MessageList.js +215 -21
  387. package/lib/types/components/OverlayAbove.d.ts +11 -1
  388. package/lib/types/components/OverlayAbove.d.ts.map +1 -1
  389. package/lib/types/components/OverlayAbove.js +2 -12
  390. package/lib/types/components/PageMargin.d.ts.map +1 -1
  391. package/lib/types/components/PageMargin.js +3 -1
  392. package/lib/types/components/PluginSceneBoundary.d.ts +1 -1
  393. package/lib/types/components/PluginSceneBoundary.js +1 -1
  394. package/lib/types/components/PresetPicker.d.ts +4 -0
  395. package/lib/types/components/PresetPicker.d.ts.map +1 -1
  396. package/lib/types/components/PresetPicker.js +5 -1
  397. package/lib/types/components/PromptInput.d.ts +20 -22
  398. package/lib/types/components/PromptInput.d.ts.map +1 -1
  399. package/lib/types/components/PromptInput.js +425 -157
  400. package/lib/types/components/SearchBox.d.ts +22 -5
  401. package/lib/types/components/SearchBox.d.ts.map +1 -1
  402. package/lib/types/components/SearchBox.js +17 -13
  403. package/lib/types/components/StarPrompt.d.ts +6 -0
  404. package/lib/types/components/StarPrompt.d.ts.map +1 -1
  405. package/lib/types/components/StarPrompt.js +45 -0
  406. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  407. package/lib/types/components/SubagentCard.js +24 -9
  408. package/lib/types/components/SubagentDashboard.d.ts +18 -3
  409. package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
  410. package/lib/types/components/SubagentDashboard.js +53 -5
  411. package/lib/types/components/SubagentDetailScene.d.ts +7 -1
  412. package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
  413. package/lib/types/components/SubagentDetailScene.js +160 -13
  414. package/lib/types/components/SurfaceEdges.d.ts +21 -0
  415. package/lib/types/components/SurfaceEdges.d.ts.map +1 -0
  416. package/lib/types/components/SurfaceEdges.js +7 -0
  417. package/lib/types/components/ThemePicker.d.ts +9 -0
  418. package/lib/types/components/ThemePicker.d.ts.map +1 -1
  419. package/lib/types/components/ThemePicker.js +74 -10
  420. package/lib/types/components/ThemePreviewPane.d.ts +26 -0
  421. package/lib/types/components/ThemePreviewPane.d.ts.map +1 -0
  422. package/lib/types/components/ThemePreviewPane.js +99 -0
  423. package/lib/types/components/WhaleGirl.d.ts +6 -0
  424. package/lib/types/components/WhaleGirl.d.ts.map +1 -1
  425. package/lib/types/components/WhaleGirl.js +18 -0
  426. package/lib/types/components/design-system/Divider.d.ts.map +1 -1
  427. package/lib/types/components/design-system/Divider.js +14 -9
  428. package/lib/types/components/launchpadActions.d.ts +73 -0
  429. package/lib/types/components/launchpadActions.d.ts.map +1 -0
  430. package/lib/types/components/launchpadActions.js +111 -0
  431. package/lib/types/components/launchpadLayout.d.ts +62 -0
  432. package/lib/types/components/launchpadLayout.d.ts.map +1 -0
  433. package/lib/types/components/launchpadLayout.js +176 -0
  434. package/lib/types/components/messages/AssistantThinkingMessage.js +4 -4
  435. package/lib/types/components/onboardingModel.d.ts +83 -0
  436. package/lib/types/components/onboardingModel.d.ts.map +1 -0
  437. package/lib/types/components/onboardingModel.js +128 -0
  438. package/lib/types/components/sidePanel/InfoPanel.d.ts +17 -0
  439. package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -0
  440. package/lib/types/components/sidePanel/InfoPanel.js +124 -0
  441. package/lib/types/components/sidePanel/PanelBar.d.ts +45 -0
  442. package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -0
  443. package/lib/types/components/sidePanel/PanelBar.js +104 -0
  444. package/lib/types/components/sidePanel/PanelErrorBoundary.d.ts +21 -0
  445. package/lib/types/components/sidePanel/PanelErrorBoundary.d.ts.map +1 -0
  446. package/lib/types/components/sidePanel/PanelErrorBoundary.js +30 -0
  447. package/lib/types/components/sidePanel/PanelHost.d.ts +36 -0
  448. package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -0
  449. package/lib/types/components/sidePanel/PanelHost.js +81 -0
  450. package/lib/types/components/sidePanel/PanelPicker.d.ts +24 -0
  451. package/lib/types/components/sidePanel/PanelPicker.d.ts.map +1 -0
  452. package/lib/types/components/sidePanel/PanelPicker.js +45 -0
  453. package/lib/types/components/sidePanel/PanelStore.d.ts +55 -0
  454. package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -0
  455. package/lib/types/components/sidePanel/PanelStore.js +109 -0
  456. package/lib/types/components/sidePanel/SidePanelColumn.d.ts +31 -0
  457. package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -0
  458. package/lib/types/components/sidePanel/SidePanelColumn.js +70 -0
  459. package/lib/types/components/sidePanel/SidePanelLayout.d.ts +54 -0
  460. package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -0
  461. package/lib/types/components/sidePanel/SidePanelLayout.js +81 -0
  462. package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +43 -0
  463. package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -0
  464. package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +26 -0
  465. package/lib/types/components/sidePanel/TrajectoryPanel.d.ts +7 -0
  466. package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -0
  467. package/lib/types/components/sidePanel/TrajectoryPanel.js +263 -0
  468. package/lib/types/components/sidePanel/WorkspacePanel.d.ts +4 -0
  469. package/lib/types/components/sidePanel/WorkspacePanel.d.ts.map +1 -0
  470. package/lib/types/components/sidePanel/WorkspacePanel.js +171 -0
  471. package/lib/types/components/sidePanel/builtinPanels.d.ts +3 -0
  472. package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -0
  473. package/lib/types/components/sidePanel/builtinPanels.js +229 -0
  474. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +53 -0
  475. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -0
  476. package/lib/types/components/sidePanel/companion/CompanionPanel.js +528 -0
  477. package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +32 -0
  478. package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -0
  479. package/lib/types/components/sidePanel/companion/SplashMascot.js +103 -0
  480. package/lib/types/components/sidePanel/companion/deepy.d.ts +75 -0
  481. package/lib/types/components/sidePanel/companion/deepy.d.ts.map +1 -0
  482. package/lib/types/components/sidePanel/companion/deepy.js +222 -0
  483. package/lib/types/components/sidePanel/companion/mood.d.ts +176 -0
  484. package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -0
  485. package/lib/types/components/sidePanel/companion/mood.js +212 -0
  486. package/lib/types/components/sidePanel/companion/pose.d.ts +43 -0
  487. package/lib/types/components/sidePanel/companion/pose.d.ts.map +1 -0
  488. package/lib/types/components/sidePanel/companion/pose.js +34 -0
  489. package/lib/types/components/sidePanel/companion/skins.d.ts +102 -0
  490. package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -0
  491. package/lib/types/components/sidePanel/companion/skins.js +408 -0
  492. package/lib/types/components/sidePanel/dimensions.d.ts +60 -0
  493. package/lib/types/components/sidePanel/dimensions.d.ts.map +1 -0
  494. package/lib/types/components/sidePanel/dimensions.js +75 -0
  495. package/lib/types/components/sidePanel/jobsFocusStore.d.ts +21 -0
  496. package/lib/types/components/sidePanel/jobsFocusStore.d.ts.map +1 -0
  497. package/lib/types/components/sidePanel/jobsFocusStore.js +30 -0
  498. package/lib/types/components/sidePanel/panelBridge.d.ts +44 -0
  499. package/lib/types/components/sidePanel/panelBridge.d.ts.map +1 -0
  500. package/lib/types/components/sidePanel/panelBridge.js +55 -0
  501. package/lib/types/components/sidePanel/pluginPanelAdapter.d.ts +22 -0
  502. package/lib/types/components/sidePanel/pluginPanelAdapter.d.ts.map +1 -0
  503. package/lib/types/components/sidePanel/pluginPanelAdapter.js +148 -0
  504. package/lib/types/components/sidePanel/types.d.ts +110 -0
  505. package/lib/types/components/sidePanel/types.d.ts.map +1 -0
  506. package/lib/types/components/sidePanel/types.js +1 -0
  507. package/lib/types/components/sidePanel/usePanelInput.d.ts +5 -0
  508. package/lib/types/components/sidePanel/usePanelInput.d.ts.map +1 -0
  509. package/lib/types/components/sidePanel/usePanelInput.js +44 -0
  510. package/lib/types/components/sidePanel/useSidePanel.d.ts +47 -0
  511. package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -0
  512. package/lib/types/components/sidePanel/useSidePanel.js +284 -0
  513. package/lib/types/components/trajectory/MiniWake.d.ts +11 -1
  514. package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -1
  515. package/lib/types/components/trajectory/MiniWake.js +9 -3
  516. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
  517. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
  518. package/lib/types/components/workspaces/HomeWorkspaceRow.js +3 -2
  519. package/lib/types/deepseekPricing.d.ts +10 -9
  520. package/lib/types/deepseekPricing.d.ts.map +1 -1
  521. package/lib/types/deepseekPricing.js +18 -11
  522. package/lib/types/dsh-adapter/channel/attached-context.d.ts +58 -0
  523. package/lib/types/dsh-adapter/channel/attached-context.d.ts.map +1 -0
  524. package/lib/types/dsh-adapter/channel/attached-context.js +109 -0
  525. package/lib/types/dsh-adapter/channel/binding-events.d.ts +6 -0
  526. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  527. package/lib/types/dsh-adapter/channel/binding-events.js +43 -0
  528. package/lib/types/dsh-adapter/channel/capabilities.d.ts +82 -0
  529. package/lib/types/dsh-adapter/channel/capabilities.d.ts.map +1 -0
  530. package/lib/types/dsh-adapter/channel/capabilities.js +165 -0
  531. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
  532. package/lib/types/dsh-adapter/channel/command-completions.js +8 -0
  533. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +4 -12
  534. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -1
  535. package/lib/types/dsh-adapter/channel/context-bookkeeping.js +9 -4
  536. package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -1
  537. package/lib/types/dsh-adapter/channel/external-commands.js +8 -2
  538. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +13 -2
  539. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
  540. package/lib/types/dsh-adapter/channel/input-delivery.js +18 -1
  541. package/lib/types/dsh-adapter/channel/job-projection.d.ts +1 -0
  542. package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
  543. package/lib/types/dsh-adapter/channel/job-projection.js +88 -3
  544. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +13 -3
  545. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
  546. package/lib/types/dsh-adapter/channel/mode-actions.js +55 -9
  547. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +8 -1
  548. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  549. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +25 -10
  550. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  551. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  552. package/lib/types/dsh-adapter/channel/preferences.js +26 -8
  553. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  554. package/lib/types/dsh-adapter/channel/projection.js +42 -37
  555. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
  556. package/lib/types/dsh-adapter/channel/reports.js +13 -4
  557. package/lib/types/dsh-adapter/channel/session-reset.d.ts +5 -1
  558. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  559. package/lib/types/dsh-adapter/channel/session-reset.js +1 -0
  560. package/lib/types/dsh-adapter/channel/state.d.ts +21 -3
  561. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  562. package/lib/types/dsh-adapter/channel/state.js +3 -2
  563. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  564. package/lib/types/dsh-adapter/channel/subagent-projection.js +5 -0
  565. package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
  566. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  567. package/lib/types/dsh-adapter/channel/usage.d.ts +18 -1
  568. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
  569. package/lib/types/dsh-adapter/channel/usage.js +97 -2
  570. package/lib/types/dsh-adapter/channel.d.ts +1 -1
  571. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  572. package/lib/types/dsh-adapter/channel.js +72 -4
  573. package/lib/types/dsh-adapter/context-occupancy.d.ts +204 -0
  574. package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -0
  575. package/lib/types/dsh-adapter/context-occupancy.js +299 -0
  576. package/lib/types/dsh-adapter/contract.d.ts +19 -4
  577. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  578. package/lib/types/dsh-adapter/contract.js +33 -3
  579. package/lib/types/dsh-adapter/index.d.ts +32 -0
  580. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  581. package/lib/types/dsh-adapter/index.js +20 -1
  582. package/lib/types/dsh-adapter/jobs.d.ts +82 -16
  583. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  584. package/lib/types/dsh-adapter/jobs.js +104 -9
  585. package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -1
  586. package/lib/types/dsh-adapter/migrate/sessionize.js +11 -12
  587. package/lib/types/dsh-adapter/oauth/bonus.d.ts +27 -0
  588. package/lib/types/dsh-adapter/oauth/bonus.d.ts.map +1 -0
  589. package/lib/types/dsh-adapter/oauth/bonus.js +69 -0
  590. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.d.ts +2 -1
  591. package/lib/types/dsh-adapter/oauth/command.d.ts.map +1 -0
  592. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.js +7 -4
  593. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.d.ts +13 -10
  594. package/lib/types/dsh-adapter/oauth/credentials.d.ts.map +1 -0
  595. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.js +61 -23
  596. package/lib/types/dsh-adapter/oauth/deepseek.d.ts +39 -0
  597. package/lib/types/dsh-adapter/oauth/deepseek.d.ts.map +1 -0
  598. package/lib/types/dsh-adapter/oauth/deepseek.js +189 -0
  599. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.d.ts +24 -16
  600. package/lib/types/dsh-adapter/oauth/index.d.ts.map +1 -0
  601. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.js +34 -20
  602. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/interaction.d.ts +14 -12
  603. package/lib/types/dsh-adapter/oauth/interaction.d.ts.map +1 -0
  604. package/lib/types/dsh-adapter/oauth/interaction.js +283 -0
  605. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.d.ts +2 -1
  606. package/lib/types/dsh-adapter/oauth/opener.d.ts.map +1 -0
  607. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.js +1 -1
  608. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.d.ts +10 -3
  609. package/lib/types/dsh-adapter/oauth/pi-ai.d.ts.map +1 -0
  610. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.js +8 -3
  611. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.d.ts +6 -3
  612. package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -0
  613. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.js +11 -3
  614. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.d.ts +14 -7
  615. package/lib/types/dsh-adapter/oauth/service.d.ts.map +1 -0
  616. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.js +82 -17
  617. package/lib/types/dsh-adapter/panel-runtime-registry.d.ts +39 -0
  618. package/lib/types/dsh-adapter/panel-runtime-registry.d.ts.map +1 -0
  619. package/lib/types/dsh-adapter/panel-runtime-registry.js +84 -0
  620. package/lib/types/dsh-adapter/panels.d.ts +251 -0
  621. package/lib/types/dsh-adapter/panels.d.ts.map +1 -0
  622. package/lib/types/dsh-adapter/panels.js +407 -0
  623. package/lib/types/dsh-adapter/plugin-host.js +1 -1
  624. package/lib/types/dsh-adapter/plugin.d.ts +25 -2
  625. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  626. package/lib/types/dsh-adapter/plugin.js +241 -44
  627. package/lib/types/dsh-adapter/presets.d.ts +26 -4
  628. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  629. package/lib/types/dsh-adapter/presets.js +29 -5
  630. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  631. package/lib/types/dsh-adapter/providerWizard.js +6 -2
  632. package/lib/types/dsh-adapter/startup-args.d.ts +8 -0
  633. package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -0
  634. package/lib/types/dsh-adapter/startup-args.js +34 -0
  635. package/lib/types/dsh-adapter/subagents.d.ts +1 -0
  636. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  637. package/lib/types/dsh-adapter/subagents.js +10 -1
  638. package/lib/types/history.d.ts +24 -7
  639. package/lib/types/history.d.ts.map +1 -1
  640. package/lib/types/history.js +77 -18
  641. package/lib/types/i18n.d.ts +908 -33
  642. package/lib/types/i18n.d.ts.map +1 -1
  643. package/lib/types/i18n.js +355 -17
  644. package/lib/types/ink/components/App.d.ts +14 -1
  645. package/lib/types/ink/components/App.d.ts.map +1 -1
  646. package/lib/types/ink/components/App.js +71 -61
  647. package/lib/types/ink/components/TerminalSizeContext.d.ts +7 -0
  648. package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -1
  649. package/lib/types/ink/hooks/use-input.d.ts +11 -0
  650. package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
  651. package/lib/types/ink/hooks/use-input.js +8 -2
  652. package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -1
  653. package/lib/types/ink/hooks/use-terminal-viewport.js +3 -1
  654. package/lib/types/ink/ink.d.ts +18 -0
  655. package/lib/types/ink/ink.d.ts.map +1 -1
  656. package/lib/types/ink/ink.js +51 -8
  657. package/lib/types/ink/output.d.ts +10 -1
  658. package/lib/types/ink/output.d.ts.map +1 -1
  659. package/lib/types/ink/output.js +3 -3
  660. package/lib/types/ink/parse-keypress.d.ts +71 -3
  661. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  662. package/lib/types/ink/parse-keypress.js +815 -133
  663. package/lib/types/ink/render-node-to-output.d.ts +1 -1
  664. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  665. package/lib/types/ink/render-node-to-output.js +37 -5
  666. package/lib/types/ink/screen.d.ts +26 -1
  667. package/lib/types/ink/screen.d.ts.map +1 -1
  668. package/lib/types/ink/screen.js +96 -1
  669. package/lib/types/ink/selection.d.ts +23 -1
  670. package/lib/types/ink/selection.d.ts.map +1 -1
  671. package/lib/types/ink/selection.js +102 -26
  672. package/lib/types/ink/sixel-codec.d.ts +11 -0
  673. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  674. package/lib/types/ink/sixel-codec.js +42 -8
  675. package/lib/types/ink/terminal-querier.d.ts +25 -0
  676. package/lib/types/ink/terminal-querier.d.ts.map +1 -1
  677. package/lib/types/ink/terminal-querier.js +42 -0
  678. package/lib/types/ink/update-overflow-guard.d.ts +24 -0
  679. package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
  680. package/lib/types/ink/update-overflow-guard.js +25 -3
  681. package/lib/types/math/renderer.d.ts +2 -0
  682. package/lib/types/math/renderer.d.ts.map +1 -1
  683. package/lib/types/math/renderer.js +4 -0
  684. package/lib/types/minimalUiMode.d.ts +19 -0
  685. package/lib/types/minimalUiMode.d.ts.map +1 -0
  686. package/lib/types/minimalUiMode.js +23 -0
  687. package/lib/types/oauth.d.ts +5 -10
  688. package/lib/types/oauth.d.ts.map +1 -1
  689. package/lib/types/oauth.js +5 -10
  690. package/lib/types/onboardingPrefs.d.ts +52 -0
  691. package/lib/types/onboardingPrefs.d.ts.map +1 -0
  692. package/lib/types/onboardingPrefs.js +107 -0
  693. package/lib/types/panels.d.ts +4 -0
  694. package/lib/types/panels.d.ts.map +1 -0
  695. package/lib/types/panels.js +4 -0
  696. package/lib/types/screens/Chat.d.ts +25 -1
  697. package/lib/types/screens/Chat.d.ts.map +1 -1
  698. package/lib/types/screens/Chat.js +1149 -302
  699. package/lib/types/screens/Launchpad.d.ts +194 -0
  700. package/lib/types/screens/Launchpad.d.ts.map +1 -0
  701. package/lib/types/screens/Launchpad.js +607 -0
  702. package/lib/types/screens/Onboarding.d.ts +37 -0
  703. package/lib/types/screens/Onboarding.d.ts.map +1 -0
  704. package/lib/types/screens/Onboarding.js +492 -0
  705. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  706. package/lib/types/screens/SessionSupervisor.js +18 -12
  707. package/lib/types/screens/StatusLine.d.ts +4 -0
  708. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  709. package/lib/types/screens/StatusLine.js +43 -25
  710. package/lib/types/screens/StatusMetrics.d.ts +22 -0
  711. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  712. package/lib/types/screens/StatusMetrics.js +20 -0
  713. package/lib/types/screens/chatOverlay.d.ts +18 -1
  714. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  715. package/lib/types/screens/chatOverlay.js +3 -0
  716. package/lib/types/screens/sessionSupervisor/model.d.ts +1 -2
  717. package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
  718. package/lib/types/screens/sessionSupervisor/model.js +4 -2
  719. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  720. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +7 -3
  721. package/lib/types/settings/definitions.d.ts +93 -0
  722. package/lib/types/settings/definitions.d.ts.map +1 -1
  723. package/lib/types/settings/definitions.js +87 -4
  724. package/lib/types/tips.d.ts.map +1 -1
  725. package/lib/types/tips.js +13 -7
  726. package/lib/types/tuiDisplayPrefs.d.ts +42 -2
  727. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  728. package/lib/types/tuiDisplayPrefs.js +74 -0
  729. package/lib/types/update.d.ts +53 -9
  730. package/lib/types/update.d.ts.map +1 -1
  731. package/lib/types/update.js +103 -46
  732. package/lib/types/utils/bmp.d.ts.map +1 -1
  733. package/lib/types/utils/bmp.js +8 -1
  734. package/lib/types/utils/clipboard.d.ts.map +1 -1
  735. package/lib/types/utils/clipboard.js +25 -6
  736. package/lib/types/utils/credentials.d.ts.map +1 -1
  737. package/lib/types/utils/credentials.js +5 -1
  738. package/lib/types/utils/draftWordBoundary.d.ts +23 -0
  739. package/lib/types/utils/draftWordBoundary.d.ts.map +1 -0
  740. package/lib/types/utils/draftWordBoundary.js +161 -0
  741. package/lib/types/utils/fileTarget.d.ts.map +1 -1
  742. package/lib/types/utils/fileTarget.js +7 -9
  743. package/lib/types/utils/inputPaste.d.ts +62 -0
  744. package/lib/types/utils/inputPaste.d.ts.map +1 -0
  745. package/lib/types/utils/inputPaste.js +111 -0
  746. package/lib/types/utils/intl.d.ts +8 -0
  747. package/lib/types/utils/intl.d.ts.map +1 -1
  748. package/lib/types/utils/intl.js +11 -0
  749. package/lib/types/utils/keymap.d.ts +13 -3
  750. package/lib/types/utils/keymap.d.ts.map +1 -1
  751. package/lib/types/utils/keymap.js +27 -5
  752. package/lib/types/utils/pastedImagePath.d.ts +8 -0
  753. package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
  754. package/lib/types/utils/pastedImagePath.js +29 -5
  755. package/package.json +128 -106
  756. package/presets/liangshen/agent.cordis.yml +4 -1
  757. package/presets/liangshen/preset.yml +1 -1
  758. package/{dsh-ecosystem-spec → tui-profile}/registry/README.md +1 -1
  759. package/{dsh-ecosystem-spec → tui-profile}/registry/registry-0.15.json +1 -1
  760. package/lib/types/minimalMode.d.ts +0 -13
  761. package/lib/types/minimalMode.d.ts.map +0 -1
  762. package/lib/types/minimalMode.js +0 -17
  763. package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +0 -21
  764. package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +0 -143
  765. package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +0 -11
  766. package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +0 -44
  767. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +0 -193
  768. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +0 -69
  769. /package/{dsh-ecosystem-spec → tui-profile}/protocols/profile-definitions.d.ts +0 -0
  770. /package/{dsh-ecosystem-spec → tui-profile}/protocols/profile-definitions.js +0 -0
  771. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel-http.d.ts +0 -0
  772. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel-http.js +0 -0
  773. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel.d.ts +0 -0
  774. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel.js +0 -0
  775. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-contributions.d.ts +0 -0
  776. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-contributions.js +0 -0
  777. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/decision-events-v1alpha1.json +0 -0
  778. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/scene-v1alpha1.json +0 -0
  779. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/settings-section-v1alpha1.json +0 -0
  780. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/tui-channel-v1alpha1.json +0 -0
  781. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/workspace-provider-v1alpha1.json +0 -0
  782. /package/{dsh-ecosystem-spec → tui-profile}/registry/host-descriptor.tui.example.json +0 -0
  783. /package/{dsh-ecosystem-spec → tui-profile}/registry/permissions-0.1.json +0 -0
  784. /package/{dsh-ecosystem-spec → tui-profile}/schemas/conformance-claim.schema.json +0 -0
  785. /package/{dsh-ecosystem-spec → tui-profile}/schemas/effect-ledger-record.schema.json +0 -0
  786. /package/{dsh-ecosystem-spec → tui-profile}/schemas/host-descriptor.schema.json +0 -0
@@ -0,0 +1,301 @@
1
+ # Using dsh-TUI in VS Code
2
+
3
+ [Documentation index](README.md) · [中文](vscode.md)
4
+
5
+ dsh-TUI is a terminal program: it writes ANSI into a PTY and reads keys
6
+ back from the PTY. So any compatible terminal can host it — including the
7
+ **VS Code integrated terminal** (xterm.js). This page covers two ways to
8
+ use it:
9
+
10
+ **The `dsh-tui-vscode` companion extension (recommended)**
11
+
12
+ - sessions run in a real VS Code integrated terminal (a new column beside
13
+ the editor);
14
+ - multiple concurrent sessions, a sidebar session history, one-click start;
15
+ - resume-last and specific-session resume;
16
+ - published on the VS Code Marketplace.
17
+
18
+ **Run directly in the built-in terminal**
19
+
20
+ - zero install, seconds to start;
21
+ - for when you do not want the extension.
22
+
23
+ > Version note: `dsh-tui` here means this repository (the TUI plugin);
24
+ > `dsh-tui-vscode` means the companion extension; the two are versioned
25
+ > and released independently. Full docs:
26
+ > [baobaolaodie/dsh-tui-vscode](https://github.com/baobaolaodie/dsh-tui-vscode)
27
+ >
28
+ > **The selection channel requires an extension that speaks protocol v2**
29
+ > (**dsh-tui-vscode >= 0.7.0**); with an older extension the feature stays
30
+ > silently disabled and everything else is unaffected.
31
+
32
+ ## Option 1: the dsh-tui-vscode companion extension (recommended)
33
+
34
+ [`baobaolaodie/dsh-tui-vscode`](https://github.com/baobaolaodie/dsh-tui-vscode)
35
+ runs dsh-tui inside a real VS Code integrated terminal (`createTerminal`
36
+ plus the CLI running inside it), with no webview and no xterm emulation.
37
+ It does not touch the TUI's rendering core — it only **hosts** it and adds
38
+ editor integration.
39
+
40
+ ### Extension features
41
+
42
+ - Editor-title button, activity-bar whale icon, and command-palette entries;
43
+ - a `DeepSeek` integrated terminal in a column beside the editor;
44
+ - one independent terminal and process per session, with existing sessions
45
+ continuing in their own terminals;
46
+ - a sidebar session history grouped by project, with refresh and
47
+ specific-session resume;
48
+ - environment injection for `DSH_TUI_LANG`, `$VISUAL`, `$DSH_HOME`, and a
49
+ target session id;
50
+ - per-session termination when its terminal closes, or when `Ctrl+C` is
51
+ pressed twice inside the TUI.
52
+
53
+ | Capability | Official Claude Code extension | dsh-tui-vscode |
54
+ | --- | --- | --- |
55
+ | Entry points | Activity-bar icon + editor-title button + command palette | Same (DeepSeek whale icon) |
56
+ | Session position | NEW column beside the active one (`ViewColumn.Beside`) | Same — never takes the current column |
57
+ | Terminal tab | `Claude Code` + logo icon | `DeepSeek` + whale icon |
58
+ | Session host | Real integrated terminal (default shell — PowerShell on Windows) | Same |
59
+ | Multiple sessions | Every click opens a new session terminal | Same; old sessions keep running |
60
+ | Sidebar | Sessions list | Session history (grouped by project — stronger) |
61
+ | Auto start/stop | Open = start; closing the terminal = end | Same |
62
+ | Env injection | — | `DSH_TUI_LANG` / `$VISUAL` / `$DSH_HOME` / session id / `DSH_TUI_IDE_PORT/TOKEN` (selection channel) |
63
+ | Editor selection sync | Selection enters context automatically; `⧉ N lines selected` under the prompt | Same (IDE selection channel, below) |
64
+
65
+ ### IDE selection channel
66
+
67
+ With a dsh-tui build that includes the IDE selection channel, the extension
68
+ runs a loopback WebSocket server and writes a lock file (directory 0700,
69
+ file 0600).
70
+
71
+ - Extension-launched sessions connect via injected env vars at startup;
72
+ - manually launched sessions discover it by scanning the lock — only windows
73
+ whose workspace covers the session directory are ever dialed. With no
74
+ match the integration stays silently disabled and a foreign project is
75
+ never connected.
76
+
77
+ Afterwards:
78
+
79
+ - Selecting code in the editor instantly shows a `⧉ N lines selected` badge
80
+ under the TUI prompt (it disappears when the selection clears);
81
+ - Submitting a message attaches only the selected lines to the model
82
+ context, with a `⧉ Selected N lines from <relative path>` indicator above
83
+ the user bubble (resuming after a restart still rebuilds that indicator);
84
+ - Selection pushes carry the editor buffer's OWN text — unsaved edits are
85
+ attached exactly as you see them on screen; oversized selections are
86
+ capped and marked with the same policy as @-mentions;
87
+ - Without an IDE or on disconnect everything degrades silently with zero
88
+ impact on the rest of the TUI.
89
+
90
+ ![IDE selection channel: live footer badge and transcript indicator](../screenshots/ide-selection-badge.png)
91
+
92
+ **Protocol & versions**:
93
+
94
+ - After connecting, the TUI sends `ide/hello` (token + protocolVersion);
95
+ - the extension answers `ide/hello_ack` (protocolVersion + workspaceFolders)
96
+ only when the token validates — the link counts as established only after
97
+ a valid v2 ack; a wrong token is silently dropped;
98
+ - `selection_changed` then carries absolute 0-based inclusive line numbers
99
+ plus the editor buffer's own selection text;
100
+ - lock discovery only ever dials windows whose workspace covers the session
101
+ directory and stays silently disabled without a match;
102
+ - both ends of the protocol must ship at the same version.
103
+
104
+ ### Prerequisites
105
+
106
+ - VS Code >= 1.90;
107
+ - Global `dsh` CLI and `dsh-tui` (**dsh-tui 0.7.0+ recommended**, see
108
+ [Getting started](getting-started.en.md)):
109
+
110
+ ```sh
111
+ npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
112
+ ```
113
+
114
+ - `DEEPSEEK_API_KEY` for running models (in the terminal environment or the
115
+ dsh configuration).
116
+
117
+ ### Install
118
+
119
+ **From the VS Code extension panel (recommended)**: press `Ctrl+Shift+X`,
120
+ search for **`dsh-tui`** and install with one click (publisher
121
+ `baobaolaodie`), or open the
122
+ [Marketplace page](https://marketplace.visualstudio.com/items?itemName=baobaolaodie.dsh-tui-vscode)
123
+ directly.
124
+
125
+ Or build from source:
126
+
127
+ ```sh
128
+ git clone https://github.com/baobaolaodie/dsh-tui-vscode.git
129
+ cd dsh-tui-vscode
130
+ npm install
131
+ npm run package && code --install-extension dsh-tui-vscode-<version>.vsix --force
132
+ # or: npm run install:local
133
+ ```
134
+
135
+ ### Quick start
136
+
137
+ 1. Click the **editor-title whale button** (or the command-palette entry
138
+ `dsh-tui: Start new session / 启动新会话`) — a **DeepSeek** terminal
139
+ opens on the Beside column and runs dsh-tui automatically.
140
+ 2. The **activity-bar whale icon** opens the sidebar session history; its
141
+ welcome view offers start/resume buttons.
142
+ 3. Click again = **another concurrent session**; older sessions keep
143
+ running in their own terminals.
144
+ 4. **Resume the last session**: `dsh-tui: Resume last session / 恢复上次会话`.
145
+ 5. **Resume a specific session**: expand a project group in the sidebar
146
+ "会话历史" and click the session entry.
147
+ 6. **Terminate**: close the terminal tab (ends only that session), or
148
+ double `Ctrl+C` inside the TUI; the command
149
+ `dsh-tui: Terminate session / 终止会话` sends Ctrl+C to the most recent
150
+ terminal.
151
+
152
+ While sessions are running, a **status-bar** item (`dsh-tui`, bottom-left)
153
+ appears; clicking it starts a new session (`dsh-tui-vscode.open`).
154
+
155
+ ### Command reference
156
+
157
+ | Command ID | Title | Action |
158
+ | --- | --- | --- |
159
+ | `dsh-tui-vscode.open` | Open panel / 打开会话面板 | Start a new session (the editor-title button uses this entry point too) |
160
+ | `dsh-tui-vscode.start` | Start new session / 启动新会话 | Start a new session |
161
+ | `dsh-tui-vscode.resume` | Resume last session / 恢复上次会话 | Resume via `--resume` |
162
+ | `dsh-tui-vscode.focus` | Focus session panel / 聚焦会话面板 | Focus the most recent terminal, else start one |
163
+ | `dsh-tui-vscode.kill` | Terminate session / 终止会话 | Send Ctrl+C to the most recent terminal |
164
+ | `dsh-tui-vscode.refreshSessions` | Refresh sessions / 刷新会话列表 | Manually refresh the sidebar |
165
+ | `dsh-tui-vscode.resumeSession` | Resume session / 恢复会话 | Resume a specific session (sidebar click) |
166
+ | `dsh-tui-vscode.insertAtMention` | Insert @-mention / 插入 @文件引用 | With editor focus press `Ctrl+Alt+K` (macOS `Cmd+Alt+K`) or the editor context menu: inserts the current file / selection as `@absolute/path Lstart-end` into the dsh-tui input box (the absolute path is independent of the dsh-tui session cwd; whole file when nothing is selected; falls back to the clipboard with no running session) |
167
+
168
+ ### Architecture
169
+
170
+ - The extension runs a loopback WebSocket server and writes a lock file
171
+ (directory 0700, file 0600).
172
+ - Extension-launched sessions connect via injected env vars at startup.
173
+ - Manually launched sessions (e.g. tmux / SSH) discover it by scanning the
174
+ lock — only windows whose workspace covers the session directory are ever
175
+ dialed; with no match it stays silently disabled and a foreign project is
176
+ never connected.
177
+ - The connection speaks protocol v2: the TUI sends `ide/hello`, the
178
+ extension answers `ide/hello_ack`, then `selection_changed` pushes
179
+ selections.
180
+ - Without an IDE or on disconnect, everything degrades silently with zero
181
+ impact on the rest of the TUI.
182
+
183
+ ### Configuration
184
+
185
+ | Key | Default | Description |
186
+ | --- | --- | --- |
187
+ | `dsh-tui-vscode.command` | `dsh-tui` | Launch command (resolved to an absolute path against the host PATH) |
188
+ | `dsh-tui-vscode.extraArgs` | `[]` | Extra CLI args, e.g. `["--lang","en"]` |
189
+ | `dsh-tui-vscode.lang` | `""` | `""`/`zh`/`en`, exported as `DSH_TUI_LANG` |
190
+ | `dsh-tui-vscode.injectEditor` | `true` | Export `$VISUAL` when unset |
191
+ | `dsh-tui-vscode.editorCommand` | `code -w` | Value exported as `$VISUAL` |
192
+ | `dsh-tui-vscode.dshHome` | `""` | `$DSH_HOME` override (empty = inherit) |
193
+
194
+ ### Development and verification
195
+
196
+ Entry-level commands in the extension repository:
197
+
198
+ ```sh
199
+ npm install
200
+ npm run typecheck # tsc --noEmit
201
+ npm test # compile + node --test (data-layer unit tests)
202
+ npm run test:e2e # real extension-host tests (xvfb-run -a on Linux)
203
+ npm run package # compile + build the .vsix
204
+ ```
205
+
206
+ `npm run install:local` installs locally in one step; the CI job matrix and
207
+ commit hooks live in the extension repository's own docs.
208
+
209
+ ### Known limitations
210
+
211
+ - Session content is terminal content: scrollback is managed by the VS Code
212
+ integrated terminal;
213
+ - Specific-session resume requires this profile's `cordis.patch.yml`
214
+ (dsh-tui 0.7.0+);
215
+ - For logs without a `session` header, the project name comes from decoding
216
+ the cwd-encoded group dir, which is lossy for hyphenated project names
217
+ (e.g. `flow-comet` → `flow\comet`); the real cwd is still available in
218
+ the item tooltip.
219
+
220
+ ## Option 2: run directly in the VS Code integrated terminal
221
+
222
+ When you do not want the extension, run dsh-tui directly in the integrated
223
+ terminal. Prerequisites match [Getting started](getting-started.en.md):
224
+ global `dsh` CLI and `dsh-tui` (the first run bootstraps the profile; pnpm
225
+ is required).
226
+
227
+ 1. Open the VS Code integrated terminal (`` Ctrl+` ``) and run:
228
+
229
+ ```sh
230
+ dsh-tui
231
+ ```
232
+
233
+ 2. Resume the last session:
234
+
235
+ ```sh
236
+ dsh-tui --resume
237
+ ```
238
+
239
+ > `-c` / `--continue` is equivalent to `--resume`; `dsh-tui --resume <id>`
240
+ > (or `--resume=<id>`, since 0.7.0) resumes a specific session.
241
+
242
+ dsh-TUI has dedicated compatibility paths for xterm.js (VS Code / Cursor /
243
+ code-server):
244
+
245
+ - truecolor;
246
+ - OSC 8 links (rendered clickable by VS Code itself);
247
+ - OSC 52 clipboard (VS Code prompts for permission on first use);
248
+ - synchronized output and smooth draining.
249
+
250
+ These are handled in `src/ink/` under the `TERM_PROGRAM=vscode` detection
251
+ branches. Streaming Markdown, tool cards, scrolling, and double-Esc time
252
+ travel behave the same as in a standalone terminal.
253
+
254
+ ### Make `Ctrl+G` edit the current input in VS Code
255
+
256
+ The TUI's `Ctrl+G` uses `$VISUAL`/`$EDITOR`. To edit in VS Code, export
257
+ `code -w` in the terminal environment (`settings.json`, key
258
+ `terminal.integrated.env.<platform>`):
259
+
260
+ ```jsonc
261
+ {
262
+ "terminal.integrated.env.windows": { "VISUAL": "code -w" },
263
+ "terminal.integrated.env.linux": { "VISUAL": "code -w" },
264
+ "terminal.integrated.env.osx": { "VISUAL": "code -w" }
265
+ }
266
+ ```
267
+
268
+ (The companion extension exports `code -w` automatically when neither
269
+ `$VISUAL` nor `$EDITOR` is set — see Option 1.)
270
+
271
+ ### UI language
272
+
273
+ `DSH_TUI_LANG` defaults to Chinese; for the English UI, add
274
+ `"DSH_TUI_LANG": "en"` to the env block above.
275
+
276
+ ### Known differences (built-in terminal)
277
+
278
+ | Capability | Behavior in the integrated terminal |
279
+ | --- | --- |
280
+ | Mouse wheel / drag selection | Handled by the integrated terminal; "copy on release" surfaces as OS-level copy behavior |
281
+ | Extended keyboard protocol | modifyOtherKeys / win32-input-mode behavior is decided by xterm.js and may differ from kitty / WezTerm |
282
+ | OSC 52 clipboard | First use triggers VS Code's own permission prompt |
283
+
284
+ For the full protocol behavior of a standalone terminal (e.g. complex mouse
285
+ semantics), use an external terminal window (Windows Terminal / kitty /
286
+ WezTerm / iTerm2 / tmux).
287
+
288
+ ## Which option to choose
289
+
290
+ | Scenario | Choice |
291
+ | --- | --- |
292
+ | Need multiple sessions, session history, and specific-session resume | Option 1: companion extension |
293
+ | Occasional use, no extension wanted | Option 2: built-in terminal |
294
+ | Need a standalone terminal's full protocol behavior (complex mouse semantics, etc.) | External terminal window |
295
+
296
+ ## Acceptance baseline
297
+
298
+ Per [Contributing](contributing.en.md), VS Code is a supported terminal
299
+ platform. Any rendering change should be walked through inside the VS Code
300
+ integrated terminal in both inline and fullscreen modes at narrow widths —
301
+ startup, resize, scroll, input, cancel, and clean exit.
@@ -0,0 +1,272 @@
1
+ # 在 VS Code 中使用 dsh-TUI
2
+
3
+ [文档索引](README.md) · [English](vscode.en.md)
4
+
5
+ dsh-TUI 是终端程序:它把 ANSI 写进 PTY,再从 PTY 读按键。
6
+ 所以任何兼容终端都能运行它,包括 **VS Code 集成终端**
7
+ (xterm.js)。本页介绍两种用法:
8
+
9
+ **companion 扩展 `dsh-tui-vscode`(推荐)**
10
+
11
+ - 会话跑在 VS Code **真实的集成终端**里(编辑器区另一侧新开一列);
12
+ - 支持多会话并存、侧边栏会话历史、一键启动;
13
+ - 支持恢复上次会话、恢复指定会话;
14
+ - 扩展已上架 VS Code Marketplace。
15
+
16
+ **内置集成终端直接运行**
17
+
18
+ - 零安装、秒级可用;
19
+ - 适合不想装扩展的场景。
20
+
21
+ > 版本说明:本页的 `dsh-tui` 指本仓库(TUI 插件),
22
+ > `dsh-tui-vscode` 指 companion 扩展,两者版本独立、各自发布。
23
+ > 扩展完整说明见其仓库 README:
24
+ > [baobaolaodie/dsh-tui-vscode](https://github.com/baobaolaodie/dsh-tui-vscode)
25
+ >
26
+ > **选区通道要求扩展支持协议 v2**(**dsh-tui-vscode ≥ 0.7.0**)——
27
+ > 更旧的扩展下该功能静默不启用,其余功能不受影响。
28
+
29
+ ## 方式一:companion 扩展 dsh-tui-vscode(推荐)
30
+
31
+ [`baobaolaodie/dsh-tui-vscode`](https://github.com/baobaolaodie/dsh-tui-vscode)
32
+ 把 dsh-tui 跑进 VS Code **真实的集成终端**(用 `createTerminal`
33
+ 在终端内运行 CLI),没有 webview、没有 xterm 模拟层。它不改动
34
+ TUI 核心渲染链路,只负责**运行 TUI、做编辑器集成**。
35
+
36
+ ### 扩展提供的功能
37
+
38
+ - 编辑器标签栏按钮、活动栏鲸鱼图标、命令面板入口;
39
+ - 在编辑器区旁边创建名为 `DeepSeek` 的集成终端;
40
+ - 每次启动创建独立会话,已有会话继续在各自终端运行;
41
+ - 侧边栏按项目分组显示会话历史,支持刷新、恢复指定会话;
42
+ - 注入 `DSH_TUI_LANG`、`$VISUAL`、`$DSH_HOME`、指定会话 id 等环境变量;
43
+ - 关闭终端结束对应会话,TUI 内双击 `Ctrl+C` 也可退出。
44
+
45
+ | 能力 | Claude Code 官方扩展 | dsh-tui-vscode |
46
+ | --- | --- | --- |
47
+ | 入口 | 活动栏图标 + 编辑器标签栏按钮 + 命令面板 | 同(DeepSeek 鲸鱼图标) |
48
+ | 会话位置 | 编辑器区**另一侧**新开一列(`ViewColumn.Beside`) | 同,不占当前列 |
49
+ | 终端标签 | `Claude Code` + logo 图标 | `DeepSeek` + 鲸鱼图标 |
50
+ | 会话运行终端 | 真实集成终端(默认 shell:Windows = PowerShell) | 同 |
51
+ | 多会话 | 每次点击新开一个会话终端 | 同,旧会话继续运行 |
52
+ | 侧边栏 | sessions 会话列表 | 会话历史(按项目分组树,更强) |
53
+ | 自动启停 | 打开 = 启动;关闭终端 = 结束 | 同 |
54
+ | 环境注入 | — | `DSH_TUI_LANG` / `$VISUAL` / `$DSH_HOME` / 指定会话 id / `DSH_TUI_IDE_PORT/TOKEN`(选区通道) |
55
+ | 编辑器选区联动 | 选区自动进上下文,prompt 下方 `⧉ N lines selected` | 同(IDE 选区通道,见下) |
56
+
57
+ ### IDE 选区通道
58
+
59
+ 搭配含 IDE 选区通道的 dsh-tui 版本,扩展会在本机起一个
60
+ loopback WebSocket 服务,并写入 lock 文件(目录 0700、文件 0600)。
61
+
62
+ - 扩展启动的会话:dsh-tui 启动时通过环境变量直连;
63
+ - 手动启动的会话:扫描 lock 自动发现——只连 workspace 覆盖
64
+ 当前会话目录的窗口;没有匹配就静默禁用,绝不连别的项目。
65
+
66
+ 此后:
67
+
68
+ - 编辑器选中代码 → TUI prompt 下方**实时**出现 `⧉ N lines selected`
69
+ 徽标(清空选区即消失);
70
+ - 提交消息 → 选中行自动附加进模型上下文,transcript 用户消息上方
71
+ 渲染「⧉ Selected N lines from <相对路径>」指示行(重启后 resume
72
+ 仍能重建该指示行);
73
+ - 选区推送携带**编辑器缓冲区自己的文本**——未保存的修改也如实附加
74
+ (附加的就是你屏幕上看到的);超大选区按与 @-引用相同的上限截断
75
+ 并标记;
76
+ - 无 IDE / 断连时静默降级,TUI 其余功能零影响。
77
+
78
+ ![IDE 选区通道:footer 实时徽标与 transcript 指示行](../screenshots/ide-selection-badge.png)
79
+
80
+ **协议与版本**:
81
+
82
+ - 连接后 TUI 先发 `ide/hello`(token + protocolVersion);
83
+ - 扩展验证通过才回 `ide/hello_ack`(protocolVersion + workspaceFolders)——
84
+ 只有收到合法 v2 ACK 才算连接建立,token 不对会被静默断开;
85
+ - 此后 `selection_changed` 携带绝对行号(0-based 含端)与编辑器
86
+ 缓冲区自身的选区文本;
87
+ - lock 发现只连 workspace 覆盖会话目录的窗口,无匹配即静默禁用;
88
+ - 协议两端需同版本发布。
89
+
90
+ ### 前置条件
91
+
92
+ - VS Code ≥ 1.90;
93
+ - 全局安装 `dsh` CLI 与 `dsh-tui`
94
+ (**建议 dsh-tui 0.7.0+**,见[快速开始](getting-started.md)):
95
+
96
+ ```sh
97
+ npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
98
+ ```
99
+
100
+ - 运行模型需要 `DEEPSEEK_API_KEY`(放在终端环境或 dsh 配置里)。
101
+
102
+ ### 安装
103
+
104
+ **从 VS Code 扩展面板安装(推荐)**:`Ctrl+Shift+X` 搜索
105
+ **`dsh-tui`** 一键安装(发布者 `baobaolaodie`),或直接打开
106
+ [Marketplace 页面](https://marketplace.visualstudio.com/items?itemName=baobaolaodie.dsh-tui-vscode)。
107
+
108
+ 或从源码构建:
109
+
110
+ ```sh
111
+ git clone https://github.com/baobaolaodie/dsh-tui-vscode.git
112
+ cd dsh-tui-vscode
113
+ npm install
114
+ npm run package && code --install-extension dsh-tui-vscode-<version>.vsix --force
115
+ # 或一步到位:npm run install:local
116
+ ```
117
+
118
+ ### 快速上手
119
+
120
+ 1. 点**编辑器标签栏右侧鲸鱼按钮**,或跑命令面板
121
+ `dsh-tui: Start new session / 启动新会话`——编辑器区**另一侧**
122
+ 新开 **DeepSeek** 终端并自动运行 dsh-tui。
123
+ 2. 点**活动栏鲸鱼图标**打开侧边栏「会话历史」,欢迎页提供
124
+ 「启动新会话」「恢复上次会话」按钮。
125
+ 3. 再次点击 = **再开一个会话**,多会话并行,旧会话在自己的
126
+ 终端里继续运行。
127
+ 4. **恢复上次会话**:`dsh-tui: Resume last session / 恢复上次会话`。
128
+ 5. **恢复指定会话**:侧边栏「会话历史」展开项目组 → 点击会话条目。
129
+ 6. **终止**:关闭终端标签(只结束该会话),或 TUI 内双击
130
+ `Ctrl+C`;命令 `dsh-tui: Terminate session / 终止会话` 向最近
131
+ 终端发送 Ctrl+C。
132
+
133
+ 有会话运行时,**状态栏**(左下)显示 `dsh-tui` 项,
134
+ 点击启动新会话(对应 `dsh-tui-vscode.open`)。
135
+
136
+ ### 命令清单
137
+
138
+ | 命令 ID | 标题 | 作用 |
139
+ | --- | --- | --- |
140
+ | `dsh-tui-vscode.open` | Open panel / 打开会话面板 | 启动新会话(编辑器标签栏按钮的同一入口) |
141
+ | `dsh-tui-vscode.start` | Start new session / 启动新会话 | 启动新会话 |
142
+ | `dsh-tui-vscode.resume` | Resume last session / 恢复上次会话 | `--resume` 恢复最近会话 |
143
+ | `dsh-tui-vscode.focus` | Focus session panel / 聚焦会话面板 | 聚焦最近终端,无则新开 |
144
+ | `dsh-tui-vscode.kill` | Terminate session / 终止会话 | 向最近终端发送 Ctrl+C |
145
+ | `dsh-tui-vscode.refreshSessions` | Refresh sessions / 刷新会话列表 | 手动刷新侧边栏 |
146
+ | `dsh-tui-vscode.resumeSession` | Resume session / 恢复会话 | 恢复指定会话(侧边栏点击) |
147
+ | `dsh-tui-vscode.insertAtMention` | Insert @-mention / 插入 @文件引用 | 编辑器聚焦时按 `Ctrl+Alt+K`(macOS `Cmd+Alt+K`)或编辑器右键:把当前文件/选中代码以 `@绝对路径 L起-止` 插入 dsh-tui 输入框(绝对路径与 dsh-tui 会话 cwd 无关;未选中引用整个文件;无运行会话回退为复制到剪贴板) |
148
+
149
+ ### 架构与机制
150
+
151
+ - 扩展在本机起一个 loopback WebSocket 服务,并把连接信息写进 lock
152
+ 文件(目录 0700、文件 0600)。
153
+ - 从扩展启动:dsh-tui 用注入的环境变量直连该服务。
154
+ - 手动启动(如 tmux / SSH):扫描 lock 自动发现,只连 workspace
155
+ 覆盖当前会话目录的窗口;没有匹配就静默禁用,绝不连别的项目。
156
+ - 连接走协议 v2:TUI 先发 `ide/hello`,扩展回 `ide/hello_ack`,
157
+ 之后用 `selection_changed` 推送选区。
158
+ - 无 IDE / 断连时静默降级,TUI 其余功能零影响。
159
+
160
+ ### 配置
161
+
162
+ | 键 | 默认 | 说明 |
163
+ | --- | --- | --- |
164
+ | `dsh-tui-vscode.command` | `dsh-tui` | 启动命令(按宿主 PATH 解析为绝对路径) |
165
+ | `dsh-tui-vscode.extraArgs` | `[]` | 每次启动追加的 CLI 参数,如 `["--lang","en"]` |
166
+ | `dsh-tui-vscode.lang` | `""` | `""`/`zh`/`en`,写入 `DSH_TUI_LANG` |
167
+ | `dsh-tui-vscode.injectEditor` | `true` | 未设 `$VISUAL`/`$EDITOR` 时导出 `$VISUAL` |
168
+ | `dsh-tui-vscode.editorCommand` | `code -w` | 导出为 `$VISUAL` 的命令 |
169
+ | `dsh-tui-vscode.dshHome` | `""` | 覆盖会话的 `$DSH_HOME`(空 = 继承) |
170
+
171
+ ### 开发与验证
172
+
173
+ 扩展仓库跑测试、打包与本地安装的入口命令:
174
+
175
+ ```sh
176
+ npm install
177
+ npm run typecheck # tsc --noEmit
178
+ npm test # 编译 + node --test(数据层单测)
179
+ npm run test:e2e # 真实扩展宿主测试(Linux 用 xvfb-run -a)
180
+ npm run package # 编译 + 生成 .vsix
181
+ ```
182
+
183
+ `npm run install:local` 一步本地安装;CI 任务矩阵与提交钩子等扩展仓库细节,此处从略。
184
+
185
+ ### 已知限制
186
+
187
+ - 会话内容即终端内容:滚动历史由 VS Code 集成终端管理;
188
+ - 指定会话恢复依赖 dsh-tui profile 的 `cordis.patch.yml`
189
+ (dsh-tui 0.7.0+);
190
+ - 无 `session` 头日志的项目名来自组目录解码,含连字符的项目名
191
+ 解码有损(如 `flow-comet` → `flow\comet`)——此类会话的 cwd
192
+ 仍可在悬浮提示中查看。
193
+
194
+ ## 方式二:VS Code 集成终端直接运行
195
+
196
+ 不想装扩展时,直接在集成终端里跑 dsh-tui。前置条件与
197
+ [快速开始](getting-started.md) 一致:全局安装 `dsh` CLI 与 `dsh-tui`
198
+ (首次启动会自举 profile,需要 pnpm)。
199
+
200
+ 1. 打开 VS Code 集成终端(`` Ctrl+` ``):
201
+
202
+ ```sh
203
+ dsh-tui
204
+ ```
205
+
206
+ 2. 恢复上次会话:
207
+
208
+ ```sh
209
+ dsh-tui --resume
210
+ ```
211
+
212
+ > `-c` / `--continue` 与 `--resume` 等价;`dsh-tui --resume <id>`(或
213
+ > `--resume=<id>`,0.7.0 起)恢复指定会话。
214
+
215
+ dsh-TUI 对 xterm.js(VS Code / Cursor / code-server)有专门的兼容路径:
216
+
217
+ - truecolor 配色;
218
+ - OSC 8 链接(由 VS Code 直接渲染为可点击);
219
+ - OSC 52 剪贴板(首次使用 VS Code 会弹授权提示);
220
+ - 同步输出、平滑刷屏。
221
+
222
+ 这些在 `src/ink/` 中按 `TERM_PROGRAM=vscode` 探测分支处理。
223
+ 流式 Markdown、工具卡、滚动、双击 Esc 时间回溯等行为
224
+ 与独立终端一致。
225
+
226
+ ### 让 `Ctrl+G` 用 VS Code 编辑当前输入
227
+
228
+ TUI 的 `Ctrl+G` 走 `$VISUAL`/`$EDITOR`。想让它在 VS Code 里编辑,
229
+ 把 `code -w` 写进终端环境(`settings.json` 中按平台设置,键名
230
+ `terminal.integrated.env.<platform>`):
231
+
232
+ ```jsonc
233
+ {
234
+ "terminal.integrated.env.windows": { "VISUAL": "code -w" },
235
+ "terminal.integrated.env.linux": { "VISUAL": "code -w" },
236
+ "terminal.integrated.env.osx": { "VISUAL": "code -w" }
237
+ }
238
+ ```
239
+
240
+ (若 `$VISUAL`/`$EDITOR` 都未设置,companion 扩展会自动导出
241
+ `code -w`,见方式一。)
242
+
243
+ ### 界面语言
244
+
245
+ `DSH_TUI_LANG` 默认中文;要英文界面,在上述 env 里加
246
+ `"DSH_TUI_LANG": "en"`。
247
+
248
+ ### 已知差异(内置终端)
249
+
250
+ | 能力 | 内置终端表现 |
251
+ | --- | --- |
252
+ | 鼠标滚轮/拖选 | 由集成终端处理;“松开即复制”表现为 OS 级复制行为 |
253
+ | 扩展键盘协议 | modifyOtherKeys / win32-input-mode 由 xterm.js 决定,可能与 kitty / WezTerm 不完全一致 |
254
+ | OSC 52 剪贴板 | 首次使用弹出权限提示(VS Code 自身的安全设计) |
255
+
256
+ 需要完全对齐独立终端行为时,请使用独立终端窗口
257
+ (Windows Terminal / kitty / WezTerm / iTerm2 / tmux)。
258
+
259
+ ## 选型建议
260
+
261
+ | 场景 | 选择 |
262
+ | --- | --- |
263
+ | 需要多会话、会话历史和指定会话恢复 | 方式一:companion 扩展 |
264
+ | 偶尔用、不想装扩展 | 方式二:内置终端 |
265
+ | 需要完全独立终端的协议行为(复杂鼠标行为等) | 独立终端窗口 |
266
+
267
+ ## 验收基线
268
+
269
+ 按[贡献指南](contributing.md)的约定,VS Code 属于受支持的终端平台。
270
+ 任何渲染改动请在 inline / fullscreen 两种模式、窄终端宽度下,
271
+ 在 VS Code 集成终端内走一遍:启动、resize、滚动、输入、取消、
272
+ 干净退出。