@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
@@ -186,6 +186,30 @@ export function installedUpstreamVersions() {
186
186
  export function installedUpstreamVersion(packageName) {
187
187
  return parseUpstreamVersion(installedUpstreamVersions()[packageName]);
188
188
  }
189
+ /**
190
+ * 内核(dsh)版本的铭牌来源(第七版:落地页右下角双版本号)。
191
+ *
192
+ * 真实来源两级,都不造假:
193
+ * 1. **宿主 CLI** `@deepseek-ai/dsh` 的 package.json——TUI 作为插件跑在 dsh
194
+ * 宿主进程里时它一定可解析(`bin/dsh-tui.js` 委托 `dsh --profile` 启动);
195
+ * 孤立回归/源码 checkout 里解析不到就落到第 2 级。
196
+ * 2. **内核线包** `@deepseek-ai/dsh-agent`(与内核同线发版、由本仓直接依赖,
197
+ * `installedUpstreamVersions` 的既有清单成员)的已装版本——它就是
198
+ * upstreamDriftSummary 用来判定「内核在不在验证线」的同一份数据。
199
+ *
200
+ * 两级都读不到 → undefined(调用方只画 TUI 版本,不编造)。
201
+ */
202
+ export function installedKernelVersion() {
203
+ try {
204
+ const hostManifest = JSON.parse(readFileSync(fileURLToPath(import.meta.resolve('@deepseek-ai/dsh/package.json')), 'utf8'));
205
+ if (typeof hostManifest.version === 'string' && hostManifest.version !== '')
206
+ return hostManifest.version;
207
+ }
208
+ catch {
209
+ // 宿主包不在解析半径内(孤立测试/源码运行)——落到内核线包。
210
+ }
211
+ return installedUpstreamVersions()['@deepseek-ai/dsh-agent'];
212
+ }
189
213
  /**
190
214
  * Whether the installed version of `packageName` is at or beyond `minimum`
191
215
  * (a literal like `'0.1.0-rc.8'`). Unparseable or older installs return
@@ -96,6 +96,12 @@ export interface Config {
96
96
  * preview and folds each step when it settles; `full` keeps thinking
97
97
  * expanded until the whole turn ends. Editable live from `/settings`. */
98
98
  thinkingFold?: 'preview' | 'full';
99
+ /** Grouping/folding of consecutive background-job cards: `auto` (default)
100
+ * groups any run of ≥2 adjacent job cards and folds a run of 3+ into its
101
+ * summary line once every member settled; `always` folds any run of 2+
102
+ * immediately; `never` never folds on its own (a click on the group
103
+ * header still folds one run). Editable live from `/settings`. */
104
+ jobGroupFold?: 'auto' | 'always' | 'never';
99
105
  /** Tool-card background strength; defaults to no added background. */
100
106
  toolBackground?: ToolBackground;
101
107
  /** What the fullscreen transcript's right gutter shows (settings
@@ -162,6 +168,32 @@ export interface Config {
162
168
  recapOnOpen?: boolean;
163
169
  /** Status-footer field visibility and compact presentation preferences. */
164
170
  statusBar?: Partial<StatusBarConfig>;
171
+ /** Side panel (settings `dsh-tui.sidePanel.*`): the two-column layout's
172
+ * master switch, its startup state, the chat-column fraction, and the
173
+ * enabled panels in PanelBar order. Every member is normalized at parse
174
+ * time, so a hand-edited value can never wedge the layout. */
175
+ sidePanel?: {
176
+ /** Master switch of the split layout; on by default. Off makes /panel
177
+ * and Ctrl+B fall back to the fullscreen panels. */
178
+ splitEnabled?: boolean;
179
+ /** Whether a session opens with the sidebar expanded (off by default, so
180
+ * the upgrade leaves the layout alone); Ctrl+B toggles it live. */
181
+ open?: boolean;
182
+ /** Chat column as a fraction of the content width, clamped to 0.1–0.95
183
+ * (default 0.68); +/- while the panel is focused nudges it live. */
184
+ ratio?: number;
185
+ /** Enabled panel ids, comma-separated, in PanelBar order (default
186
+ * `todo,jobs,agents`; add `companion` to enable the pet panel). A
187
+ * malformed id is dropped, an unknown one survives for a plugin. */
188
+ panels?: string;
189
+ };
190
+ /** Companion pet (settings `dsh-tui.companion.*`): which skin the panel
191
+ * pet wears. */
192
+ companion?: {
193
+ /** 'deepy' (default, the deepy whale kit) or 'whale' (the splash's
194
+ * layered pixel whale). Unknown ids normalize to deepy. */
195
+ skin?: string;
196
+ };
165
197
  /** Built-in action-shortcut overrides (`paste: 'alt+v'`), keyed by action
166
198
  * id (see the keymap utility). Combos are `ctrl+`/`alt+`/`shift+` plus a
167
199
  * key; several combos may be comma-separated. Unset actions keep their
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAsK,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvX,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAC1F,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGzE,eAAO,MAAM,IAAI,YAAY,CAAA;AAU7B,eAAO,MAAM,MAAM,UAAa,CAAA;AAEhC;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;yEAKqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;gDAC4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;gFAE4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;oCACgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;sBAIkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;wDAGoD;IACpD,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;2BAGuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;wDAEoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;+DAI2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;kFAE8E;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;kFAC8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;gCAG4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;6DAEyD;IACzD,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACzC;;8EAE0E;IAC1E,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACjC;;;;uEAImE;IACnE,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC1C,sEAAsE;IACtE,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;2CAEuC;IACvC,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B;;;;iEAI6D;IAC7D,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B;;;0CAGsC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;mEAC+D;IAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;kDAG8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;mEAG+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;sDAKkD;IAClD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;gFAK4E;IAC5E,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;+CAI2C;IAC3C,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;0EAEsE;IACtE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;4EAEwE;IACxE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;iFAE6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACpC;;;mEAG+D;IAC/D,SAAS,CAAC,EAAE;QACV;6DACqD;QACrD,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB;4EACoE;QACpE,IAAI,CAAC,EAAE,OAAO,CAAA;QACd;6EACqE;QACrE,KAAK,CAAC,EAAE,MAAM,CAAA;QACd;;6EAEqE;QACrE,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD;qBACiB;IACjB,SAAS,CAAC,EAAE;QACV;oEAC4D;QAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;sCAIkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD;;;yDAGqD;IACrD,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CA0HH,CAAA;AAEtD;;;;;;GAMG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtF"}
@@ -1,5 +1,5 @@
1
1
  import Schema from '@deepseek-ai/schemastery';
2
- import { DEFAULT_STATUS_BAR, normalizePageMargin } from '../tuiDisplayPrefs.js';
2
+ import { DEFAULT_COMPANION_SKIN, DEFAULT_SIDE_PANEL_IDS, DEFAULT_STATUS_BAR, normalizeCompanionSkin, normalizePageMargin, normalizeSidePanelPanels, normalizeSidePanelRatio } from '../tuiDisplayPrefs.js';
3
3
  import { SHORTCUT_ACTIONS } from '../utils/keymap.js';
4
4
  import { normalizeSplashFont } from '../components/splashFonts.js';
5
5
  import { editableConfig } from './compat/settings.js';
@@ -48,6 +48,7 @@ export const Config = editableConfig(Schema.object({
48
48
  preset: Schema.string().required(false),
49
49
  diffLayout: Schema.union(['auto', 'split', 'unified']).default('auto'),
50
50
  thinkingFold: Schema.union(['preview', 'full']).default('preview'),
51
+ jobGroupFold: Schema.union(['auto', 'always', 'never']).default('auto'),
51
52
  toolBackground: Schema.union(['none', 'subtle', 'strong']).default('none'),
52
53
  scrollGutter: Schema.union(['timeline', 'scrollbar', 'hidden']).default('timeline'),
53
54
  // Preset names AND custom `NxM` specs must survive validation (a custom
@@ -77,6 +78,11 @@ export const Config = editableConfig(Schema.object({
77
78
  contextUsage: Schema.boolean().default(DEFAULT_STATUS_BAR.contextUsage),
78
79
  cache: Schema.boolean().default(DEFAULT_STATUS_BAR.cache),
79
80
  tokens: Schema.boolean().default(DEFAULT_STATUS_BAR.tokens),
81
+ // Session cost estimate (≈¥) beside the token totals; StatusLine gates the
82
+ // chip on it. The slot must be declared here: schemastery drops an
83
+ // undeclared key on the way back in, so the /settings row would read
84
+ // "(unset)" and every edit would silently revert.
85
+ cost: Schema.boolean().default(DEFAULT_STATUS_BAR.cost),
80
86
  tps: Schema.boolean().default(DEFAULT_STATUS_BAR.tps),
81
87
  gitBranch: Schema.boolean().default(DEFAULT_STATUS_BAR.gitBranch),
82
88
  sessionTitle: Schema.boolean().default(DEFAULT_STATUS_BAR.sessionTitle),
@@ -88,6 +94,19 @@ export const Config = editableConfig(Schema.object({
88
94
  trajectory: Schema.boolean().default(DEFAULT_STATUS_BAR.trajectory),
89
95
  shortcutHint: Schema.boolean().default(DEFAULT_STATUS_BAR.shortcutHint),
90
96
  }).default({ ...DEFAULT_STATUS_BAR }),
97
+ // Side-panel preferences, same shape as statusBar: every member carries a
98
+ // default so an unset cordis.yml block and a partially hand-written one
99
+ // both resolve, and the transforms keep junk (a string ratio, an id with
100
+ // illegal characters) out of the live stores.
101
+ sidePanel: Schema.object({
102
+ splitEnabled: Schema.boolean().default(true),
103
+ open: Schema.boolean().default(false),
104
+ ratio: Schema.transform(Schema.number().default(0.68), value => normalizeSidePanelRatio(value)),
105
+ panels: Schema.transform(Schema.string().default(DEFAULT_SIDE_PANEL_IDS), value => normalizeSidePanelPanels(value)),
106
+ }).default({ splitEnabled: true, open: false, ratio: 0.68, panels: DEFAULT_SIDE_PANEL_IDS }),
107
+ companion: Schema.object({
108
+ skin: Schema.transform(Schema.string().default(DEFAULT_COMPANION_SKIN), value => normalizeCompanionSkin(value)),
109
+ }).default({ skin: DEFAULT_COMPANION_SKIN }),
91
110
  // One optional combo string per customizable action (no defaults: unset
92
111
  // keeps the built-in binding; see Config.shortcuts).
93
112
  shortcuts: Schema.object(Object.fromEntries(SHORTCUT_ACTIONS.map(action => [action.id, Schema.string().required(false)]))).required(false),
@@ -1 +1 @@
1
- {"version":3,"file":"sessionize.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/migrate/sessionize.ts"],"names":[],"mappings":"AA0DA,OAAO,EAGL,SAAS,EAET,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAc9D,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;CACzC;AAgBD;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,iTAAiT,CAAA;AACjV,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AACrD,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAevD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAmJpG"}
1
+ {"version":3,"file":"sessionize.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/migrate/sessionize.ts"],"names":[],"mappings":"AA0DA,OAAO,EAGL,SAAS,EAET,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAS9D,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;CACzC;AAgBD;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,iTAAiT,CAAA;AACjV,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AACrD,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAevD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAqJpG"}
@@ -51,11 +51,8 @@
51
51
  import { ToolCallId, createAssistantMessage, createSystemMessage, createToolResultMessage, createUserMessage, } from '@deepseek-ai/dsh-llm';
52
52
  import { SESSION_FORMAT_VERSION, Session, } from '@deepseek-ai/dsh-session';
53
53
  import { userTitleData } from '../compat/sessionLog.js';
54
+ import { estimateTokens } from '../channel/usage.js';
54
55
  import { normalizeTitle } from './parse/title.js';
55
- /** Rough token estimate for shadowed text (the compaction metering field). */
56
- function estimateTokens(chars) {
57
- return Math.ceil(chars / 4);
58
- }
59
56
  /** Blocks for one migrated step, in source order (reasoning before the text
60
57
  * it explains, tool calls where the model made them). A step with no
61
58
  * content keeps one empty text block so the assistant message stays
@@ -130,7 +127,7 @@ export function sessionize(id, agentId, session) {
130
127
  const writePrompt = (prompt) => {
131
128
  if (prompt === '')
132
129
  return;
133
- surfaceChars += prompt.length;
130
+ surfaceTokens += estimateTokens(prompt);
134
131
  events.push(model.append('user/message', createUserMessage({
135
132
  content: [{ type: 'text', text: prompt }],
136
133
  source: { kind: 'user' },
@@ -161,9 +158,11 @@ export function sessionize(id, agentId, session) {
161
158
  }
162
159
  };
163
160
  let compactions = 0;
164
- // Text volume on the surface since the last checkpoint, for the summary's
165
- // shadowedTokenCount (an estimate, like the live engine's).
166
- let surfaceChars = 0;
161
+ // Estimated model-visible tokens on the surface since the last checkpoint,
162
+ // for the summary's shadowedTokenCount (an estimate, like the live engine's;
163
+ // the shared CJK-aware estimator keeps migrated CJK sessions from being
164
+ // under-counted ~3x the way the old chars/4 did — issue #1170).
165
+ let surfaceTokens = 0;
167
166
  /** Fold every surface node after the head into one checkpoint; false when
168
167
  * there is nothing to fold (the upstream contract needs a non-empty span). */
169
168
  const writeCompaction = (summary, summaryModel) => {
@@ -180,7 +179,7 @@ export function sessionize(id, agentId, session) {
180
179
  summary: [{ type: 'text', text: summary }],
181
180
  shadowedRange: range,
182
181
  shadowedSeqs: shadowed,
183
- shadowedTokenCount: estimateTokens(surfaceChars),
182
+ shadowedTokenCount: surfaceTokens,
184
183
  provider: `migrated:${agentId}`,
185
184
  model: summaryModel ?? agentId,
186
185
  }));
@@ -190,7 +189,7 @@ export function sessionize(id, agentId, session) {
190
189
  source: { kind: 'compact-checkpoint', compactionId },
191
190
  }), { surfaceOp: { op: 'replace', startSeq: range.start, endSeq: range.end }, sourceEventSeqs: shadowed }));
192
191
  events.push(untyped.append('compaction/end', { compactionId, turn: null }));
193
- surfaceChars = summary.length;
192
+ surfaceTokens = estimateTokens(summary);
194
193
  return true;
195
194
  };
196
195
  let turnIndex = 0;
@@ -236,9 +235,9 @@ export function sessionize(id, agentId, session) {
236
235
  for (const input of imported.inputs)
237
236
  writePrompt(input);
238
237
  for (const block of imported.blocks)
239
- surfaceChars += block.type === 'tool-call' ? block.arguments.length : block.text.length;
238
+ surfaceTokens += estimateTokens(block.type === 'tool-call' ? block.arguments : block.text);
240
239
  for (const result of imported.results)
241
- surfaceChars += result.text.length;
240
+ surfaceTokens += estimateTokens(result.text);
242
241
  events.push(model.append('assistant/message', {
243
242
  turn: turnIndex,
244
243
  step,
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Host-side per-panel owner registry for ctx.tuiPanels (§18.2).
3
+ *
4
+ * The PanelStore owns registration/badges; THIS map owns what only the
5
+ * Cordis side knows: which activation registered a panel id, its plugin id,
6
+ * and the lazy bridges the rendered panel's host API needs (toast, scenes,
7
+ * plugin storage). Kept module-level next to the process-level PanelStore —
8
+ * a WeakMap on the service would die with the service object while the
9
+ * PanelStore (and rendered panels) outlive it.
10
+ */
11
+ import type { Context } from '@deepseek-ai/cordis';
12
+ import type { TuiPluginStorage } from './plugin-storage.js';
13
+ export interface PanelOwnerRecord {
14
+ /** Canonical activation context (kept alive by the bound effect; the panel
15
+ * is unregistered before the activation tears down, so late host-API calls
16
+ * through a disposed ctx degrade, never crash the store). */
17
+ readonly caller: Context;
18
+ /** activationFiber identity — ownership check for every mutating call. */
19
+ readonly owner: object;
20
+ readonly pluginId: string;
21
+ /** open() rate limit: at most one open per plugin per 5s (§18.2). */
22
+ lastOpenAt: number;
23
+ storage?: TuiPluginStorage;
24
+ }
25
+ export declare function getPanelOwnerRecord(id: string): PanelOwnerRecord | undefined;
26
+ export declare function setPanelOwnerRecord(id: string, record: PanelOwnerRecord): void;
27
+ export declare function deletePanelOwnerRecord(id: string): void;
28
+ export declare function countPanelsOwnedBy(owner: object): number;
29
+ export declare function countPluginPanels(): number;
30
+ /** Plugin Panel 的 toast:经注册激活自己的 tuiToast 服务(无服务时静默
31
+ * false,与 scenes 降级语义一致)。 */
32
+ export declare function pluginPanelToast(id: string, text: string): boolean;
33
+ /** 打开自己注册的全屏场景:转 tuiScenes(它自己做 owner 校验与降级)。 */
34
+ export declare function pluginPanelOpenScene(id: string, sceneId: string): boolean;
35
+ /** 自己的 tuiPluginStorage 句柄(懒开、每 Panel 一次;无服务时 undefined)。 */
36
+ export declare function pluginPanelStorage(id: string): TuiPluginStorage | undefined;
37
+ /** 侧栏展开且自己是 active 时聚焦(useSidePanel 侧裁决)。 */
38
+ export declare function pluginPanelFocus(id: string): boolean;
39
+ //# sourceMappingURL=panel-runtime-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-runtime-registry.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/panel-runtime-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG3D,MAAM,WAAW,gBAAgB;IAC/B;;iEAE6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAID,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAE9E;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;6BAC6B;AAC7B,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAUlE;AAED,iDAAiD;AACjD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAUzE;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAc3E;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Host-side per-panel owner registry for ctx.tuiPanels (§18.2).
3
+ *
4
+ * The PanelStore owns registration/badges; THIS map owns what only the
5
+ * Cordis side knows: which activation registered a panel id, its plugin id,
6
+ * and the lazy bridges the rendered panel's host API needs (toast, scenes,
7
+ * plugin storage). Kept module-level next to the process-level PanelStore —
8
+ * a WeakMap on the service would die with the service object while the
9
+ * PanelStore (and rendered panels) outlive it.
10
+ */
11
+ import { panelBridgeRequests } from '../components/sidePanel/panelBridge.js';
12
+ const ownerRecords = new Map();
13
+ export function getPanelOwnerRecord(id) {
14
+ return ownerRecords.get(id);
15
+ }
16
+ export function setPanelOwnerRecord(id, record) {
17
+ ownerRecords.set(id, record);
18
+ }
19
+ export function deletePanelOwnerRecord(id) {
20
+ ownerRecords.delete(id);
21
+ }
22
+ export function countPanelsOwnedBy(owner) {
23
+ let count = 0;
24
+ for (const record of ownerRecords.values())
25
+ if (record.owner === owner)
26
+ count += 1;
27
+ return count;
28
+ }
29
+ export function countPluginPanels() {
30
+ return ownerRecords.size;
31
+ }
32
+ /** Plugin Panel 的 toast:经注册激活自己的 tuiToast 服务(无服务时静默
33
+ * false,与 scenes 降级语义一致)。 */
34
+ export function pluginPanelToast(id, text) {
35
+ const record = ownerRecords.get(id);
36
+ if (record === undefined)
37
+ return false;
38
+ const toast = record.caller.get('tuiToast');
39
+ if (toast === undefined || typeof toast.show !== 'function')
40
+ return false;
41
+ try {
42
+ return toast.show(text);
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ }
48
+ /** 打开自己注册的全屏场景:转 tuiScenes(它自己做 owner 校验与降级)。 */
49
+ export function pluginPanelOpenScene(id, sceneId) {
50
+ const record = ownerRecords.get(id);
51
+ if (record === undefined)
52
+ return false;
53
+ const scenes = record.caller.get('tuiScenes');
54
+ if (scenes === undefined || typeof scenes.open !== 'function')
55
+ return false;
56
+ try {
57
+ return scenes.open(sceneId);
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ /** 自己的 tuiPluginStorage 句柄(懒开、每 Panel 一次;无服务时 undefined)。 */
64
+ export function pluginPanelStorage(id) {
65
+ const record = ownerRecords.get(id);
66
+ if (record === undefined)
67
+ return undefined;
68
+ if (record.storage !== undefined)
69
+ return record.storage;
70
+ const service = record.caller.get('tuiPluginStorage');
71
+ if (service === undefined || typeof service.open !== 'function')
72
+ return undefined;
73
+ try {
74
+ record.storage = service.open(record.caller);
75
+ return record.storage;
76
+ }
77
+ catch {
78
+ return undefined;
79
+ }
80
+ }
81
+ /** 侧栏展开且自己是 active 时聚焦(useSidePanel 侧裁决)。 */
82
+ export function pluginPanelFocus(id) {
83
+ return panelBridgeRequests.request('focus', id);
84
+ }
@@ -0,0 +1,251 @@
1
+ /**
2
+ * ctx.tuiPanels — 插件侧栏 Panel 服务(设计文档 §8/§18,v2.1 修订,Phase 6)。
3
+ *
4
+ * 与 tuiStatus/tuiScenes 同一接缝家族:一份 Cordis-free 的进程级 store
5
+ * (components/sidePanel/PanelStore,注册/badge/错误隔离)+ 一层薄的
6
+ * Cordis 服务做准入(requirePluginCaller → activationFiber owner →
7
+ * bindCallerEffect 撤下 → 能力 shadow policy → 重复 id
8
+ * DUPLICATE_CONTRIBUTION_ID → Object.freeze descriptor)。
9
+ *
10
+ * 本阶段范围(§18.2 简化版):
11
+ * - register:宿主自动加 '<pluginId>:' 前缀;mountPolicy 强制 'active';
12
+ * minColumns 默认 28;预算 = 每插件 ≤4 个 / 全局 ≤32 个。
13
+ * - list:只读摘要(id/title/source,不含组件)。
14
+ * - open/close:仅自己注册的 id;open 为 mutate 且限速(每插件每 5s 至多
15
+ * 1 次,超过丢弃并记 ledger);UI 触达经 panelBridge(useSidePanel 订阅)。
16
+ * - badge:仅自己注册的 id → panelStore.setBadge。
17
+ * - subscribe:仅涉及自己 Panel 的事件(本阶段 registered/unregistered/
18
+ * badge/error/disabled;opened/closed/focused/blurred/sidebar-toggled 事件
19
+ * 源在 useSidePanel 侧,留 TODO)。
20
+ * - compact:descriptor 校验 + 存档,渲染槽不挂载(TODO §18.1)。
21
+ */
22
+ import type React from 'react';
23
+ import { Context, Service } from '@deepseek-ai/cordis';
24
+ import type { TuiPluginStorage } from './plugin-storage.js';
25
+ /** 插件 Panel API 版本(§18.2):descriptor.apiVersion 必须精确匹配。 */
26
+ export declare const TUI_PANEL_API_VERSION = 1;
27
+ /** 每插件 Panel 预算(§18.4)。 */
28
+ export declare const MAX_PANELS_PER_PLUGIN = 4;
29
+ /** 全局插件 Panel 注册预算(§18.4)。 */
30
+ export declare const MAX_PLUGIN_PANELS_TOTAL = 32;
31
+ /** open() 限速窗口:每插件每窗口至多 1 次。 */
32
+ export declare const PANEL_OPEN_RATE_LIMIT_MS = 5000;
33
+ type TuiPanelForbiddenBoxProps = 'ref' | 'tabIndex' | 'autoFocus' | 'onContextMenu' | 'onFocus' | 'onFocusCapture' | 'onBlur' | 'onBlurCapture' | 'onKeyDown' | 'onKeyDownCapture';
34
+ /** Box 保留 click/hover/drag/onWheel;焦点/键盘/上下文菜单被收走。 */
35
+ export type TuiPanelBoxProps = Omit<React.ComponentProps<typeof import('../ui.js').Box>, TuiPanelForbiddenBoxProps>;
36
+ export type TuiPanelTextProps = Omit<React.ComponentProps<typeof import('../ui.js').Text>, 'ref'>;
37
+ /** Image 走既有图片预算/协议回退路径(与 status view 的 Image 同一通道)。 */
38
+ export type TuiPanelImageProps = React.ComponentProps<typeof import('../ui.js').Image>;
39
+ export type TuiPanelScrollBoxProps = Omit<React.ComponentProps<typeof import('../ui.js').ScrollBox>, 'ref'>;
40
+ export type TuiPanelDividerProps = React.ComponentProps<typeof import('../components/design-system/Divider.js').Divider>;
41
+ /**
42
+ * 面板内 UI kit:宿主 React + 收窄组件 + Panel 尺寸感知。钩子和元素
43
+ * 必须走宿主 React(与 plugin scene 同一 single-React 规则)。
44
+ */
45
+ export interface TuiPanelUi {
46
+ readonly Box: React.ComponentType<TuiPanelBoxProps>;
47
+ readonly Text: React.ComponentType<TuiPanelTextProps>;
48
+ readonly Image: React.ComponentType<TuiPanelImageProps>;
49
+ readonly ScrollBox: React.ComponentType<TuiPanelScrollBoxProps>;
50
+ readonly Divider: React.ComponentType<TuiPanelDividerProps>;
51
+ /** 恒等于 Panel 的 { width, height }。 */
52
+ readonly useTerminalSize: () => {
53
+ readonly columns: number;
54
+ readonly rows: number;
55
+ };
56
+ /**
57
+ * 面板内唯一合法定时源:内部是 useAnimationFrame(ms) 的时间值([1])。
58
+ * 不暴露 hook 本体是因为其另一个返回值是必须挂到动画元素上的 ref——
59
+ * 插件乱挂会破坏共享时钟的可见性测度;时间值本身已覆盖面板动画的
60
+ * 全部需求(传 null 暂停)。
61
+ */
62
+ readonly useAnimationTime: (intervalMs: number | null) => number;
63
+ /** 只读主题。 */
64
+ readonly useTheme: typeof import('../ui.js').useTheme;
65
+ }
66
+ export type TuiPanelBadgeLevel = 'info' | 'warning' | 'error';
67
+ export type TuiPanelMode = 'split' | 'zoom' | 'fullscreen';
68
+ /** v2.1 键盘契约的插件视图:preventDefault() = 阻止宿主回退键。 */
69
+ export interface TuiPanelKeyEvent {
70
+ readonly input: string;
71
+ readonly key: import('../components/sidePanel/types.js').SidePanelKeyFlags;
72
+ preventDefault(): void;
73
+ }
74
+ /** 策展只读会话快照:SidePanelRuntimeContext 的结构拷贝,不含转录
75
+ * 正文/凭证/文件内容(§18.2)。 */
76
+ export interface TuiPanelSnapshot {
77
+ readonly sessionId: string;
78
+ readonly cwd: string;
79
+ readonly lang: string;
80
+ readonly working: boolean;
81
+ readonly spinnerMode: string;
82
+ readonly version: number;
83
+ readonly goal: Readonly<{
84
+ readonly objective: string;
85
+ readonly phase: 'active' | 'paused' | 'blocked' | 'complete';
86
+ readonly roundsStarted: number;
87
+ readonly maxGoalRounds: number;
88
+ }> | undefined;
89
+ readonly todos: readonly Readonly<{
90
+ readonly content: string;
91
+ readonly status: string;
92
+ }>[];
93
+ readonly backgroundJobs: readonly Readonly<{
94
+ readonly id: string;
95
+ readonly kind: string;
96
+ readonly label: string;
97
+ readonly status: string;
98
+ readonly progress?: string;
99
+ readonly detail?: string;
100
+ readonly startedAt: number;
101
+ }>[];
102
+ readonly subagents: readonly Readonly<{
103
+ readonly agentId: string;
104
+ readonly description: string;
105
+ readonly status: string;
106
+ readonly mode?: string;
107
+ readonly model?: string;
108
+ readonly startedAt: number;
109
+ readonly completedAt?: number;
110
+ }>[];
111
+ readonly attention: Readonly<{
112
+ readonly approvals: number;
113
+ readonly questions: number;
114
+ }>;
115
+ readonly activity: Readonly<Record<string, unknown>> | undefined;
116
+ }
117
+ /** 面板内 host API(§18.2;sendToChat 本阶段恒 false——授权未落地)。 */
118
+ export interface TuiPanelHostApi {
119
+ /** 策展只读快照(每次调用结构拷贝)。 */
120
+ snapshot(): TuiPanelSnapshot;
121
+ readonly focused: boolean;
122
+ notify(level: TuiPanelBadgeLevel, unread?: number): void;
123
+ clearBadge(): void;
124
+ /** 本阶段返回 false 并 toast 一次:需要 panels.chat.attach 授权(后续版本)。 */
125
+ sendToChat(payload: {
126
+ readonly title: string;
127
+ readonly content: string;
128
+ }): boolean;
129
+ /** 仅打开自己注册的全屏场景(tuiScenes 做 owner 校验)。 */
130
+ openScene(id: string): boolean;
131
+ toast(text: string): boolean;
132
+ /** 自己的 tuiPluginStorage 句柄(服务未挂时 undefined)。 */
133
+ readonly storage: TuiPluginStorage | undefined;
134
+ /** 仅 focused 期间投递(v2.1 分发器)。 */
135
+ onKey(listener: (event: TuiPanelKeyEvent) => void): () => void;
136
+ /** 侧栏展开且自己 active 时聚焦(useSidePanel 侧裁决)。 */
137
+ focus(): boolean;
138
+ }
139
+ /** 插件 Panel 组件 props。 */
140
+ export interface TuiPanelProps {
141
+ /** 宿主 React——所有钩子与元素必须经它(single-React 规则)。 */
142
+ readonly React: typeof React;
143
+ readonly ui: TuiPanelUi;
144
+ readonly host: TuiPanelHostApi;
145
+ readonly width: number;
146
+ readonly height: number;
147
+ readonly focused: boolean;
148
+ readonly visible: boolean;
149
+ readonly mode: TuiPanelMode;
150
+ }
151
+ /** compact 行 props(本阶段仅校验,不挂载渲染——槽位 TODO §18.1)。 */
152
+ export interface TuiPanelCompactProps {
153
+ readonly React: typeof React;
154
+ readonly ui: Pick<TuiPanelUi, 'Box' | 'Text'>;
155
+ readonly width: number;
156
+ readonly badge: {
157
+ readonly level: TuiPanelBadgeLevel;
158
+ readonly unread: number;
159
+ } | null;
160
+ }
161
+ /** 注册 descriptor(§18.2)。 */
162
+ export interface TuiPanelDescriptor {
163
+ readonly apiVersion: typeof TUI_PANEL_API_VERSION;
164
+ /** 单段小写 slug;宿主自动加 '<pluginId>:' 前缀。 */
165
+ readonly id: string;
166
+ readonly title: string;
167
+ /** 显示宽度必须为 1。 */
168
+ readonly icon?: string;
169
+ readonly minColumns?: number;
170
+ readonly order?: number;
171
+ readonly component?: React.ComponentType<TuiPanelProps>;
172
+ readonly compact?: {
173
+ readonly maxRows: 1 | 2 | 3;
174
+ readonly component: React.ComponentType<TuiPanelCompactProps>;
175
+ };
176
+ }
177
+ /** subscribe 的事件(本阶段:注册/撤下/badge/错误/禁用;opened/closed/
178
+ * focused/blurred/sidebar-toggled 的事件源在 useSidePanel 侧,留 TODO)。 */
179
+ export type TuiPanelEvent = {
180
+ readonly type: 'registered';
181
+ readonly id: string;
182
+ } | {
183
+ readonly type: 'unregistered';
184
+ readonly id: string;
185
+ } | {
186
+ readonly type: 'badge';
187
+ readonly id: string;
188
+ } | {
189
+ readonly type: 'error';
190
+ readonly id: string;
191
+ } | {
192
+ readonly type: 'disabled';
193
+ readonly id: string;
194
+ };
195
+ /** list() 的只读摘要(不含组件)。 */
196
+ export interface TuiPanelSummary {
197
+ readonly id: string;
198
+ readonly title: string;
199
+ readonly source: 'plugin';
200
+ }
201
+ /** Host-only facade(driver 探针用;不经插件面导出)。 */
202
+ export interface TuiPanelHost {
203
+ register(descriptor: {
204
+ readonly id: string;
205
+ readonly title?: string;
206
+ }): () => void;
207
+ list(): readonly TuiPanelSummary[];
208
+ open(id: string): boolean;
209
+ close(id: string): boolean;
210
+ subscribe(listener: (event: TuiPanelEvent) => void): () => void;
211
+ }
212
+ declare module '@deepseek-ai/cordis' {
213
+ interface Context {
214
+ tuiPanels: TuiPanelRuntime;
215
+ }
216
+ }
217
+ export declare const name = "dsh-tui-panels";
218
+ /**
219
+ * ctx.tuiPanels —— 插件侧栏 Panel 准入服务。拒绝一律 warn + 返回
220
+ * undefined/false(与 tuiStatus.registerView 同语义),绝不抛给插件。
221
+ */
222
+ export declare class TuiPanelRuntime extends Service {
223
+ constructor(ctx: Context);
224
+ /**
225
+ * 注册一个侧栏 Panel。成功返回 cleanup-aware disposer;拒绝 warn 并
226
+ * 返回 undefined(feature-detect 可辨)。identity 语义与 tuiStatus
227
+ * 相同(只喂 effect ledger 的 pluginId)。
228
+ */
229
+ register(descriptor: TuiPanelDescriptor, identity?: Context): (() => void) | undefined;
230
+ /** 只读摘要(仅自己注册的 Panel;不含组件)。 */
231
+ list(): readonly TuiPanelSummary[];
232
+ /**
233
+ * 打开自己注册的 Panel(展开侧栏并聚焦)。mutate + 限速:每插件每
234
+ * 5s 至多 1 次,超限丢弃并记 ledger。返回 false = 未注册/不属于自己的
235
+ * id、超限、或没有活的 Chat 控制器消费请求。
236
+ */
237
+ open(id: string): boolean;
238
+ /** 关闭自己注册的 Panel:若它是当前 active Panel,则收起侧栏。 */
239
+ close(id: string): boolean;
240
+ /** 设置/清除自己 Panel 的 badge。 */
241
+ badge(id: string, badge: {
242
+ level: TuiPanelBadgeLevel;
243
+ unread: number;
244
+ } | null): boolean;
245
+ /** 订阅涉及自己 Panel 的事件(本阶段 registered/unregistered/badge/
246
+ * error/disabled;opened/closed/focused/blurred/sidebar-toggled TODO)。 */
247
+ subscribe(listener: (event: TuiPanelEvent) => void): () => void;
248
+ }
249
+ export declare function getHostPanelRuntime(runtime: TuiPanelRuntime | undefined): TuiPanelHost | undefined;
250
+ export default TuiPanelRuntime;
251
+ //# sourceMappingURL=panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/panels.ts"],"names":[],"mappings":"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"}