@deepseek-harness-tui/dsh-tui 0.12.0 → 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 (692) hide show
  1. package/README.md +41 -5
  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 +8 -3
  276. package/cordis.patch.yml +7 -1
  277. package/guide/dsh-tui-guide/configuration.en.md +6 -1
  278. package/guide/dsh-tui-guide/configuration.md +6 -1
  279. package/guide/dsh-tui-guide/getting-started.en.md +6 -3
  280. package/guide/dsh-tui-guide/getting-started.md +4 -2
  281. package/guide/dsh-tui-guide/interaction.en.md +68 -4
  282. package/guide/dsh-tui-guide/interaction.md +49 -3
  283. package/guide/dsh-tui-guide/plugins.en.md +16 -6
  284. package/guide/dsh-tui-guide/plugins.md +14 -6
  285. package/guide/dsh-tui-guide/themes.en.md +7 -2
  286. package/guide/dsh-tui-guide/themes.md +5 -2
  287. package/guide/dsh-tui-guide/user-guide.en.md +124 -21
  288. package/guide/dsh-tui-guide/user-guide.md +96 -16
  289. package/lib/settings.json +215 -1
  290. package/lib/types/adapter/channel/ui-policy.d.ts +6 -2
  291. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  292. package/lib/types/adapter/channel/ui-policy.js +14 -1
  293. package/lib/types/adapter/index.d.ts +1 -1
  294. package/lib/types/adapter/index.js +1 -1
  295. package/lib/types/adapter/kernel/host-facade.d.ts +4 -1
  296. package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -1
  297. package/lib/types/adapter/kernel/host-facade.js +8 -1
  298. package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
  299. package/lib/types/adapter/kernel/runtime.js +13 -0
  300. package/lib/types/adapter/kernel/slices/index.d.ts +1 -0
  301. package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -1
  302. package/lib/types/adapter/kernel/slices/index.js +3 -0
  303. package/lib/types/adapter/kernel/slices/panels.d.ts +3 -0
  304. package/lib/types/adapter/kernel/slices/panels.d.ts.map +1 -0
  305. package/lib/types/adapter/kernel/slices/panels.js +14 -0
  306. package/lib/types/adapter/ports/channel-capabilities.d.ts +48 -0
  307. package/lib/types/adapter/ports/channel-capabilities.d.ts.map +1 -0
  308. package/lib/types/adapter/ports/channel-capabilities.js +2 -0
  309. package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
  310. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
  311. package/lib/types/adapter/ports/channel-display.d.ts +10 -0
  312. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  313. package/lib/types/adapter/ports/channel-ui.d.ts +62 -2
  314. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  315. package/lib/types/adapter/ports/channel-view.d.ts +94 -0
  316. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  317. package/lib/types/adapter/ports/channel.d.ts +1 -1
  318. package/lib/types/adapter/ports/channel.js +1 -1
  319. package/lib/types/adapter/ports/descriptor.d.ts +1 -1
  320. package/lib/types/adapter/ports/descriptor.js +1 -1
  321. package/lib/types/adapter/ports/index.d.ts +1 -1
  322. package/lib/types/adapter/ports/index.js +1 -1
  323. package/lib/types/adapter/ports/panels.d.ts +28 -0
  324. package/lib/types/adapter/ports/panels.d.ts.map +1 -0
  325. package/lib/types/adapter/ports/panels.js +8 -0
  326. package/lib/types/adapter/ports/workspace.d.ts +1 -1
  327. package/lib/types/adapter/ports/workspace.js +1 -1
  328. package/lib/types/adapter/spec/index.d.ts +2 -2
  329. package/lib/types/adapter/spec/index.js +2 -2
  330. package/lib/types/adapter/spec/profile.d.ts +6 -6
  331. package/lib/types/adapter/spec/profile.d.ts.map +1 -1
  332. package/lib/types/adapter/spec/profile.js +6 -6
  333. package/lib/types/adapter/spec/protocol-constants.d.ts +3 -3
  334. package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
  335. package/lib/types/adapter/spec/protocol-constants.js +5 -5
  336. package/lib/types/adapter/spec/tui-contributions.d.ts +4 -4
  337. package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
  338. package/lib/types/adapter/spec/tui-contributions.js +5 -5
  339. package/lib/types/adapter/standard/descriptor.js +1 -1
  340. package/lib/types/adapter/standard/index.d.ts +3 -3
  341. package/lib/types/adapter/standard/index.js +3 -3
  342. package/lib/types/adapter/standard/registry.d.ts +3 -2
  343. package/lib/types/adapter/standard/registry.d.ts.map +1 -1
  344. package/lib/types/adapter/standard/registry.js +6 -5
  345. package/lib/types/adapter/standard/tui-extension.d.ts +1 -1
  346. package/lib/types/adapter/standard/tui-extension.js +1 -1
  347. package/lib/types/adapter/upstream/index.d.ts +1 -0
  348. package/lib/types/adapter/upstream/index.d.ts.map +1 -1
  349. package/lib/types/adapter/upstream/index.js +1 -0
  350. package/lib/types/adapter/upstream/panels-driver.d.ts +18 -0
  351. package/lib/types/adapter/upstream/panels-driver.d.ts.map +1 -0
  352. package/lib/types/adapter/upstream/panels-driver.js +159 -0
  353. package/lib/types/api.d.ts +2 -0
  354. package/lib/types/api.d.ts.map +1 -1
  355. package/lib/types/api.js +3 -1
  356. package/lib/types/commands.d.ts.map +1 -1
  357. package/lib/types/commands.js +12 -4
  358. package/lib/types/components/ActivityLine.d.ts +6 -9
  359. package/lib/types/components/ActivityLine.d.ts.map +1 -1
  360. package/lib/types/components/ActivityLine.js +7 -8
  361. package/lib/types/components/Chat/JobCard.d.ts +18 -1
  362. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  363. package/lib/types/components/Chat/JobCard.js +90 -22
  364. package/lib/types/components/Chat/JobGroupHeader.d.ts +27 -0
  365. package/lib/types/components/Chat/JobGroupHeader.d.ts.map +1 -0
  366. package/lib/types/components/Chat/JobGroupHeader.js +62 -0
  367. package/lib/types/components/GoalTodoPanel.d.ts +13 -1
  368. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  369. package/lib/types/components/GoalTodoPanel.js +55 -14
  370. package/lib/types/components/JobsPanel.d.ts +42 -2
  371. package/lib/types/components/JobsPanel.d.ts.map +1 -1
  372. package/lib/types/components/JobsPanel.js +147 -14
  373. package/lib/types/components/LogoV2.d.ts +43 -3
  374. package/lib/types/components/LogoV2.d.ts.map +1 -1
  375. package/lib/types/components/LogoV2.js +42 -15
  376. package/lib/types/components/MessageList.d.ts +8 -2
  377. package/lib/types/components/MessageList.d.ts.map +1 -1
  378. package/lib/types/components/MessageList.js +212 -18
  379. package/lib/types/components/OverlayAbove.d.ts +11 -1
  380. package/lib/types/components/OverlayAbove.d.ts.map +1 -1
  381. package/lib/types/components/OverlayAbove.js +2 -12
  382. package/lib/types/components/PageMargin.d.ts.map +1 -1
  383. package/lib/types/components/PageMargin.js +3 -1
  384. package/lib/types/components/PluginSceneBoundary.d.ts +1 -1
  385. package/lib/types/components/PluginSceneBoundary.js +1 -1
  386. package/lib/types/components/PromptInput.d.ts +20 -22
  387. package/lib/types/components/PromptInput.d.ts.map +1 -1
  388. package/lib/types/components/PromptInput.js +413 -156
  389. package/lib/types/components/SearchBox.d.ts +22 -5
  390. package/lib/types/components/SearchBox.d.ts.map +1 -1
  391. package/lib/types/components/SearchBox.js +17 -13
  392. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  393. package/lib/types/components/SubagentCard.js +17 -2
  394. package/lib/types/components/SubagentDashboard.d.ts +18 -3
  395. package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
  396. package/lib/types/components/SubagentDashboard.js +53 -5
  397. package/lib/types/components/SubagentDetailScene.d.ts +7 -1
  398. package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
  399. package/lib/types/components/SubagentDetailScene.js +54 -5
  400. package/lib/types/components/SurfaceEdges.d.ts +21 -0
  401. package/lib/types/components/SurfaceEdges.d.ts.map +1 -0
  402. package/lib/types/components/SurfaceEdges.js +7 -0
  403. package/lib/types/components/ThemePicker.d.ts +9 -0
  404. package/lib/types/components/ThemePicker.d.ts.map +1 -1
  405. package/lib/types/components/ThemePicker.js +74 -10
  406. package/lib/types/components/ThemePreviewPane.d.ts +26 -0
  407. package/lib/types/components/ThemePreviewPane.d.ts.map +1 -0
  408. package/lib/types/components/ThemePreviewPane.js +99 -0
  409. package/lib/types/components/design-system/Divider.d.ts.map +1 -1
  410. package/lib/types/components/design-system/Divider.js +14 -9
  411. package/lib/types/components/launchpadActions.d.ts +73 -0
  412. package/lib/types/components/launchpadActions.d.ts.map +1 -0
  413. package/lib/types/components/launchpadActions.js +111 -0
  414. package/lib/types/components/launchpadLayout.d.ts +62 -0
  415. package/lib/types/components/launchpadLayout.d.ts.map +1 -0
  416. package/lib/types/components/launchpadLayout.js +176 -0
  417. package/lib/types/components/onboardingModel.d.ts +83 -0
  418. package/lib/types/components/onboardingModel.d.ts.map +1 -0
  419. package/lib/types/components/onboardingModel.js +128 -0
  420. package/lib/types/components/sidePanel/InfoPanel.d.ts +17 -0
  421. package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -0
  422. package/lib/types/components/sidePanel/InfoPanel.js +124 -0
  423. package/lib/types/components/sidePanel/PanelBar.d.ts +45 -0
  424. package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -0
  425. package/lib/types/components/sidePanel/PanelBar.js +104 -0
  426. package/lib/types/components/sidePanel/PanelErrorBoundary.d.ts +21 -0
  427. package/lib/types/components/sidePanel/PanelErrorBoundary.d.ts.map +1 -0
  428. package/lib/types/components/sidePanel/PanelErrorBoundary.js +30 -0
  429. package/lib/types/components/sidePanel/PanelHost.d.ts +36 -0
  430. package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -0
  431. package/lib/types/components/sidePanel/PanelHost.js +81 -0
  432. package/lib/types/components/sidePanel/PanelPicker.d.ts +24 -0
  433. package/lib/types/components/sidePanel/PanelPicker.d.ts.map +1 -0
  434. package/lib/types/components/sidePanel/PanelPicker.js +45 -0
  435. package/lib/types/components/sidePanel/PanelStore.d.ts +55 -0
  436. package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -0
  437. package/lib/types/components/sidePanel/PanelStore.js +109 -0
  438. package/lib/types/components/sidePanel/SidePanelColumn.d.ts +31 -0
  439. package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -0
  440. package/lib/types/components/sidePanel/SidePanelColumn.js +70 -0
  441. package/lib/types/components/sidePanel/SidePanelLayout.d.ts +54 -0
  442. package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -0
  443. package/lib/types/components/sidePanel/SidePanelLayout.js +81 -0
  444. package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +43 -0
  445. package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -0
  446. package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +26 -0
  447. package/lib/types/components/sidePanel/TrajectoryPanel.d.ts +7 -0
  448. package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -0
  449. package/lib/types/components/sidePanel/TrajectoryPanel.js +263 -0
  450. package/lib/types/components/sidePanel/WorkspacePanel.d.ts +4 -0
  451. package/lib/types/components/sidePanel/WorkspacePanel.d.ts.map +1 -0
  452. package/lib/types/components/sidePanel/WorkspacePanel.js +171 -0
  453. package/lib/types/components/sidePanel/builtinPanels.d.ts +3 -0
  454. package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -0
  455. package/lib/types/components/sidePanel/builtinPanels.js +229 -0
  456. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +53 -0
  457. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -0
  458. package/lib/types/components/sidePanel/companion/CompanionPanel.js +528 -0
  459. package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +32 -0
  460. package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -0
  461. package/lib/types/components/sidePanel/companion/SplashMascot.js +103 -0
  462. package/lib/types/components/sidePanel/companion/deepy.d.ts +75 -0
  463. package/lib/types/components/sidePanel/companion/deepy.d.ts.map +1 -0
  464. package/lib/types/components/sidePanel/companion/deepy.js +222 -0
  465. package/lib/types/components/sidePanel/companion/mood.d.ts +176 -0
  466. package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -0
  467. package/lib/types/components/sidePanel/companion/mood.js +212 -0
  468. package/lib/types/components/sidePanel/companion/pose.d.ts +43 -0
  469. package/lib/types/components/sidePanel/companion/pose.d.ts.map +1 -0
  470. package/lib/types/components/sidePanel/companion/pose.js +34 -0
  471. package/lib/types/components/sidePanel/companion/skins.d.ts +102 -0
  472. package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -0
  473. package/lib/types/components/sidePanel/companion/skins.js +408 -0
  474. package/lib/types/components/sidePanel/dimensions.d.ts +60 -0
  475. package/lib/types/components/sidePanel/dimensions.d.ts.map +1 -0
  476. package/lib/types/components/sidePanel/dimensions.js +75 -0
  477. package/lib/types/components/sidePanel/jobsFocusStore.d.ts +21 -0
  478. package/lib/types/components/sidePanel/jobsFocusStore.d.ts.map +1 -0
  479. package/lib/types/components/sidePanel/jobsFocusStore.js +30 -0
  480. package/lib/types/components/sidePanel/panelBridge.d.ts +44 -0
  481. package/lib/types/components/sidePanel/panelBridge.d.ts.map +1 -0
  482. package/lib/types/components/sidePanel/panelBridge.js +55 -0
  483. package/lib/types/components/sidePanel/pluginPanelAdapter.d.ts +22 -0
  484. package/lib/types/components/sidePanel/pluginPanelAdapter.d.ts.map +1 -0
  485. package/lib/types/components/sidePanel/pluginPanelAdapter.js +148 -0
  486. package/lib/types/components/sidePanel/types.d.ts +110 -0
  487. package/lib/types/components/sidePanel/types.d.ts.map +1 -0
  488. package/lib/types/components/sidePanel/types.js +1 -0
  489. package/lib/types/components/sidePanel/usePanelInput.d.ts +5 -0
  490. package/lib/types/components/sidePanel/usePanelInput.d.ts.map +1 -0
  491. package/lib/types/components/sidePanel/usePanelInput.js +44 -0
  492. package/lib/types/components/sidePanel/useSidePanel.d.ts +47 -0
  493. package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -0
  494. package/lib/types/components/sidePanel/useSidePanel.js +284 -0
  495. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
  496. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
  497. package/lib/types/components/workspaces/HomeWorkspaceRow.js +3 -2
  498. package/lib/types/deepseekPricing.d.ts +10 -9
  499. package/lib/types/deepseekPricing.d.ts.map +1 -1
  500. package/lib/types/deepseekPricing.js +18 -11
  501. package/lib/types/dsh-adapter/channel/attached-context.d.ts +58 -0
  502. package/lib/types/dsh-adapter/channel/attached-context.d.ts.map +1 -0
  503. package/lib/types/dsh-adapter/channel/attached-context.js +109 -0
  504. package/lib/types/dsh-adapter/channel/binding-events.d.ts +6 -0
  505. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  506. package/lib/types/dsh-adapter/channel/binding-events.js +43 -0
  507. package/lib/types/dsh-adapter/channel/capabilities.d.ts +82 -0
  508. package/lib/types/dsh-adapter/channel/capabilities.d.ts.map +1 -0
  509. package/lib/types/dsh-adapter/channel/capabilities.js +165 -0
  510. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
  511. package/lib/types/dsh-adapter/channel/command-completions.js +8 -0
  512. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +4 -12
  513. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -1
  514. package/lib/types/dsh-adapter/channel/context-bookkeeping.js +9 -4
  515. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +13 -2
  516. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
  517. package/lib/types/dsh-adapter/channel/input-delivery.js +18 -1
  518. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +0 -3
  519. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
  520. package/lib/types/dsh-adapter/channel/mode-actions.js +7 -2
  521. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +8 -1
  522. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  523. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +0 -1
  524. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  525. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  526. package/lib/types/dsh-adapter/channel/preferences.js +9 -1
  527. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  528. package/lib/types/dsh-adapter/channel/projection.js +42 -37
  529. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
  530. package/lib/types/dsh-adapter/channel/reports.js +13 -4
  531. package/lib/types/dsh-adapter/channel/session-reset.d.ts +5 -1
  532. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  533. package/lib/types/dsh-adapter/channel/session-reset.js +1 -0
  534. package/lib/types/dsh-adapter/channel/state.d.ts +18 -2
  535. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  536. package/lib/types/dsh-adapter/channel/state.js +2 -1
  537. package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
  538. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  539. package/lib/types/dsh-adapter/channel/usage.d.ts +18 -1
  540. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
  541. package/lib/types/dsh-adapter/channel/usage.js +97 -2
  542. package/lib/types/dsh-adapter/channel.d.ts +1 -1
  543. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  544. package/lib/types/dsh-adapter/channel.js +56 -3
  545. package/lib/types/dsh-adapter/context-occupancy.d.ts +204 -0
  546. package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -0
  547. package/lib/types/dsh-adapter/context-occupancy.js +299 -0
  548. package/lib/types/dsh-adapter/contract.d.ts +14 -0
  549. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  550. package/lib/types/dsh-adapter/contract.js +24 -0
  551. package/lib/types/dsh-adapter/index.d.ts +32 -0
  552. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  553. package/lib/types/dsh-adapter/index.js +20 -1
  554. package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -1
  555. package/lib/types/dsh-adapter/migrate/sessionize.js +11 -12
  556. package/lib/types/dsh-adapter/panel-runtime-registry.d.ts +39 -0
  557. package/lib/types/dsh-adapter/panel-runtime-registry.d.ts.map +1 -0
  558. package/lib/types/dsh-adapter/panel-runtime-registry.js +84 -0
  559. package/lib/types/dsh-adapter/panels.d.ts +251 -0
  560. package/lib/types/dsh-adapter/panels.d.ts.map +1 -0
  561. package/lib/types/dsh-adapter/panels.js +407 -0
  562. package/lib/types/dsh-adapter/plugin-host.js +1 -1
  563. package/lib/types/dsh-adapter/plugin.d.ts +17 -1
  564. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  565. package/lib/types/dsh-adapter/plugin.js +169 -32
  566. package/lib/types/dsh-adapter/presets.d.ts +26 -6
  567. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  568. package/lib/types/dsh-adapter/presets.js +29 -7
  569. package/lib/types/dsh-adapter/startup-args.d.ts +8 -0
  570. package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -0
  571. package/lib/types/dsh-adapter/startup-args.js +34 -0
  572. package/lib/types/history.d.ts +24 -7
  573. package/lib/types/history.d.ts.map +1 -1
  574. package/lib/types/history.js +77 -18
  575. package/lib/types/i18n.d.ts +734 -15
  576. package/lib/types/i18n.d.ts.map +1 -1
  577. package/lib/types/i18n.js +302 -6
  578. package/lib/types/ink/components/App.d.ts +14 -1
  579. package/lib/types/ink/components/App.d.ts.map +1 -1
  580. package/lib/types/ink/components/App.js +62 -61
  581. package/lib/types/ink/components/TerminalSizeContext.d.ts +7 -0
  582. package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -1
  583. package/lib/types/ink/hooks/use-input.d.ts +11 -0
  584. package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
  585. package/lib/types/ink/hooks/use-input.js +8 -2
  586. package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -1
  587. package/lib/types/ink/hooks/use-terminal-viewport.js +3 -1
  588. package/lib/types/ink/ink.d.ts +18 -0
  589. package/lib/types/ink/ink.d.ts.map +1 -1
  590. package/lib/types/ink/ink.js +51 -8
  591. package/lib/types/ink/output.d.ts +10 -1
  592. package/lib/types/ink/output.d.ts.map +1 -1
  593. package/lib/types/ink/output.js +3 -3
  594. package/lib/types/ink/parse-keypress.d.ts +36 -3
  595. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  596. package/lib/types/ink/parse-keypress.js +262 -108
  597. package/lib/types/ink/render-node-to-output.d.ts +1 -1
  598. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  599. package/lib/types/ink/render-node-to-output.js +37 -5
  600. package/lib/types/ink/screen.d.ts +26 -1
  601. package/lib/types/ink/screen.d.ts.map +1 -1
  602. package/lib/types/ink/screen.js +96 -1
  603. package/lib/types/ink/selection.d.ts +23 -1
  604. package/lib/types/ink/selection.d.ts.map +1 -1
  605. package/lib/types/ink/selection.js +102 -26
  606. package/lib/types/ink/sixel-codec.d.ts +11 -0
  607. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  608. package/lib/types/ink/sixel-codec.js +42 -8
  609. package/lib/types/math/renderer.d.ts +2 -0
  610. package/lib/types/math/renderer.d.ts.map +1 -1
  611. package/lib/types/math/renderer.js +4 -0
  612. package/lib/types/onboardingPrefs.d.ts +52 -0
  613. package/lib/types/onboardingPrefs.d.ts.map +1 -0
  614. package/lib/types/onboardingPrefs.js +107 -0
  615. package/lib/types/panels.d.ts +4 -0
  616. package/lib/types/panels.d.ts.map +1 -0
  617. package/lib/types/panels.js +4 -0
  618. package/lib/types/screens/Chat.d.ts +22 -1
  619. package/lib/types/screens/Chat.d.ts.map +1 -1
  620. package/lib/types/screens/Chat.js +1126 -299
  621. package/lib/types/screens/Launchpad.d.ts +194 -0
  622. package/lib/types/screens/Launchpad.d.ts.map +1 -0
  623. package/lib/types/screens/Launchpad.js +607 -0
  624. package/lib/types/screens/Onboarding.d.ts +37 -0
  625. package/lib/types/screens/Onboarding.d.ts.map +1 -0
  626. package/lib/types/screens/Onboarding.js +492 -0
  627. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  628. package/lib/types/screens/SessionSupervisor.js +18 -12
  629. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  630. package/lib/types/screens/StatusLine.js +32 -14
  631. package/lib/types/screens/StatusMetrics.d.ts +22 -0
  632. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  633. package/lib/types/screens/StatusMetrics.js +20 -0
  634. package/lib/types/screens/chatOverlay.d.ts +18 -1
  635. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  636. package/lib/types/screens/chatOverlay.js +3 -0
  637. package/lib/types/screens/sessionSupervisor/model.d.ts +1 -2
  638. package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
  639. package/lib/types/screens/sessionSupervisor/model.js +4 -2
  640. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  641. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +7 -3
  642. package/lib/types/settings/definitions.d.ts +93 -0
  643. package/lib/types/settings/definitions.d.ts.map +1 -1
  644. package/lib/types/settings/definitions.js +83 -0
  645. package/lib/types/tips.js +5 -5
  646. package/lib/types/tuiDisplayPrefs.d.ts +42 -2
  647. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  648. package/lib/types/tuiDisplayPrefs.js +74 -0
  649. package/lib/types/update.d.ts +53 -9
  650. package/lib/types/update.d.ts.map +1 -1
  651. package/lib/types/update.js +101 -44
  652. package/lib/types/utils/bmp.d.ts.map +1 -1
  653. package/lib/types/utils/bmp.js +8 -1
  654. package/lib/types/utils/clipboard.d.ts.map +1 -1
  655. package/lib/types/utils/clipboard.js +25 -6
  656. package/lib/types/utils/credentials.d.ts.map +1 -1
  657. package/lib/types/utils/credentials.js +5 -1
  658. package/lib/types/utils/draftWordBoundary.d.ts +23 -0
  659. package/lib/types/utils/draftWordBoundary.d.ts.map +1 -0
  660. package/lib/types/utils/draftWordBoundary.js +161 -0
  661. package/lib/types/utils/fileTarget.d.ts.map +1 -1
  662. package/lib/types/utils/fileTarget.js +7 -9
  663. package/lib/types/utils/inputPaste.d.ts +62 -0
  664. package/lib/types/utils/inputPaste.d.ts.map +1 -0
  665. package/lib/types/utils/inputPaste.js +111 -0
  666. package/lib/types/utils/intl.d.ts +8 -0
  667. package/lib/types/utils/intl.d.ts.map +1 -1
  668. package/lib/types/utils/intl.js +11 -0
  669. package/lib/types/utils/keymap.d.ts +13 -3
  670. package/lib/types/utils/keymap.d.ts.map +1 -1
  671. package/lib/types/utils/keymap.js +27 -5
  672. package/package.json +19 -8
  673. package/{dsh-ecosystem-spec → tui-profile}/registry/README.md +1 -1
  674. package/{dsh-ecosystem-spec → tui-profile}/registry/registry-0.15.json +1 -1
  675. /package/{dsh-ecosystem-spec → tui-profile}/protocols/profile-definitions.d.ts +0 -0
  676. /package/{dsh-ecosystem-spec → tui-profile}/protocols/profile-definitions.js +0 -0
  677. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel-http.d.ts +0 -0
  678. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel-http.js +0 -0
  679. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel.d.ts +0 -0
  680. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel.js +0 -0
  681. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-contributions.d.ts +0 -0
  682. /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-contributions.js +0 -0
  683. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/decision-events-v1alpha1.json +0 -0
  684. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/scene-v1alpha1.json +0 -0
  685. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/settings-section-v1alpha1.json +0 -0
  686. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/tui-channel-v1alpha1.json +0 -0
  687. /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/workspace-provider-v1alpha1.json +0 -0
  688. /package/{dsh-ecosystem-spec → tui-profile}/registry/host-descriptor.tui.example.json +0 -0
  689. /package/{dsh-ecosystem-spec → tui-profile}/registry/permissions-0.1.json +0 -0
  690. /package/{dsh-ecosystem-spec → tui-profile}/schemas/conformance-claim.schema.json +0 -0
  691. /package/{dsh-ecosystem-spec → tui-profile}/schemas/effect-ledger-record.schema.json +0 -0
  692. /package/{dsh-ecosystem-spec → tui-profile}/schemas/host-descriptor.schema.json +0 -0
@@ -1,9 +1,9 @@
1
- # 插件开发指南(已并入 spec)
1
+ # 插件开发指南(口径见 TUI Profile)
2
2
 
3
3
  [文档索引](README.md) · [English](plugins.en.md)
4
4
 
5
- > 本文档已与 dsh-ecosystem-spec 的准入规范整合,请阅读:
6
- > [终端交互生态插件准入与开发指南](https://github.com/T-Auto/dsh-ecosystem-spec/blob/main/docs/plugin-admission-and-development.md)
5
+ > 本文档已与仓内 TUI Profile(`tui-profile/`)的准入规范整合,请阅读:
6
+ > [终端交互生态插件准入与开发指南](../tui-profile/docs/plugin-admission-and-development.md)
7
7
 
8
8
  以下生态入口与接缝稳定性分级仅为速览保留;正式状态与兼容性协定
9
9
  以准入与开发指南为准。
@@ -11,7 +11,7 @@
11
11
  ## 生态入口
12
12
 
13
13
  - **接口与兼容性协定 / 插件开发指南**:
14
- [终端交互生态插件准入与开发指南](https://github.com/T-Auto/dsh-ecosystem-spec/blob/main/docs/plugin-admission-and-development.md)
14
+ [终端交互生态插件准入与开发指南](../tui-profile/docs/plugin-admission-and-development.md)
15
15
  (准入规范、接缝、契约、验证清单)。
16
16
  - **生态组织**:
17
17
  [dsh-tui-ecosystem](https://github.com/dsh-tui-ecosystem)
@@ -25,17 +25,25 @@
25
25
  ## 接缝稳定性参考
26
26
 
27
27
  按当前实现成熟度给出的**非正式**分级,帮助插件作者评估投入;正式
28
- 状态与兼容性协定以[准入与开发指南](https://github.com/T-Auto/dsh-ecosystem-spec/blob/main/docs/plugin-admission-and-development.md)为准:
28
+ 状态与兼容性协定以[准入与开发指南](../tui-profile/docs/plugin-admission-and-development.md)为准:
29
29
 
30
30
  | 分级 | 接缝 |
31
31
  | --- | --- |
32
32
  | 稳定候选(形态冻结;如有破坏性变更,先在次版本弃用告警再移除) | 六 设置区块 · 八 全屏场景 · 十 托管对话框 · 十一 状态行 · 十二 键盘快捷键 · 十三 条目渲染器 |
33
- | 实验性(仍可能随 dsh-std / 准入规范演进调整) | 九 决策事件 · toast 通知(`ctx.tuiToast`,新增) |
33
+ | 实验性(仍可能随 dsh-std / TUI Profile 演进调整) | 九 决策事件 · toast 通知(`ctx.tuiToast`,新增) · **侧栏 Panel(`ctx.tuiPanels`,full 面板与 compact 行,实验性)** |
34
34
  | 跟随上游(稳定性由 cordis / dsh 官方机制决定) | 一 会话事件 · 二 官方 prompt 槽位 · 三 技能打包 · 四 主题 · 五 system prompt 段 · 七 profile 组合 |
35
35
 
36
36
  另:
37
37
 
38
38
  - `@deepseek-harness-tui/dsh-tui/api`(纯类型入口)为实验性公开面。
39
+ - **侧栏 Panel(实验性,§18)**:`ctx.tuiPanels.register({ apiVersion: 1,
40
+ id, title, icon?, component | compact })` 向右侧栏注册面板(宿主自动加
41
+ `<pluginId>:` 前缀;每插件 ≤4 个、全局 ≤32 个;`open()` 限速每 5s 一次;
42
+ 连续崩溃 3 次本会话禁用)。full 面板(`component`)与 compact 行
43
+ (`compact`,1–3 行紧凑呈现)两个渲染槽中,**本阶段 compact 仅校验
44
+ descriptor、尚不挂载渲染**;`sendToChat` 需要 `panels.chat.attach`
45
+ 授权(后续版本),当前恒返回 `false` 并提示一次。类型见
46
+ `@deepseek-harness-tui/dsh-tui/panels` 与 `./api`。
39
47
  - `@deepseek-harness-tui/dsh-tui/test-utils` 子路径与
40
48
  `ctx.tuiPluginHost.grants.corrupt` 已随 adapter 分层重构(#705)移除。
41
49
  - `grants` 收窄为 `HostGrantFacade`,迁移细节见该 PR。
@@ -46,7 +46,12 @@ DSH_TUI_THEME
46
46
  ## Switching themes
47
47
 
48
48
  - `/theme` opens the picker, with `auto` and the built-ins before static JSON
49
- and plugin themes.
49
+ and plugin themes. On terminals at least 76 columns wide a live preview sits
50
+ beside the list: the **focused row's** palette renders a code block, a
51
+ code-operation tool card and a diff, so moving the cursor compares syntax,
52
+ diff and tool-card colors before Enter applies anything. Narrower terminals
53
+ stack the preview under the list, and it yields entirely when the height
54
+ budget is short — the list and its focused row always stay visible.
50
55
  - `/theme <name>` switches directly to a static or runtime plugin theme.
51
56
  - `/theme status` shows the current theme and persistence location.
52
57
 
@@ -140,7 +145,7 @@ export function apply(ctx: Context): void {
140
145
  - On an older profile without `tuiThemes`, the plugin degrades silently and
141
146
  static themes remain unaffected.
142
147
 
143
- See the [Plugin Admission and Development Guide](https://github.com/T-Auto/dsh-ecosystem-spec/blob/main/docs/plugin-admission-and-development.md)
148
+ See the [Plugin Admission and Development Guide](../tui-profile/docs/plugin-admission-and-development.md)
144
149
  for the full key list, legacy-key mapping, and registration contract.
145
150
 
146
151
  ## Color formats
@@ -41,7 +41,10 @@ DSH_TUI_THEME
41
41
  ## 切换主题
42
42
 
43
43
  - `/theme`:打开主题选择器。`auto` 与内置主题在前,
44
- 静态 JSON 主题和插件主题在后。
44
+ 静态 JSON 主题和插件主题在后。宽终端(≥76 列)在列表右侧并排一列实时预览:
45
+ 用**焦点行**主题的调色板实渲染代码块、代码操作工具卡与 diff——移动光标即可
46
+ 比较语法色、diff 色与工具卡底色,Enter 才真正应用;窄终端预览堆叠在列表
47
+ 下方,浮层高度不够时整块让位,列表与焦点行始终完整。
45
48
  - `/theme <name>`:直接切换静态或运行时插件主题。
46
49
  - `/theme status`:显示当前主题与持久化位置。
47
50
 
@@ -141,7 +144,7 @@ export function apply(ctx: Context): void {
141
144
  - 旧 profile 没有 `tuiThemes` 时插件静默降级,静态主题不受影响。
142
145
 
143
146
  完整的可覆盖键、旧键映射与注册契约见
144
- [终端交互生态插件准入与开发指南](https://github.com/T-Auto/dsh-ecosystem-spec/blob/main/docs/plugin-admission-and-development.md)。
147
+ [终端交互生态插件准入与开发指南](../tui-profile/docs/plugin-admission-and-development.md)。
145
148
 
146
149
  ## 颜色格式
147
150
 
@@ -36,21 +36,41 @@ dsh-tui
36
36
 
37
37
  ### 1.2 What you see on first launch
38
38
 
39
- 1. **Pixel whale header** (~3.4 s intro animation, then frozen): `✦ dsh-TUI` version,
40
- `DEEPSEEK / HARNESS` big text, current model and effort, working directory, and a
41
- **startup hint** (`/model` · `/help` · `Tab`). Narrow terminals climb down a ladder (see 5.1).
42
- When the dsh engine is out of the verified range, a **⚠ version-drift warning**
43
- appears with the align command.
44
- 2. **Bottom status bar**: working-status row, context bar, TPS gauge, and other live
39
+ 1. **First-run guide** (whenever the guide has not been completed yet — a fresh install, or a
40
+ guide that bumped its own version): a four-step wizard — **API key & connectivity → language &
41
+ theme → model & workspace → shortcuts & moves**. `←/→` change step, `Tab` switches between the
42
+ two panes, `↑/↓` move the selection, `Enter` runs the step, `Esc` skips. **Skipping is not
43
+ recorded** (you are asked again next launch); the last step only counts as finished — and writes
44
+ the marker — when `Enter` lands on a **shortcut card** (on a command card `Enter` tries the command).
45
+ Re-run it any time with `/setup`.
46
+ 2. **Launchpad** (the first screen of an **ordinary launch** — no `--resume`, no workspace target,
47
+ no prompt; `DSH_TUI_NO_LAUNCHPAD=1` skips it entirely): the pixel-whale header (`✦ dsh-TUI`
48
+ version, `DEEPSEEK / HARNESS` big text, current model and effort, working directory, and a
49
+ **startup hint**; the header here is **frozen from the first frame** — the intro animation is
50
+ left to the transcript header once you are in the chat), a **real input box** underneath
51
+ (type your first sentence here; Enter carries it into the chat screen), and a row of
52
+ **quick actions** (v7 four slots: `Continue "…"` — shortcut `Alt+R`, the slot is simply absent
53
+ when there is nothing to continue · `Sessions & workspaces` — history and workspaces are the
54
+ same `/home` screen, merged into one entry · `Settings` · a **conditional slot** — `Background
55
+ jobs` while jobs are running, `Update available` when a newer release is detected, `Feed us a
56
+ star` once usage milestones are reached and you never starred, falling back to `Help`).
57
+ Move with `↑/↓` or `Tab`, activate with `Enter`, or just click;
58
+ short terminals drop whole blocks (quick actions → hint line → input only) and narrow ones
59
+ climb down the ladder in 5.1. Full screens opened from this screen (sessions & workspaces /
60
+ settings / background jobs / the first-run guide) render **above the launchpad** — `Esc` closes
61
+ them back onto the launchpad (draft, params and focus intact); the only way off the launchpad
62
+ into the chat is submitting a non-command line with Enter. When the dsh engine is out of the verified range, a
63
+ **⚠ version-drift warning** appears with the align command.
64
+ 3. **Bottom status bar**: working-status row, context bar, TPS gauge, and other live
45
65
  indicators (see [5. UI and status bar](#5-ui-and-status-bar)).
46
- 3. **Startup hint line**: one fixed line under the logo:
66
+ 4. **Startup hint line**: one fixed line under the logo:
47
67
  `提示:<随机小技巧> · /tips 更多技巧` — changes each launch.
48
68
  `/tips` opens the full tips panel (`↑/↓` scroll, `Esc` close).
49
- 4. **First normal launch** (no `--resume`, no workspace, no prompt) enters the
50
- **session manager** to pick a workspace. `~/.dsh-tui/home.json` records "seen"
51
- so later launches go straight to chat. Open it any time with `/resume`, `/home`,
52
- `/agentview`, `/bg`, or `⌸` at the start of the input line.
53
- 5. Type `/` for the command menu, `?` for the shortcut help.
69
+ 5. **First normal launch** (no `--resume`, no workspace, no prompt) reaches the
70
+ **session manager** after the launchpad to pick a workspace. `~/.dsh-tui/home.json`
71
+ records "seen" so later launches go straight to chat. Open it any time with `/resume`,
72
+ `/home`, `/agentview`, `/bg`, or `⌸` at the start of the input line.
73
+ 6. Type `/` for the command menu, `?` for the shortcut help.
54
74
 
55
75
  ### 1.3 Core mental model
56
76
 
@@ -92,7 +112,7 @@ dsh-tui
92
112
 
93
113
  | Key | Action |
94
114
  |---|---|
95
- | `Ctrl+R` (⌘R) | history search; press again or `↓` for next match; `Enter` fills the input |
115
+ | `Ctrl+R` (⌘R) | history search (current project only); press again or `↓` for next match; `Enter` fills the input |
96
116
  | `/` (transcript) | full-transcript search; `n` / `N` jump (only in Ctrl+O expanded state) |
97
117
 
98
118
  ### 2.4 Input editing
@@ -104,8 +124,9 @@ dsh-tui
104
124
  | `Home` / `End`, `Ctrl+E` | logical line start / end (`Ctrl+A` now opens the subagent panel, see §2.7) |
105
125
  | `Ctrl+U` / `Ctrl+K` | delete before the cursor (to line start) / after the cursor (to line end) |
106
126
  | `Ctrl+W` | delete the previous word |
127
+ | `Ctrl+Z` | undo the draft's last word-level edit (caret and images included); draft-only — a submit or a history recall (`Ctrl+R`/`↑`) ends it, and it is unrelated to the `Esc Esc` conversation/message rewind; remappable via `/settings` |
107
128
  | `Backspace` / `Delete` | delete previous / next character; **with a selection, delete the whole selection** |
108
- | `↑` / `↓` | move between lines when multi-line; browse input history when single-line (last 200 entries, kept across restarts) |
129
+ | `↑` / `↓` | move between lines when multi-line; browse input history when single-line (scoped per project, last 200 entries each, kept across restarts; history from before the upgrade shows in every project) |
109
130
  | `Ctrl+V` (⌘V) / `Alt+V` | paste: text / file path (images auto `@`-referenced) / clipboard bitmap (`[Image #N]` attachment); use `Alt+V` when the terminal swallows `Ctrl+V` |
110
131
  | `Ctrl+G` | edit the input in the `$VISUAL`/`$EDITOR` external editor (`:cq` keeps the draft; prompts you to configure when unset) |
111
132
  | `Ctrl+Shift+E` (⌘⇧E) | open the **full-screen draft editor** (or click `⛶` at the end of the input line): line numbers, current line highlighted, `Enter` newline, `Ctrl+Enter` send, `Esc` collapse (draft kept); off at `/settings → 全屏草稿编辑` |
@@ -127,6 +148,7 @@ Unrecognized keys are ignored, `Esc` does nothing, clear with `Ctrl+C`/`dd`.
127
148
  | `Shift+Tab` | cycle session mode (default → plan → full access); mounted third-party permission presets follow in registry order at the end of the cycle |
128
149
  | `Shift+↑` | message selection mode (`↑/↓` move, `Enter` expand one, `Esc` exit) |
129
150
  | `Ctrl+T` (⌘T) | open the trace scene (same as `/trace`) |
151
+ | `Alt+R` | on the launchpad, **continue the most recent session** (same as the `Continue "…"` entry; bound only while the launchpad is up, no-op when there is nothing to continue). Remappable in `/settings` |
130
152
  | `Alt+S` | one-key star (same as `/star`; the splash's star line is clickable too). Remappable in `/settings`; a short "the whale girl catches the star" celebration plays on success. Replay it any time with `DSH_TUI_STAR_MODAL=1 dsh-tui`; preview the splash star line with `DSH_TUI_STAR_LINE=1 dsh-tui` (preview env vars, ledger untouched) |
131
153
 
132
154
  ### 2.6 Mouse (fullscreen mode; drag/double-click/triple-click select-and-copy)
@@ -173,6 +195,8 @@ A session taken by another terminal shows red with `占用 pid <pid>`
173
195
  and can't be entered; it recovers after that terminal exits.
174
196
  Fixed items live in `~/.dsh-tui/session-pins.json`.
175
197
  The workspace menu has four items: edit / new here / rename / remove from list (**removes the entry only**, directory and session log stay).
198
+ After removal, a directory with past sessions remains in the rail as "History only"; the heading counts registrations and history directories separately, and a success notice confirms the removal.
199
+ A "History only" row offers edit and new here; rename and remove apply only to registered workspaces.
176
200
 
177
201
  **Image preview** (open by clicking `[Image #N]` in the input or a thumbnail in the transcript)
178
202
 
@@ -189,6 +213,7 @@ The workspace menu has four items: edit / new here / rename / remove from list (
189
213
  - No IDE installed/connected → skipped automatically, nothing else affected (see [vscode.md](vscode.md)).
190
214
 
191
215
  **History search (Ctrl+R)**
216
+ Lists only inputs from the current project (the session's working directory), plus unscoped history from before the upgrade.
192
217
  `↑/↓` select · press `Ctrl+R` again or `↓` for next · `Enter` fill · `Esc`/`Ctrl+C`/`Ctrl+D` cancel
193
218
 
194
219
  **Trace scene (Ctrl+T / /trace)**
@@ -219,9 +244,78 @@ changes save automatically, `Esc` exits
219
244
  **Double-press Esc time-travel (rewind)**
220
245
  List `↑/↓` + `Enter` to confirm · confirm page `Enter` rewind / `Esc` back · only `Esc` responds while a plugin decision is pending
221
246
 
247
+ ### 2.8 Side panel
248
+
249
+ `Ctrl+B` (remappable under `/settings` → `Shortcuts`) expands a panel column to the right of the
250
+ chat: a capsule tab bar on top, the active panel in the middle, a key-hint row at the bottom, and a
251
+ one-column seam between the two surfaces.
252
+
253
+ - **Three states**: **split** (chat ≈ 68% plus the panel; `+`/`-` resize by 4 columns), **collapsed**
254
+ (the layout is byte-identical to before), **zoom** (the panel takes over and the chat column keeps
255
+ its minimum width).
256
+ - **When it splits**: `fullscreen` plus a content width of ≥93 columns (≈97 terminal columns at the
257
+ default page margin); narrow terminals, inline mode and the expanded draft editor fall back —
258
+ `/jobs` and friends keep their full-screen panels there, while `Ctrl+B` and `/panel` do not split at all.
259
+ - **Focus model**: one keyboard focus at a time; while the panel holds it, its frame and the seam
260
+ brighten together. `Ctrl+B` is three-state: closed → open and focus the panel; open but
261
+ chat-focused → focus the panel; panel-focused → close and return to the chat.
262
+ - **Panel keys**: `Esc` steps back to the input (the panel stays open) · `←`/`→` or `[`/`]` switch
263
+ panels · `1`-`9` jump to the Nth · `z` or `Alt+Z` zoom · `+`/`-` resize (`+` widens the panel by 4 columns) · `↑`/`↓`/`PgUp`/`PgDn`
264
+ go to the active panel (jobs selects and scrolls with them). Keys the panel does not take never
265
+ reach the chat, while `Ctrl+C`/`Ctrl+D`/`Ctrl+L` and the other Ctrl combos still do.
266
+ - **Mouse**: click the chat column to focus the chat, click the panel column to focus the panel;
267
+ clicking a tab on the bar switches to that panel (hover highlights it), and the `⤢` on its right
268
+ edge blows the active panel up to the full screen. The panel column is excluded from
269
+ drag-selection.
270
+ - **Panels**: `todo` (Goals/Todos — with a split it moves here from above the input), `jobs`
271
+ (background jobs; clicking a job card in the transcript focuses that job here), `agents`
272
+ (subagent dashboard and detail: Enter opens the detail, Esc steps back), `companion`
273
+ (the pet — off by default; add `companion` to `sidePanel.panels` to enable: its mood follows
274
+ the session, click for a heart, Enter to poke; the `dsh-tui.companion.skin` setting offers
275
+ deepy (default, the fan-made deepy whale kit) or whale), `info` (model, effort, mode,
276
+ permissions, context usage, cache hit, tokens, TPS, spend, working dir, session title and id),
277
+ `trajectory` (the session's wake band + ledger + inspector: ↑/↓ select, Enter expands, Tab
278
+ switches to the hotspot view — ←/→ always stay the host's panel-cycling keys), `workspace`
279
+ (working-directory overview; Enter opens the full workspace home).
280
+ - **Pet (companion) details**: the pet sits at the BOTTOM of the panel with a status area above
281
+ it (mood · subagent/session counts · current animation). Interactions: clicking its left/right
282
+ half pokes it (poke-left/right), three rapid clicks tickle it, **holding and dragging walks it
283
+ around the whole panel with the pointer (release springs it back home)**, hovering makes it look
284
+ toward the pointer; Enter also pokes. Job-done / interrupted notices are spoken by a speech
285
+ bubble above its head — while the pet panel is the ACTIVE panel the toast above the input box
286
+ does NOT repeat it (toasts return on any other panel; error-colored notices always toast). Moods
287
+ are debounced: fast tool calls no longer flicker the animation (leaving the working state takes
288
+ ~1.5s to settle; approvals and errors still preempt instantly). Subagent/session counts switch
289
+ the music / conducting / building ensemble animations. When the column is too narrow even for
290
+ the compact form the pet hides, leaving one line: "So cramped! {{name}} is hiding for now~".
291
+ The `dsh-tui.companion.skin` setting picks one of three: `deepy` (default, the fan-made whale
292
+ kit), `whaleGirl` (the whale-girl sticker pack — 22 animations that react to pokes, tickles and
293
+ drags, plus its own hearts and thumbs-up) or `whale` (the splash's pixel whale). **On terminals
294
+ with an image protocol (kitty/sixel) whaleGirl renders at native 240px with all 267 frames**
295
+ (transparent float, decoded on demand); without one it falls back to the character-art form.
296
+
297
+ | Subcommand | Effect |
298
+ |---|---|
299
+ | `/panel` | Open the panel picker (↑↓ to choose, Enter opens and focuses) |
300
+ | `/panel toggle` | Really open / really close (closing returns focus to the chat) |
301
+ | `/panel focus` | Open and focus the panel |
302
+ | `/panel zoom` | Open and zoom the active panel |
303
+ | `/panel <id>` | Open a panel by id: `todo` / `info` / `trajectory` / `jobs` / `agents` / `workspace` / `companion` (completion lists the enabled ids) |
304
+
305
+ - Views that used to be full-screen-only now also live in the sidebar: with the split up and the
306
+ matching panel enabled, `Ctrl+T` / `/trace` open the trajectory panel and `/home` opens the
307
+ workspace panel; the `⤢` on the panel bar puts them back on the whole screen (`⤢` is the mouse
308
+ path — the keyboard equivalents are each view's own full-screen shortcut: `Ctrl+T` trajectory,
309
+ `Ctrl+A` agents, `/jobs` jobs, `/home` the workspace home).
310
+ - Settings: the **Side panel** group in `/settings`, or
311
+ `dsh-tui.sidePanel.{splitEnabled,open,ratio,panels}` (see the
312
+ [configuration reference](configuration.en.md#tui-configuration)).
313
+ - **tmux users**: `Ctrl+B` is tmux's default prefix, so tmux swallows it before the TUI sees it —
314
+ remap `sidePanel` to another combo (for example `alt+b`) under `/settings` → `Shortcuts`.
315
+
222
316
  ## 3. Command reference
223
317
 
224
- The command menu = built-in commands (50) + DSH registry commands (`/plan` `/goal` etc.) + the skill catalog
318
+ The command menu = built-in commands (58, aliases included) + DSH registry commands (`/plan` `/goal` etc.) + the skill catalog
225
319
  (completion only, hidden from the `/help` menu). `/lang` switches the UI and command descriptions between English and Chinese.
226
320
 
227
321
  ### 3.1 Session
@@ -260,6 +354,7 @@ The command menu = built-in commands (50) + DSH registry commands (`/plan` `/goa
260
354
  | `/agents` | none | subagent list for this session |
261
355
  | `/jobs` | none | background-task panel: status/runtime/exit-code tracking, `↑/↓` select, `k` stop; while open, `Esc` **closes only the panel** and won't interrupt the turn (close the panel first, then `Ctrl+C`) |
262
356
  | `/settings` | none | open the plugin settings editor (namespace read/edit) |
357
+ | `/setup` | none | re-run the first-run guide (API key / language+theme / model+workspace / shortcuts) — same screen as the very first launch |
263
358
  | `/help` | none | shortcut + command help menu (`?` entry) |
264
359
 
265
360
  ### 3.3 Model / display
@@ -269,13 +364,14 @@ The command menu = built-in commands (50) + DSH registry commands (`/plan` `/goa
269
364
  | `/model` | none | model selector; **switching = fork the session** (history kept, only routing changes; a session nobody has typed into records no branch, keeping automatic titles for its first prompt), choice persisted to `~/.dsh-tui/model.json` |
270
365
  | `/effort` | `status` / `<id>` | reasoning effort: no-arg slider (`←/→` adjust); `status` current level; `<id>` set directly. Persisted to `~/.dsh-tui/effort.json`; new-session start level follows /settings `effortDefault` (§5.3) |
271
366
  | `/thinking` | none | extended-thinking display toggle (thinking expands item by item while streaming) |
272
- | `/tokens` | none | token usage + context percentage |
367
+ | `/tokens` | none | three separate figures, never two different quantities side by side: **this request**'s upload (input + cache read + cache write — the harness's four buckets are disjoint), the **session totals** (uncached input / output / cache read / cache write), and **context occupancy** |
273
368
  | `/activity` | `frames <名>` / `status` | working-status animation: no-arg selector, `frames <名>` sets directly (includes `random`), default `moon8`. Persisted to `~/.dsh-tui/working-activity.json` |
274
369
  | `/preset` | `<id>` / `status` | agent preset: `standard` / `ptc` (old 0.1.1 name `code`) / `minimal` / `cordis` / **Liangshen mode `liangshen`**; **cannot switch an already-started session**. Persisted to `~/.dsh-tui/agent-preset.json` |
275
370
  | `/theme` | `<名字>` / `status` | theme: no-arg selector; `<名字>` switch directly; `status` current theme (auto appends the OSC 11 result). Persisted to `~/.dsh-tui/theme.json` |
276
371
  | `/color` | no-arg / `<名>` / `status` / `reset` | session accent color: no-arg opens the palette (`↑/↓` pick, `Enter` apply); `<名>` set directly; `reset` back to default. Colors `red/orange/yellow/green/blue/purple/pink/cyan`, saved per session |
277
372
  | `/lang` | `en` / `zh` / `status` | hot-switch UI language. Priority: `DSH_TUI_LANG` > profile config (legacy: settings.yaml user layer > cordis.yml) > persisted |
278
373
  | `/vim` | none | **vim editing mode toggle** (see §2.4): input switches to vim keys, per-session, not persisted |
374
+ | `/panel` | `toggle` / `focus` / `zoom` / `<panel id>` | side panel: toggle / focus / zoom / switch panels; states and subcommands in §2.8 |
279
375
 
280
376
  ### 3.4 Account / policy / extensions
281
377
 
@@ -367,7 +463,7 @@ Full-screen view of the whole session timeline (doesn't pollute scrollback); key
367
463
  - `/model`: selector. **Switching = fork the session** (history kept, only routing changes, the old session stays in `/resume`);
368
464
  persisted to `~/.dsh-tui/model.json`.
369
465
  - Switching is rejected mid-turn.
370
- - `/preset` options: `standard` (default full features), `ptc`, `minimal` (the kernel's Minimal preset: one persistent-shell tool only, no compaction, no plan mode),
466
+ - `/preset` options: `standard` (default full features), `ptc`, `minimal` (the kernel's Minimal preset: one persistent-shell tool only, no compaction, no plan mode — and therefore no compaction and no tool-result pruning, so a long session can hit the context limit and `/compact` plus questions are unavailable; Help and `/` completion mark the command, and entering the preset says so once),
371
467
  `cordis`, `liangshen` (Liangshen mode).
372
468
  **A session that already has messages can't switch** (blank-only): the choice only becomes the default for the next `/new`.
373
469
  This is a **kernel agent preset** deciding which tools the model can use; `/settings → Minimal UI` (极简界面) on the display side is unrelated.
@@ -389,7 +485,7 @@ Keys are in §2.7. Key points:
389
485
  - `/skills` browses the skill catalog; a direct-call skill joins the command menu as `/name` (dsh-TUI ships no generic skills).
390
486
  - `/plan` `/goal` `/feedback` `/permission` come from the DSH registry, merged into the `/` menu.
391
487
  - **Goals/Todos panel appears automatically**: when the model writes a goal/todo, it renders above the input
392
- (🎯 goal + phase badge + tree todo), no action needed.
488
+ (🎯 goal + phase badge + tree todo), no action needed; with a split it moves to the `todo` panel on the right (see §2.8).
393
489
 
394
490
  ### 4.9 MCP / Workspace / other
395
491
 
@@ -445,12 +541,18 @@ An empty session shows the whale logo area at the top (scrolls away with the con
445
541
  **Row 1 — context segment bar** (`/settings → statusBar.contextBar`, default on)
446
542
 
447
543
  - Colored by content type (system / prompt / assistant / thinking / tools).
544
+ - Segment token counts are a **local estimate** (CJK/full-width ≈1.4 chars/token, ASCII ≈4, other scripts ≈2): they describe what the bar is made of and **never** feed the occupancy total — that comes from the ctx reading below.
448
545
  - The only text on the bar is the right-edge reading `13k/64k 19.5%` (narrow screens show only `19.5%`).
449
546
  - The reading colors by usage: <80% gray-blue, **≥80% amber, ≥95% red**.
450
547
  - Hover the whole bar for the legend: color block + name + token count (narrow screens shorten the names).
451
548
 
452
549
  **Row 2 — status field row** (each field toggled separately, see `/settings`)
453
- - left group: model → TPS → thinking → mode → ctx → cache hit rate → tokens (`1.2k→340` input→output) →
550
+ - left group: model → TPS → thinking → mode → ctx (**context occupancy** `19.5% (13k/64k)`: the SAME
551
+ value the segmented bar, the working line's pressure prefix, `/tokens`, `/status` and the context-low
552
+ warning read, sourced from the harness's own `contextPressure` projection — `projectedTokens ??
553
+ pressureTokens`, i.e. what the NEXT request would occupy, so a compaction or a rejected request shows
554
+ up immediately instead of waiting for one successful request; a bare `cordis.yml` composition without
555
+ the meter falls back to the last request's billed usage) → cache hit rate → tokens (`1.2k→340` input→output) →
454
556
  cost (`≈¥0.05 谷`, **a session estimate** that includes subagent usage, priced per
455
557
  each agent's model × peak/idle × cache components; hover splits main ¥ / subagent ¥ / unpriced N tok;
456
558
  unofficial or unlisted models show tokens only and are marked unpriced;
@@ -462,7 +564,7 @@ An empty session shows the whale logo area at the top (scrolls away with the con
462
564
 
463
565
  **Row 3 — hints / working activity + mini trace bar**
464
566
  - Idle shows `? for shortcuts`, running `esc to interrupt`, selecting `esc to return to input`.
465
- - Idle also shows the working-activity animation (`statusBar.activity` on), context ≥80% amber, ≥95% red.
567
+ - Idle also shows the working-activity animation (`statusBar.activity` on), context ≥80% amber, ≥95% red (the same occupancy reading as the ctx field).
466
568
  - Right-side **mini trace bar MiniWake** (`statusBar.trajectory`, default off): session projected as density glyphs, color per channel, failures red;
467
569
  degrades/hides on narrow screens.
468
570
 
@@ -473,7 +575,7 @@ speed **≥50 green / ≥20 yellow / <20 red**.
473
575
 
474
576
  `/settings` opens the plugin settings editor; **changes save automatically**, `Esc` exits directly.
475
577
  On 0.1.7 the dsh-tui block writes to the active profile's `cordis.patch.yml`; older hosts use the settings.yaml user layer. Most settings apply live; fullscreen and image-preview need `/restart`.
476
- Common items below, full list on the /settings screen. Most topics (**Appearance**, **Splash**, **Conversation**, **Rendering**) lay their fields right on the root page under small headers — no subpage round-trip to tweak them; only the genuinely block-like domains — **Formula**, **Status bar**, **Shortcuts** — keep a subpage behind one root-page row:
578
+ Common items below, full list on the /settings screen. Most topics (**Appearance**, **Splash**, **Conversation**, **Rendering**) lay their fields right on the root page under small headers — no subpage round-trip to tweak them; only the genuinely block-like domains — **Formula**, **Status bar**, **Side panel**, **Shortcuts** — keep a subpage behind one root-page row:
477
579
 
478
580
  | Field | Notes |
479
581
  |---|---|
@@ -488,6 +590,7 @@ Common items below, full list on the /settings screen. Most topics (**Appearance
488
590
  | whaleGirl | maid portrait (default off): swaps the header's pixel whale for the author-drawn maid as a **real raster** (Kitty/Sixel); falls back to the pixel whale without graphics support |
489
591
  | diffLayout | Edit/Write diff layout: auto (two columns ≥110 cols) / split / unified |
490
592
  | thinkingFold | thinking block: preview (2-3 line preview + folded when settled) / full (expanded to end of turn) |
593
+ | jobGroupFold | consecutive background-job cards: auto (default — runs of 2+ group, a settled run of 3+ folds into its summary line) / always (any run of 2+ folds right away, live jobs included) / never (never folds on its own, every card stays). The group header summarizes status and total time; click it or press Ctrl+O to expand |
491
594
  | effortDefault | default reasoning effort: auto / off / low / high / max. Start level for new sessions (details below) |
492
595
  | smoothStreaming | smooth streaming output (default on): replies/thinking/tool-card text reveal at ~30fps; replay/history always direct |
493
596
  | toolBackground | tool-card background emphasis: none / subtle / strong |
@@ -35,17 +35,35 @@ dsh-tui
35
35
 
36
36
  ### 1.2 首次启动你会看到
37
37
 
38
- 1. **像素鲸鱼顶栏**(约 3.4 秒开场动画,之后定格):`✦ dsh-TUI` 版本号、`DEEPSEEK / HARNESS` 大字、
39
- 当前模型与 effort、工作目录,及一行**启动提示**(`/model` · `/help` · `Tab` 补全);终端变窄时按阶梯降级(见 5.1)。
38
+ 1. **首次引导**(在"还没完成过引导"时出现:首次安装,或引导本身升级过版本):四步向导 ——
39
+ **API Key 与连通性 → 语言与主题 → 模型与工作区 → 快捷键与招式**。
40
+ `←/→` 换步骤、`Tab` 在两组面板间切、`↑/↓` 移动选择、`Enter` 执行这一步、`Esc` 跳过;
41
+ **跳过不记账**(下次启动还会问),最后一步要在**键位卡**上按 `Enter` 才算"完成"并写入记账文件
42
+ (焦点落在命令卡上时 `Enter` 是"试一下")。之后随时可用 `/setup` 重跑。
43
+ 2. **落地页**(**普通启动**的第一屏:没带 `--resume`、没指定工作区、也没带首句提示词;
44
+ `DSH_TUI_NO_LAUNCHPAD=1` 可整体跳过):像素鲸鱼顶栏(`✦ dsh-TUI` 版本号、
45
+ `DEEPSEEK / HARNESS` 大字、当前模型与 effort、工作目录,及一行**启动提示**;
46
+ 这一屏的头部**直接定格**——开场动画留给进入对话后的转录区顶部),
47
+ 下面是一个**真输入框**(第一句话在这里打,**回车直接发送**)与框下一行**参数行**
48
+ (模型 · 思考深度 · 模式 · 权限——四段都可点,点开对话页同款选择器就地换值),
49
+ 隔一行留白再一行**快捷入口**(第七版四格:`继续「…」`(快捷键 `Alt+R`,没有可继续会话时整格不画)·
50
+ `会话与工作区`(历史会话与工作区本就是 `/home` 同一个界面,合并成一个入口)· `设置` ·
51
+ **条件位**——有后台任务在跑显 `后台任务`、检测到新版本显 `有新版本`、用量到档且没 star 过显
52
+ `投喂一颗 Star`,都不成立兜底 `帮助`)。
53
+ 入口与参数段用 `↑/↓` 或 `Tab` 移焦点、`Enter` 激活,也可以直接点;终端变矮时按"整块撤"的顺序降级
54
+ (快捷入口 → 提示行 → 只留输入框),变窄时按 5.1 的阶梯降级。
55
+ 从这一屏打开的整屏界面(会话与工作区 / 设置 / 后台任务 / 引导向导)都**盖在落地页之上**,
56
+ `Esc` 退出即回到落地页(草稿、参数、焦点原样保留);**离开落地页进对话页的唯一方式是
57
+ 回车提交一条非命令消息**。
40
58
  dsh 引擎版本不在验证范围时会出现 **⚠ 版本漂移警告** 及对齐命令。
41
- 2. **底部状态栏**:工作状态行、上下文进度条、TPS 仪表与各类实时指标(见
59
+ 3. **底部状态栏**:工作状态行、上下文进度条、TPS 仪表与各类实时指标(见
42
60
  [5. 界面与状态栏](#5-界面与状态栏))。
43
- 3. **启动提示行**:Logo 下方固定一行 `提示:<随机小技巧> · /tips 更多技巧`,每次启动随机换一条;
61
+ 4. **启动提示行**:Logo 下方固定一行 `提示:<随机小技巧> · /tips 更多技巧`,每次启动随机换一条;
44
62
  `/tips` 打开完整技巧面板(`↑/↓` 滚动、`Esc` 关闭)。
45
- 4. **第一次普通启动**(没带 `--resume`、没指定工作区、也没带首条提示词)进入**会话管理界面**先挑工作区,
46
- 离开后 `~/.dsh-tui/home.json` 记下"已看过",以后启动直接进对话;
63
+ 5. **第一次普通启动**(没带 `--resume`、没指定工作区、也没带首条提示词)在落地页之后进入
64
+ **会话管理界面**先挑工作区,离开后 `~/.dsh-tui/home.json` 记下"已看过",以后启动直接进对话;
47
65
  界面随时可用 `/resume`、`/home`、`/agentview`、`/bg` 或输入框行首 `⌸` 打开。
48
- 5. 输入 `/` 看命令菜单,按 `?` 看快捷键帮助。
66
+ 6. 输入 `/` 看命令菜单,按 `?` 看快捷键帮助。
49
67
 
50
68
  ### 1.3 核心心智模型
51
69
 
@@ -86,7 +104,7 @@ dsh-tui
86
104
 
87
105
  | 键 | 功能 |
88
106
  |---|---|
89
- | `Ctrl+R`(⌘R) | 历史消息搜索;重复按或 `↓` 到下一匹配;`Enter` 回填输入框 |
107
+ | `Ctrl+R`(⌘R) | 历史消息搜索(只搜当前项目);重复按或 `↓` 到下一匹配;`Enter` 回填输入框 |
90
108
  | `/`(转录态) | 会话全文搜索;`n` / `N` 跳转(仅 Ctrl+O 展开态) |
91
109
 
92
110
  ### 2.4 输入编辑
@@ -98,8 +116,9 @@ dsh-tui
98
116
  | `Home` / `End`,`Ctrl+E` | 逻辑行首 / 行尾(`Ctrl+A` 已改用于子代理面板,见 §2.7) |
99
117
  | `Ctrl+U` / `Ctrl+K` | 删除光标前(至行首)/ 光标后(至行尾) |
100
118
  | `Ctrl+W` | 删除前一个单词 |
119
+ | `Ctrl+Z` | 撤销草稿上一步「词级」编辑(含光标与图片);只作用于草稿,提交或用历史召回(`Ctrl+R`/`↑`)后不再可撤销,与 `Esc Esc` 的会话/消息回溯无关;可经 `/settings` 重映射 |
101
120
  | `Backspace` / `Delete` | 删前一 / 后一字符;**有选区时删除整个选区** |
102
- | `↑` / `↓` | 多行时行间移动;单行时浏览输入历史(最近 200 条,跨重启保留) |
121
+ | `↑` / `↓` | 多行时行间移动;单行时浏览输入历史(按项目隔离,每个项目最近 200 条,跨重启保留;升级前的旧历史各项目都可见) |
103
122
  | `Ctrl+V`(⌘V)/ `Alt+V` | 粘贴:文本 / 文件路径(图片自动 `@` 引用)/ 剪贴板位图(`[Image #N]` 附件);终端拦截 `Ctrl+V` 时用 `Alt+V` |
104
123
  | `Ctrl+G` | 用 `$VISUAL`/`$EDITOR` 外部编辑器编辑输入(`:cq` 保留原稿;未设置变量时提示配置) |
105
124
  | `Ctrl+Shift+E`(⌘⇧E) | 展开**全屏草稿编辑器**(也可点输入行尾 `⛶`):带行号、高亮当前行,`Enter` 换行、`Ctrl+Enter` 发送、`Esc` 收起(草稿还在);`/settings → 全屏草稿编辑` 可关 |
@@ -121,6 +140,7 @@ dsh-tui
121
140
  | `Shift+Tab` | 循环会话模式(默认 → plan 计划 → full 完全访问);挂载了第三方权限预设时,它们按 registry 顺序排在循环末尾 |
122
141
  | `Shift+↑` | 消息选择模式(`↑/↓` 移动,`Enter` 展开单条,`Esc` 退出) |
123
142
  | `Ctrl+T`(⌘T) | 打开轨迹场景(同 `/trace`) |
143
+ | `Alt+R` | 落地页上**继续最近一条会话**(同入口行的「继续「…」」;仅启动页生效,无可继续会话时无动作)。键位可在 `/settings` 改 |
124
144
  | `Alt+S` | 一键 star(同 `/star`;开屏那句求 star 标语整行也可点)。键位可在 `/settings` 改;成功后会演一小段「鲸鱼娘接住星星」的庆祝。想随时看这段庆祝:`DSH_TUI_STAR_MODAL=1 dsh-tui`;想随时看开屏那句求 star 标语:`DSH_TUI_STAR_LINE=1 dsh-tui`(都是预览用环境变量,不动账本) |
125
145
 
126
146
  ### 2.6 鼠标(fullscreen 全屏模式;拖拽/双击/三击即选即复制)
@@ -165,6 +185,8 @@ dsh-tui
165
185
  切换会话只是**停放**——正在跑的回合继续跑;被其他终端占用的会话标红写 `占用 pid <pid>`、点不动,对方退出后恢复。
166
186
  固定项存到 `~/.dsh-tui/session-pins.json`。
167
187
  工作区菜单四项:编辑 / 在此新建 / 重命名 / 从列表移除(**只删登记**,目录与会话日志都保留)。
188
+ 移除后,仍有历史会话的目录会以「仅历史」行留在侧栏;栏头分别统计已登记工作区与历史目录,移除成功也会显示提示。
189
+ 「仅历史」行的菜单只有编辑与在此新建;重命名、移除只适用于已登记工作区。
168
190
 
169
191
  **大图预览**(点输入框里的 `[Image #N]` 或转录缩略图打开)
170
192
 
@@ -178,6 +200,7 @@ dsh-tui
178
200
  - 没装/没连 IDE 时自动跳过、不影响其他功能(详见 [vscode.md](vscode.md))。
179
201
 
180
202
  **历史搜索(Ctrl+R)**
203
+ 只列出当前项目(会话工作目录)的输入,外加升级前未分项目的旧历史。
181
204
  `↑/↓` 选择 · 重复 `Ctrl+R` 或 `↓` 下一项 · `Enter` 回填 · `Esc`/`Ctrl+C`/`Ctrl+D` 取消
182
205
 
183
206
  **轨迹场景(Ctrl+T / /trace)**
@@ -208,9 +231,61 @@ dsh-tui
208
231
  **双击 Esc 时间回溯(rewind)**
209
232
  列表 `↑/↓` + `Enter` 进入确认 · 确认页 `Enter` 回退 / `Esc` 返回 · 插件决策等待中只响应 `Esc`
210
233
 
234
+ ### 2.8 侧栏(Side panel)
235
+
236
+ `Ctrl+B`(可在 `/settings` → `Shortcuts` 重映射)在聊天右侧展开一条侧栏:顶部胶囊标签栏、
237
+ 中间活动面板、底部按键提示行,与聊天之间隔一列中缝。
238
+
239
+ - **三种形态**:**分栏**(split,聊天约 68% + 侧栏,`+`/`-` 每次调 4 列)、**收起**(collapsed,
240
+ 布局与以前逐字节相同)、**缩放**(zoom,面板占满,聊天列保留最小宽度)。
241
+ - **分栏条件**:fullscreen 且内容区 ≥93 列(默认页边距下约合终端 97 列);窄屏、inline 模式、
242
+ 展开全屏草稿编辑器时自动回退——`/jobs` 等命令仍走整屏面板,`Ctrl+B` 与 `/panel` 则不分栏。
243
+ - **焦点模型**:同一时刻只有一处键盘焦点,焦点在右栏时面板边框与中缝一起提亮。`Ctrl+B` 三态:
244
+ 未开 → 打开并聚焦右栏;已开但焦点在聊天 → 聚焦右栏;焦点已在右栏 → 关闭并回聊天。
245
+ - **右栏按键**:`Esc` 一步回到输入框(不关面板)· `←`/`→` 或 `[`/`]` 切换面板 · `1`-`9` 直达第 N 个 ·
246
+ `z` 或 `Alt+Z` 缩放 · `+`/`-` 调宽(`+` 加宽面板,步长 4 列) · `↑`/`↓`/`PgUp`/`PgDn` 交给活动面板(jobs 用它选择与滚动);
247
+ 面板没吃下的键不会再落到聊天,但 `Ctrl+C`/`Ctrl+D`/`Ctrl+L` 等 Ctrl 组合照旧作用于聊天。
248
+ - **鼠标**:点聊天栏把焦点给聊天,点右栏把焦点给面板;点标签栏上的标签直接切到那个面板(悬停会高亮),
249
+ 点右端的 `⤢` 把当前面板放大成整屏;右栏不参与拖拽选字。
250
+ - **面板**:`todo`(Goals/Todos,分栏时从输入框上方迁到这里)、`jobs`(后台任务,点转录里的任务卡
251
+ 会直接定位到该任务)、`agents`(子代理 Dashboard 与详情:Enter 进详情、Esc 逐级返回)、`companion`
252
+ (宠物,默认不启用——在 `sidePanel.panels` 加入 `companion` 开启:跟随会话状态换心情动画,点击
253
+ 比爱心、Enter 戳一戳;皮肤 `dsh-tui.companion.skin` 可选 deepy(默认,非官方粉丝作品 deepy
254
+ 小鲸鱼)或 whale)、`info`(信息栏:模型 / 思考深度 / 工作模式 / 权限 / 上下文占用 / 缓存命中 /
255
+ Token / TPS / 消耗 / 工作目录 / 会话标题与 ID)、`trajectory`(会话轨迹:唤醒带 + 账本 + 检视器,
256
+ ↑/↓ 选择、Enter 展开、Tab 切热点视图;←/→ 恒归侧栏切面板,Tab 才是切视图)、`workspace`
257
+ (工作目录/工作区总览,Enter 打开整屏工作区主页)。
258
+ - **宠物(companion)细节**:宠物锚在面板**底部**,上方是状态区(心情 · 子代理/会话计数 · 当前动作)。
259
+ 互动:点它左半/右半会被戳(poke-left/right)、短窗口连点三次是挠痒(tickle)、**按住拖动它就跟着
260
+ 指针在整个面板里走(松手弹回底部)**、鼠标悬停它会看向指针;Enter 也算戳一戳。后台任务完成、已打断
261
+ 这类提示会由它头顶的对话气泡说出——此时输入框上方**不再重复弹**同一条(宠物面板不是活动面板时
262
+ toast 照旧;错误类通知永远走 toast)。情绪带防抖平滑:快速的工具调用不会让动画来回闪烁(离开工作
263
+ 状态约 1.5s 才切换;审批/出错仍立即抢占)。子代理/会话数会切换配乐/指挥/施工等群像动画。面板窄到
264
+ 连紧凑形态都放不下时它会「躲起来」,只留一行 `好挤呀!{{name}}暂时躲起来了~`。
265
+ 皮肤 `dsh-tui.companion.skin` 三选一:`deepy`(默认,非官方粉丝作品小鲸鱼)、`whaleGirl`(鲸娘
266
+ 表情包,22 个动画,被戳/被挠/被拎起来都有对应反应,独有「冒爱心」「举大拇指」)、`whale`(开屏
267
+ 同款像素鲸)。**鲸娘在有图像协议(kitty/sixel)的终端里按原帧数 240px 像素级渲染**(267 帧全保留、
268
+ 透明悬浮、按需解码),无图像协议自动回退字符画版。
269
+
270
+ | 子命令 | 作用 |
271
+ |---|---|
272
+ | `/panel` | 打开面板选择器(↑↓ 选择、Enter 打开并聚焦) |
273
+ | `/panel toggle` | 真开 / 真关(关闭时焦点回聊天) |
274
+ | `/panel focus` | 打开并聚焦右栏 |
275
+ | `/panel zoom` | 打开并缩放当前面板 |
276
+ | `/panel <id>` | 打开指定面板:`todo` / `info` / `trajectory` / `jobs` / `agents` / `workspace` / `companion`(补全列出已启用的 id) |
277
+
278
+ - 原本只能整屏的视图现在也能进侧栏:分屏开着且对应面板已启用时,`Ctrl+T` / `/trace` 打开轨迹面板、
279
+ `/home` 打开工作区面板;面板栏右端的 `⤢` 再把它们放回整屏(`⤢` 是鼠标入口,键盘等价物就是各自的
280
+ 整屏快捷键:`Ctrl+T` 轨迹、`Ctrl+A` 子代理、`/jobs` 任务、`/home` 工作区主页)。
281
+ - 设置:`/settings` → `侧栏` 分组,或 `dsh-tui.sidePanel.{splitEnabled,open,ratio,panels}`
282
+ (见[配置参考](configuration.md#tui-配置))。
283
+ - **tmux 用户注意**:`Ctrl+B` 是 tmux 的默认前缀键,会被 tmux 截走、送不到 TUI——到
284
+ `/settings` → `Shortcuts` 把 `sidePanel` 换成别的组合(例如 `alt+b`)。
285
+
211
286
  ## 3. 命令全集
212
287
 
213
- 命令菜单 = 内置命令(50 条) + DSH 注册表命令(`/plan` `/goal` 等) + 技能目录
288
+ 命令菜单 = 内置命令(58 条,含别名) + DSH 注册表命令(`/plan` `/goal` 等) + 技能目录
214
289
  (仅补全,`/help` 菜单隐藏)。`/lang` 可切换中英文界面与命令描述。
215
290
 
216
291
  ### 3.1 会话
@@ -249,6 +324,7 @@ dsh-tui
249
324
  | `/agents` | 无 | 本会话子代理列表 |
250
325
  | `/jobs` | 无 | 后台任务面板:状态/运行时长/退出码实时跟踪,`↑/↓` 选择、`k` 停止;面板打开时 `Esc` **只关面板**不打断回合(想中断先关面板再 `Ctrl+C`) |
251
326
  | `/settings` | 无 | 打开插件设置编辑器(命名空间读取/编辑) |
327
+ | `/setup` | 无 | 重跑首次引导向导(API Key / 语言主题 / 模型工作区 / 快捷键),与首次启动是同一个界面 |
252
328
  | `/help` | 无 | 快捷键 + 命令帮助菜单(`?` 入口) |
253
329
 
254
330
  ### 3.3 模型 / 显示
@@ -258,13 +334,14 @@ dsh-tui
258
334
  | `/model` | 无 | 模型选择器;**切换 = fork 会话续聊**(历史保留、仅换路由;还没有人说过话的会话不记分支,保留首个 prompt 的自动标题),选择持久化到 `~/.dsh-tui/model.json` |
259
335
  | `/effort` | `status` / `<id>` | 推理强度:无参滑杆(`←/→` 实时调整);`status` 当前档位;`<id>` 直接设定。持久化 `~/.dsh-tui/effort.json`;新会话起始档看 /settings 的 `effortDefault`(§5.3) |
260
336
  | `/thinking` | 无 | 扩展思考显示开关(流式时思考逐条展开) |
261
- | `/tokens` | 无 | token 用量 + 上下文百分比 |
337
+ | `/tokens` | 无 | 分三段报数,不再并列两个不同量:**本次请求**上传量(input + 缓存读 + 缓存写,harness 的四个桶互斥)、**会话累计**(未缓存输入 / 输出 / 缓存读 / 缓存写)、**上下文占用** |
262
338
  | `/activity` | `frames <名>` / `status` | 工作状态行动画:无参选择器浏览,`frames <名>` 直接设置(含 `random`),默认 `moon8`。持久化 `~/.dsh-tui/working-activity.json` |
263
339
  | `/preset` | `<id>` / `status` | Agent 预设切换:`standard` / `ptc`(旧 0.1.1 名 `code`)/ `minimal` / `cordis` / **梁神模式 `liangshen`**;**已开始的会话不可切换**。持久化 `~/.dsh-tui/agent-preset.json` |
264
340
  | `/theme` | `<名字>` / `status` | 主题:无参选择器;`<名字>` 直接切换;`status` 当前主题(auto 时附 OSC 11 解析结果)。持久化 `~/.dsh-tui/theme.json` |
265
341
  | `/color` | 无参 / `<名>` / `status` / `reset` | 会话强调色:无参打开调色板(`↑/↓` 选、`Enter` 应用);`<名>` 直设;`reset` 恢复默认。颜色 `red/orange/yellow/green/blue/purple/pink/cyan`,按会话保存 |
266
342
  | `/lang` | `en` / `zh` / `status` | 界面语言热切换。优先级:`DSH_TUI_LANG` > profile 配置(旧版 settings.yaml 用户层 > cordis.yml)> 持久化 |
267
343
  | `/vim` | 无 | **vim 编辑模式开关**(见 §2.4):输入框切到 vim 键位编辑,会话级、不持久化 |
344
+ | `/panel` | `toggle` / `focus` / `zoom` / `<面板 id>` | 侧栏面板:开关 / 聚焦 / 缩放 / 切换;三态与子命令见 §2.8 |
268
345
 
269
346
  ### 3.4 账号 / 策略 / 扩展
270
347
 
@@ -355,7 +432,7 @@ dsh-TUI 不预装通用技能;`/skills` 浏览 DSH 发现的技能,可直调
355
432
  - `/model`:选择器。**切换 = fork 会话续聊**(历史保留、仅换路由,旧会话留在 `/resume`);
356
433
  持久化 `~/.dsh-tui/model.json`。
357
434
  - 回合运行中切换会被拒绝。
358
- - `/preset` 可选:`standard`(默认全功能)、`ptc`、`minimal`(内核「极简模式」:只暴露一个持久 shell 工具,无 compaction、无计划模式)、
435
+ - `/preset` 可选:`standard`(默认全功能)、`ptc`、`minimal`(内核「极简模式」:只暴露一个持久 shell 工具,无 compaction、无计划模式;也因此没有压缩、工具结果不剪枝——长会话可能撞上下文上限,`/compact` 与问卷不可用,Help 与 `/` 补全会标注,进入该预设时提示一次)、
359
436
  `cordis`、`liangshen`(梁神模式)。
360
437
  **已产生对话的会话不能切换**(blank-only):选择只保存为下次 `/new` 的默认。
361
438
  这里的 preset 是**内核 Agent 预设**,决定模型能用哪些工具;界面上的 `/settings → 极简界面`(Minimal UI)与它无关。
@@ -376,7 +453,7 @@ dsh-TUI 不预装通用技能;`/skills` 浏览 DSH 发现的技能,可直调
376
453
  - `/skills` 浏览技能目录,可直调技能以 `/name` 加入命令菜单(dsh-TUI 不自带通用技能)。
377
454
  - `/plan` `/goal` `/feedback` `/permission` 来自 DSH 注册表,随组合并入 `/` 菜单。
378
455
  - **Goals/Todos 面板自动出现**:模型写入 goal/todo 时在输入框上方实时渲染(🎯 目标 + phase 徽章 + 树形 todo),
379
- 无需操作。
456
+ 无需操作;分栏开启时它迁到右栏的 `todo` 面板(见 §2.8)。
380
457
 
381
458
  ### 4.9 MCP / Workspace / 其他
382
459
 
@@ -426,12 +503,14 @@ dsh-TUI 不预装通用技能;`/skills` 浏览 DSH 发现的技能,可直调
426
503
  **Row 1 — 上下文分段进度条**(`/settings → statusBar.contextBar`,默认开)
427
504
 
428
505
  - 按内容类型分段着色(system / prompt / assistant / thinking / tools)。
506
+ - 分段 token 数是**本地估算**(CJK/全角按 ~1.4 字符/token、ASCII 按 ~4 字符/token、其它脚本按 ~2),
507
+ 只描述这条由什么构成,**不参与占用总量**——占用以 ctx 字段/读数为准(见下)。
429
508
  - 条上唯一文字是最右缘读数 `13k/64k 19.5%`(窄屏只显示 `19.5%`)。
430
509
  - 读数按占用率变色:<80% 灰蓝,**≥80% 琥珀、≥95% 红**。
431
510
  - 悬停整条弹出图例:色块 + 名称 + token 数(窄屏自动改用短名)。
432
511
 
433
512
  **Row 2 — 状态字段行**(每个字段独立开关,见 `/settings`)
434
- - 左组:模型 → TPS → thinking → mode → ctx → cache 缓存命中率 → tokens(`1.2k→340` 输入→输出)→
513
+ - 左组:模型 → TPS → thinking → mode → ctx(**上下文占用** `19.5% (13k/64k)`:与分段条、工作线压力前缀、`/tokens`、`/status` 和上下文告警**同读一个值**,来源是 harness 自带的 `contextPressure` 投影——`projectedTokens ?? pressureTokens`,即「下一次请求」的占用,压缩与被拒请求都会立刻反映,不再等一次成功请求;投影缺席的裸 `cordis.yml` 组合回退到上次请求的计费用量)→ cache 缓存命中率 → tokens(`1.2k→340` 输入→输出)→
435
514
  cost(`≈¥0.05 谷`,**本会话估算**:包含子代理用量,按各自模型 × 峰值/空闲 × 缓存分项计价;
436
515
  hover 拆「主会话 ¥ / 子代理 ¥ / 未计价 N tok」;非官方/未收录模型只显示 token 并标注未计价;
437
516
  **估算是参考,以平台账单为准**)
@@ -442,7 +521,7 @@ dsh-TUI 不预装通用技能;`/skills` 浏览 DSH 发现的技能,可直调
442
521
 
443
522
  **Row 3 — 提示 / 工作活动 + 迷你轨迹条**
444
523
  - 空闲显示 `? for shortcuts`、运行中 `esc to interrupt`、选择中 `esc to return to input`。
445
- - 空闲还显示 working-activity 动画帧(`statusBar.activity` 开),上下文 ≥80% 琥珀、≥95% 红。
524
+ - 空闲还显示 working-activity 动画帧(`statusBar.activity` 开),上下文 ≥80% 琥珀、≥95% 红(与 ctx 字段同一占用读数)。
446
525
  - 右侧**迷你轨迹条 MiniWake**(`statusBar.trajectory`,默认关):会话投影为密度字形,颜色区分通道,失败列染红;
447
526
  窄屏降格/隐藏。
448
527
 
@@ -453,7 +532,7 @@ dsh-TUI 不预装通用技能;`/skills` 浏览 DSH 发现的技能,可直调
453
532
 
454
533
  `/settings` 打开插件设置编辑器;**改动自动保存**,`Esc` 直接退出。
455
534
  dsh-tui 自身区块在 0.1.7 写入当前 profile 的 `cordis.patch.yml`,旧版写入 settings.yaml 用户层。多数设置实时生效;全屏和图片预览开关需 `/restart`。
456
- 下表为常用项,完整列表见 /settings 屏。多数主题(**外观与布局** / **开屏与吉祥物** / **对话与输入** / **图表与图片**)的字段直接平铺在根页的小标题下,改起来不用进出子页;只有真正成块的域——**公式设置** / **底栏设置** / **快捷键**——保留子页,根页一行入口点进去:
535
+ 下表为常用项,完整列表见 /settings 屏。多数主题(**外观与布局** / **开屏与吉祥物** / **对话与输入** / **图表与图片**)的字段直接平铺在根页的小标题下,改起来不用进出子页;只有真正成块的域——**公式设置** / **底栏设置** / **侧栏** / **快捷键**——保留子页,根页一行入口点进去:
457
536
 
458
537
  | 字段 | 说明 |
459
538
  |---|---|
@@ -468,6 +547,7 @@ dsh-tui 自身区块在 0.1.7 写入当前 profile 的 `cordis.patch.yml`,旧
468
547
  | whaleGirl | 女仆娘立绘(默认关):标题像素鲸鱼换成作者绘制的女仆娘**真图**(Kitty/Sixel 图像协议);不支持时回落像素鲸鱼 |
469
548
  | diffLayout | Edit/Write diff 布局:auto(≥110 列双栏)/ split / unified |
470
549
  | thinkingFold | 思考块:preview(流式 2-3 行预览 + 落定折叠)/ full(展开到轮末) |
550
+ | jobGroupFold | 连续的后台任务卡:auto(默认,≥2 张成组;整组落定且 ≥3 张时折叠成汇总行)/ always(≥2 张立即折叠,含在跑的任务)/ never(从不自动折叠,每张卡都留着)。组头一行汇总状态与合计时长,点组头或 Ctrl+O 展开 |
471
551
  | effortDefault | 默认推理强度:auto / off / low / high / max。新会话的起始档位(细节见下) |
472
552
  | smoothStreaming | 流式平滑输出(默认开):回复/思考/工具卡正文按 ~30fps 匀速揭示;回放/历史完整直出 |
473
553
  | toolBackground | 工具卡背景强调:none / subtle / strong |