@deepseek-harness-tui/dsh-tui 0.9.0 → 0.9.2

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 (307) hide show
  1. package/README.md +69 -256
  2. package/bin/dsh-tui.js +172 -5
  3. package/cordis.patch.yml +16 -4
  4. package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -13
  5. package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -59
  6. package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -15
  7. package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -32
  8. package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -59
  9. package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -166
  10. package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -42
  11. package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -143
  12. package/dsh-ecosystem-spec/registry/README.md +14 -14
  13. package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -56
  14. package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -13
  15. package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -149
  16. package/lib/types/cc/hyperlink.d.ts +7 -1
  17. package/lib/types/cc/hyperlink.d.ts.map +1 -1
  18. package/lib/types/cc/hyperlink.js +3 -2
  19. package/lib/types/cc/markdown.d.ts.map +1 -1
  20. package/lib/types/cc/markdown.js +33 -3
  21. package/lib/types/cc/sessionColors.d.ts +27 -0
  22. package/lib/types/cc/sessionColors.d.ts.map +1 -0
  23. package/lib/types/cc/sessionColors.js +39 -0
  24. package/lib/types/commands.d.ts.map +1 -1
  25. package/lib/types/commands.js +6 -0
  26. package/lib/types/components/AutoRecapRow.d.ts +23 -0
  27. package/lib/types/components/AutoRecapRow.d.ts.map +1 -0
  28. package/lib/types/components/AutoRecapRow.js +23 -0
  29. package/lib/types/components/ColorPicker.d.ts +17 -0
  30. package/lib/types/components/ColorPicker.d.ts.map +1 -0
  31. package/lib/types/components/ColorPicker.js +20 -0
  32. package/lib/types/components/CommandSuggestions.d.ts +3 -1
  33. package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
  34. package/lib/types/components/ContextBarView.d.ts +33 -0
  35. package/lib/types/components/ContextBarView.d.ts.map +1 -0
  36. package/lib/types/components/ContextBarView.js +46 -0
  37. package/lib/types/components/EffortInputBorder.d.ts +12 -1
  38. package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
  39. package/lib/types/components/EffortInputBorder.js +22 -5
  40. package/lib/types/components/FileActionsPanel.d.ts +22 -0
  41. package/lib/types/components/FileActionsPanel.d.ts.map +1 -0
  42. package/lib/types/components/FileActionsPanel.js +28 -0
  43. package/lib/types/components/FileSuggestions.d.ts +3 -1
  44. package/lib/types/components/FileSuggestions.d.ts.map +1 -1
  45. package/lib/types/components/MessageList.d.ts +3 -1
  46. package/lib/types/components/MessageList.d.ts.map +1 -1
  47. package/lib/types/components/MessageList.js +13 -6
  48. package/lib/types/components/ModelPicker.d.ts +26 -4
  49. package/lib/types/components/ModelPicker.d.ts.map +1 -1
  50. package/lib/types/components/ModelPicker.js +26 -6
  51. package/lib/types/components/PromptInput.d.ts.map +1 -1
  52. package/lib/types/components/PromptInput.js +365 -57
  53. package/lib/types/components/RecapPanel.d.ts +25 -0
  54. package/lib/types/components/RecapPanel.d.ts.map +1 -0
  55. package/lib/types/components/RecapPanel.js +55 -0
  56. package/lib/types/components/ScrollbarGutter.d.ts.map +1 -1
  57. package/lib/types/components/ScrollbarGutter.js +55 -4
  58. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  59. package/lib/types/components/SubagentCard.js +6 -4
  60. package/lib/types/components/SuggestionCard.d.ts +4 -2
  61. package/lib/types/components/SuggestionCard.d.ts.map +1 -1
  62. package/lib/types/components/TimelineRail.d.ts.map +1 -1
  63. package/lib/types/components/TimelineRail.js +9 -2
  64. package/lib/types/components/design-system/ThemeProvider.d.ts +7 -0
  65. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  66. package/lib/types/components/design-system/ThemeProvider.js +2 -1
  67. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +8 -1
  68. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  69. package/lib/types/components/messages/AssistantToolUseMessage.js +36 -8
  70. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +7 -3
  71. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  72. package/lib/types/components/questions/AskUserQuestionPanel.js +41 -9
  73. package/lib/types/dsh-adapter/channel.d.ts +101 -2
  74. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  75. package/lib/types/dsh-adapter/channel.js +969 -93
  76. package/lib/types/dsh-adapter/compat/index.d.ts +8 -6
  77. package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
  78. package/lib/types/dsh-adapter/compat/index.js +8 -6
  79. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +150 -0
  80. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
  81. package/lib/types/dsh-adapter/compat/sessionLog.js +518 -41
  82. package/lib/types/dsh-adapter/contract.d.ts +1 -1
  83. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  84. package/lib/types/dsh-adapter/contract.js +1 -0
  85. package/lib/types/dsh-adapter/extension-events.d.ts +1 -1
  86. package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
  87. package/lib/types/dsh-adapter/index.d.ts +10 -0
  88. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  89. package/lib/types/dsh-adapter/index.js +5 -0
  90. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  91. package/lib/types/dsh-adapter/plugin.js +317 -8
  92. package/lib/types/dsh-adapter/presets.d.ts +18 -0
  93. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  94. package/lib/types/dsh-adapter/presets.js +31 -0
  95. package/lib/types/dsh-adapter/providerWizard.d.ts +29 -1
  96. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  97. package/lib/types/dsh-adapter/providerWizard.js +89 -5
  98. package/lib/types/dsh-adapter/questions.d.ts +19 -2
  99. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  100. package/lib/types/dsh-adapter/questions.js +53 -10
  101. package/lib/types/dsh-adapter/recap.d.ts +49 -0
  102. package/lib/types/dsh-adapter/recap.d.ts.map +1 -0
  103. package/lib/types/dsh-adapter/recap.js +121 -0
  104. package/lib/types/dsh-adapter/sessionTree.d.ts +314 -0
  105. package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -0
  106. package/lib/types/dsh-adapter/sessionTree.js +954 -0
  107. package/lib/types/dsh-adapter/shortcuts.d.ts +15 -44
  108. package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
  109. package/lib/types/dsh-adapter/shortcuts.js +28 -165
  110. package/lib/types/dsh-adapter/types.d.ts +1 -1
  111. package/lib/types/dsh-adapter/types.d.ts.map +1 -1
  112. package/lib/types/herdr.js +1 -1
  113. package/lib/types/i18n.d.ts +604 -176
  114. package/lib/types/i18n.d.ts.map +1 -1
  115. package/lib/types/i18n.js +206 -72
  116. package/lib/types/ink/log-update.d.ts.map +1 -1
  117. package/lib/types/ink/log-update.js +21 -0
  118. package/lib/types/migrationPrefs.d.ts +60 -0
  119. package/lib/types/migrationPrefs.d.ts.map +1 -0
  120. package/lib/types/migrationPrefs.js +97 -0
  121. package/lib/types/modelGroups.d.ts +72 -0
  122. package/lib/types/modelGroups.d.ts.map +1 -0
  123. package/lib/types/modelGroups.js +97 -0
  124. package/lib/types/modelRecents.d.ts +39 -0
  125. package/lib/types/modelRecents.d.ts.map +1 -0
  126. package/lib/types/modelRecents.js +97 -0
  127. package/lib/types/native-ts/yoga-layout/index.d.ts +11 -0
  128. package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
  129. package/lib/types/native-ts/yoga-layout/index.js +31 -1
  130. package/lib/types/oauth.d.ts +15 -0
  131. package/lib/types/oauth.d.ts.map +1 -0
  132. package/lib/types/oauth.js +14 -0
  133. package/lib/types/plugin-spec/registry.d.ts +1 -1
  134. package/lib/types/plugin-spec/registry.js +1 -1
  135. package/lib/types/reload.d.ts +109 -0
  136. package/lib/types/reload.d.ts.map +1 -0
  137. package/lib/types/reload.js +118 -0
  138. package/lib/types/screens/Chat.d.ts +3 -1
  139. package/lib/types/screens/Chat.d.ts.map +1 -1
  140. package/lib/types/screens/Chat.js +588 -64
  141. package/lib/types/screens/SessionTree.d.ts +27 -0
  142. package/lib/types/screens/SessionTree.d.ts.map +1 -0
  143. package/lib/types/screens/SessionTree.js +555 -0
  144. package/lib/types/screens/StatusLine.d.ts +0 -9
  145. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  146. package/lib/types/screens/StatusLine.js +215 -52
  147. package/lib/types/screens/StatusMetrics.d.ts +35 -3
  148. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  149. package/lib/types/screens/StatusMetrics.js +63 -8
  150. package/lib/types/screens/chatOverlay.d.ts +17 -1
  151. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  152. package/lib/types/screens/chatOverlay.js +3 -1
  153. package/lib/types/tips.d.ts.map +1 -1
  154. package/lib/types/tips.js +22 -4
  155. package/lib/types/update.d.ts +159 -0
  156. package/lib/types/update.d.ts.map +1 -1
  157. package/lib/types/update.js +496 -30
  158. package/lib/types/utils/debug.d.ts +1 -1
  159. package/lib/types/utils/debug.js +3 -3
  160. package/lib/types/utils/fileTarget.d.ts +46 -0
  161. package/lib/types/utils/fileTarget.d.ts.map +1 -0
  162. package/lib/types/utils/fileTarget.js +178 -0
  163. package/lib/types/utils/keymap.d.ts +134 -0
  164. package/lib/types/utils/keymap.d.ts.map +1 -0
  165. package/lib/types/utils/keymap.js +311 -0
  166. package/lib/types/utils/mentions.d.ts +25 -2
  167. package/lib/types/utils/mentions.d.ts.map +1 -1
  168. package/lib/types/utils/mentions.js +69 -10
  169. package/lib/types/utils/openExternal.d.ts +50 -0
  170. package/lib/types/utils/openExternal.d.ts.map +1 -0
  171. package/lib/types/utils/openExternal.js +170 -0
  172. package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -0
  173. package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +140 -0
  174. package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +11 -0
  175. package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -0
  176. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.d.ts +14 -0
  177. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.js +67 -0
  178. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.d.ts +64 -0
  179. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.js +170 -0
  180. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.d.ts +79 -0
  181. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.js +196 -0
  182. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.d.ts +68 -0
  183. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +193 -0
  184. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.d.ts +32 -0
  185. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.js +101 -0
  186. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.d.ts +31 -0
  187. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +68 -0
  188. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.d.ts +69 -0
  189. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +129 -0
  190. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +70 -0
  191. package/node_modules/@dsh-std/command/CHANGELOG.md +8 -8
  192. package/node_modules/@dsh-std/command/LICENSE +21 -21
  193. package/node_modules/@dsh-std/command/README.md +26 -26
  194. package/node_modules/@dsh-std/command/README.zh.md +28 -28
  195. package/node_modules/@dsh-std/command/lib/index.js.map +1 -1
  196. package/node_modules/@dsh-std/command/package.json +22 -22
  197. package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
  198. package/node_modules/@dsh-std/connection/LICENSE +21 -21
  199. package/node_modules/@dsh-std/connection/README.md +42 -42
  200. package/node_modules/@dsh-std/connection/README.zh.md +42 -42
  201. package/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
  202. package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
  203. package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
  204. package/node_modules/@dsh-std/connection/package.json +20 -20
  205. package/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  206. package/node_modules/@dsh-std/core/LICENSE +21 -21
  207. package/node_modules/@dsh-std/core/README.md +13 -13
  208. package/node_modules/@dsh-std/core/README.zh.md +13 -13
  209. package/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  210. package/node_modules/@dsh-std/core/package.json +21 -21
  211. package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
  212. package/node_modules/@dsh-std/manifest/LICENSE +21 -21
  213. package/node_modules/@dsh-std/manifest/README.md +5 -5
  214. package/node_modules/@dsh-std/manifest/README.zh.md +5 -5
  215. package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
  216. package/node_modules/@dsh-std/manifest/package.json +20 -20
  217. package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
  218. package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -8
  219. package/node_modules/@dsh-std/messages/LICENSE +21 -21
  220. package/node_modules/@dsh-std/messages/README.md +5 -5
  221. package/node_modules/@dsh-std/messages/README.zh.md +7 -7
  222. package/node_modules/@dsh-std/messages/lib/index.js.map +1 -1
  223. package/node_modules/@dsh-std/messages/package.json +20 -20
  224. package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -54
  225. package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
  226. package/node_modules/@dsh-std/presentation/LICENSE +21 -21
  227. package/node_modules/@dsh-std/presentation/README.md +27 -27
  228. package/node_modules/@dsh-std/presentation/README.zh.md +29 -29
  229. package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
  230. package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
  231. package/node_modules/@dsh-std/presentation/package.json +25 -25
  232. package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -8
  233. package/node_modules/@dsh-std/storage/LICENSE +21 -21
  234. package/node_modules/@dsh-std/storage/README.md +5 -5
  235. package/node_modules/@dsh-std/storage/README.zh.md +7 -7
  236. package/node_modules/@dsh-std/storage/lib/index.js.map +1 -1
  237. package/node_modules/@dsh-std/storage/package.json +20 -20
  238. package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -56
  239. package/package.json +17 -5
  240. package/presets/liangshen/.dsh-tui-managed.json +1 -1
  241. package/presets/liangshen/instruction-hint.mjs +8 -0
  242. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
  243. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -21
  244. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -42
  245. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -42
  246. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
  247. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
  248. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
  249. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -20
  250. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  251. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -21
  252. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -13
  253. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -13
  254. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  255. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -21
  256. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
  257. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -21
  258. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -5
  259. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -5
  260. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
  261. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -20
  262. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
  263. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
  264. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -21
  265. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -27
  266. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -29
  267. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
  268. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
  269. package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -25
  270. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  271. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -21
  272. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -13
  273. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -13
  274. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  275. package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -21
  276. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  277. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -21
  278. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -13
  279. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -13
  280. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  281. package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -21
  282. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  283. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -21
  284. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -13
  285. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -13
  286. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  287. package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -21
  288. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
  289. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -21
  290. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -42
  291. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -42
  292. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
  293. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
  294. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
  295. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -20
  296. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  297. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -21
  298. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -13
  299. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -13
  300. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  301. package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -21
  302. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
  303. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -21
  304. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -13
  305. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -13
  306. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -1
  307. package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -21
@@ -1,149 +1,149 @@
1
- {
2
- "profileVersion": "tui-admission/0.15",
3
- "std": {
4
- "repository": "https://github.com/Yan-Zero/dsh-std",
5
- "submodule": "vendor/dsh-std",
6
- "manifestVersion": "0.15"
7
- },
8
- "imports": [
9
- {
10
- "name": "commands",
11
- "coordinates": {
12
- "apiVersion": "commands.dsh/v1alpha1",
13
- "kind": "Command"
14
- },
15
- "package": "@dsh-std/command",
16
- "kind": "capability",
17
- "permissions": [
18
- "commands.invoke"
19
- ]
20
- },
21
- {
22
- "name": "storage.local",
23
- "coordinates": {
24
- "apiVersion": "storage.dsh/v1alpha1",
25
- "kind": "LocalStorage"
26
- },
27
- "package": "@dsh-std/storage",
28
- "kind": "capability",
29
- "permissions": [
30
- "storage.local.read",
31
- "storage.local.write"
32
- ]
33
- },
34
- {
35
- "name": "messages.observe",
36
- "coordinates": {
37
- "apiVersion": "messages.dsh/v1alpha1",
38
- "kind": "MessageObserver"
39
- },
40
- "package": "@dsh-std/messages",
41
- "kind": "event",
42
- "permissions": [
43
- "messages.observe.read"
44
- ],
45
- "eventEnvelope": "@dsh-std/messages/schema/message-observer-envelope-0.15.json"
46
- },
47
- {
48
- "name": "presentation.open-external",
49
- "coordinates": {
50
- "apiVersion": "presentation.dsh/v1alpha1",
51
- "kind": "OpenExternal"
52
- },
53
- "package": "@dsh-std/presentation",
54
- "kind": "capability",
55
- "permissions": []
56
- },
57
- {
58
- "name": "presentation.user-interaction",
59
- "coordinates": {
60
- "apiVersion": "presentation.dsh/v1alpha1",
61
- "kind": "UserInteraction"
62
- },
63
- "package": "@dsh-std/presentation",
64
- "kind": "capability",
65
- "permissions": []
66
- },
67
- {
68
- "name": "presentation.external-redirect",
69
- "coordinates": {
70
- "apiVersion": "presentation.dsh/v1alpha1",
71
- "kind": "ExternalRedirect"
72
- },
73
- "package": "@dsh-std/presentation",
74
- "kind": "capability",
75
- "permissions": []
76
- }
77
- ],
78
- "definitions": [
79
- {
80
- "name": "tui.decision-events",
81
- "authority": "dsh-tui",
82
- "coordinates": {
83
- "apiVersion": "tui.dsh/v1alpha1",
84
- "kind": "DecisionEvents"
85
- },
86
- "kind": "capability",
87
- "profile": "registry/contracts/decision-events-v1alpha1.json",
88
- "profileHash": "sha256:56440dde1b00c210b22761a0cba139ce0a20207330567777cebe1e48b494ceb0",
89
- "permissions": [
90
- "session.input.intercept",
91
- "session.rewind.intercept",
92
- "session.switch.intercept",
93
- "session.compact.intercept"
94
- ]
95
- },
96
- {
97
- "name": "tui.channel",
98
- "authority": "dsh-tui",
99
- "coordinates": {
100
- "apiVersion": "tui.dsh/v1alpha1",
101
- "kind": "Channel"
102
- },
103
- "kind": "capability",
104
- "profile": "registry/contracts/tui-channel-v1alpha1.json",
105
- "profileHash": "sha256:2d0668656d999a8cacd363cd3c76207f9392118be8a83e6dd5f81b54ae063fe6",
106
- "permissions": []
107
- }
108
- ],
109
- "extensions": [
110
- {
111
- "name": "workspace.provider",
112
- "authority": "dsh-std",
113
- "coordinates": {
114
- "apiVersion": "workspace.dsh/v1alpha1",
115
- "kind": "WorkspaceProvider"
116
- },
117
- "kind": "extension",
118
- "package": "@dsh-std/workspace",
119
- "permissions": []
120
- },
121
- {
122
- "name": "tui.settings-section",
123
- "authority": "dsh-tui",
124
- "coordinates": {
125
- "apiVersion": "tui.dsh/v1alpha1",
126
- "kind": "SettingsSection"
127
- },
128
- "kind": "extension",
129
- "profile": "registry/contracts/settings-section-v1alpha1.json",
130
- "profileHash": "sha256:685b0f17fe489f458e9b799811f61c42b858330584e95ecb97e7216b5be100ac",
131
- "permissions": []
132
- },
133
- {
134
- "name": "tui.scene",
135
- "authority": "dsh-tui",
136
- "coordinates": {
137
- "apiVersion": "tui.dsh/v1alpha1",
138
- "kind": "Scene"
139
- },
140
- "kind": "extension",
141
- "profile": "registry/contracts/scene-v1alpha1.json",
142
- "profileHash": "sha256:69ce3ae26d60dea2ed170376db8a1fb5860c94bd192c62681423c1d848ec2b26",
143
- "permissions": []
144
- }
145
- ],
146
- "facetApiVersions": [
147
- "v1alpha1"
148
- ]
149
- }
1
+ {
2
+ "profileVersion": "tui-admission/0.15",
3
+ "std": {
4
+ "repository": "https://github.com/Yan-Zero/dsh-std",
5
+ "submodule": "vendor/dsh-std",
6
+ "manifestVersion": "0.15"
7
+ },
8
+ "imports": [
9
+ {
10
+ "name": "commands",
11
+ "coordinates": {
12
+ "apiVersion": "commands.dsh/v1alpha1",
13
+ "kind": "Command"
14
+ },
15
+ "package": "@dsh-std/command",
16
+ "kind": "capability",
17
+ "permissions": [
18
+ "commands.invoke"
19
+ ]
20
+ },
21
+ {
22
+ "name": "storage.local",
23
+ "coordinates": {
24
+ "apiVersion": "storage.dsh/v1alpha1",
25
+ "kind": "LocalStorage"
26
+ },
27
+ "package": "@dsh-std/storage",
28
+ "kind": "capability",
29
+ "permissions": [
30
+ "storage.local.read",
31
+ "storage.local.write"
32
+ ]
33
+ },
34
+ {
35
+ "name": "messages.observe",
36
+ "coordinates": {
37
+ "apiVersion": "messages.dsh/v1alpha1",
38
+ "kind": "MessageObserver"
39
+ },
40
+ "package": "@dsh-std/messages",
41
+ "kind": "event",
42
+ "permissions": [
43
+ "messages.observe.read"
44
+ ],
45
+ "eventEnvelope": "@dsh-std/messages/schema/message-observer-envelope-0.15.json"
46
+ },
47
+ {
48
+ "name": "presentation.open-external",
49
+ "coordinates": {
50
+ "apiVersion": "presentation.dsh/v1alpha1",
51
+ "kind": "OpenExternal"
52
+ },
53
+ "package": "@dsh-std/presentation",
54
+ "kind": "capability",
55
+ "permissions": []
56
+ },
57
+ {
58
+ "name": "presentation.user-interaction",
59
+ "coordinates": {
60
+ "apiVersion": "presentation.dsh/v1alpha1",
61
+ "kind": "UserInteraction"
62
+ },
63
+ "package": "@dsh-std/presentation",
64
+ "kind": "capability",
65
+ "permissions": []
66
+ },
67
+ {
68
+ "name": "presentation.external-redirect",
69
+ "coordinates": {
70
+ "apiVersion": "presentation.dsh/v1alpha1",
71
+ "kind": "ExternalRedirect"
72
+ },
73
+ "package": "@dsh-std/presentation",
74
+ "kind": "capability",
75
+ "permissions": []
76
+ }
77
+ ],
78
+ "definitions": [
79
+ {
80
+ "name": "tui.decision-events",
81
+ "authority": "dsh-tui",
82
+ "coordinates": {
83
+ "apiVersion": "tui.dsh/v1alpha1",
84
+ "kind": "DecisionEvents"
85
+ },
86
+ "kind": "capability",
87
+ "profile": "registry/contracts/decision-events-v1alpha1.json",
88
+ "profileHash": "sha256:56440dde1b00c210b22761a0cba139ce0a20207330567777cebe1e48b494ceb0",
89
+ "permissions": [
90
+ "session.input.intercept",
91
+ "session.rewind.intercept",
92
+ "session.switch.intercept",
93
+ "session.compact.intercept"
94
+ ]
95
+ },
96
+ {
97
+ "name": "tui.channel",
98
+ "authority": "dsh-tui",
99
+ "coordinates": {
100
+ "apiVersion": "tui.dsh/v1alpha1",
101
+ "kind": "Channel"
102
+ },
103
+ "kind": "capability",
104
+ "profile": "registry/contracts/tui-channel-v1alpha1.json",
105
+ "profileHash": "sha256:2d0668656d999a8cacd363cd3c76207f9392118be8a83e6dd5f81b54ae063fe6",
106
+ "permissions": []
107
+ }
108
+ ],
109
+ "extensions": [
110
+ {
111
+ "name": "workspace.provider",
112
+ "authority": "dsh-std",
113
+ "coordinates": {
114
+ "apiVersion": "workspace.dsh/v1alpha1",
115
+ "kind": "WorkspaceProvider"
116
+ },
117
+ "kind": "extension",
118
+ "package": "@dsh-std/workspace",
119
+ "permissions": []
120
+ },
121
+ {
122
+ "name": "tui.settings-section",
123
+ "authority": "dsh-tui",
124
+ "coordinates": {
125
+ "apiVersion": "tui.dsh/v1alpha1",
126
+ "kind": "SettingsSection"
127
+ },
128
+ "kind": "extension",
129
+ "profile": "registry/contracts/settings-section-v1alpha1.json",
130
+ "profileHash": "sha256:685b0f17fe489f458e9b799811f61c42b858330584e95ecb97e7216b5be100ac",
131
+ "permissions": []
132
+ },
133
+ {
134
+ "name": "tui.scene",
135
+ "authority": "dsh-tui",
136
+ "coordinates": {
137
+ "apiVersion": "tui.dsh/v1alpha1",
138
+ "kind": "Scene"
139
+ },
140
+ "kind": "extension",
141
+ "profile": "registry/contracts/scene-v1alpha1.json",
142
+ "profileHash": "sha256:69ce3ae26d60dea2ed170376db8a1fb5860c94bd192c62681423c1d848ec2b26",
143
+ "permissions": []
144
+ }
145
+ ],
146
+ "facetApiVersions": [
147
+ "v1alpha1"
148
+ ]
149
+ }
@@ -4,6 +4,12 @@ export declare const OSC8_START = "\u001B]8;;";
4
4
  export declare const OSC8_END = "\u0007";
5
5
  type HyperlinkOptions = {
6
6
  supportsHyperlinks?: boolean;
7
+ /**
8
+ * Override the default blue styling of the display text — callers that
9
+ * already painted the content (code spans keep their permission color)
10
+ * pass the identity here so the OSC 8 wrap does not recolor it.
11
+ */
12
+ style?: (text: string) => string;
7
13
  };
8
14
  /**
9
15
  * Create a clickable hyperlink using OSC 8 escape sequences.
@@ -13,7 +19,7 @@ type HyperlinkOptions = {
13
19
  * @param content - Optional content to display as the link text (only when hyperlinks are supported).
14
20
  * If provided and hyperlinks are supported, this text is shown as a clickable link.
15
21
  * If hyperlinks are not supported, content is ignored and only the URL is shown.
16
- * @param options - Optional overrides for testing (supportsHyperlinks)
22
+ * @param options - Optional overrides for testing (supportsHyperlinks, style)
17
23
  * @returns The OSC 8-wrapped blue link text, or the plain URL when the terminal lacks hyperlink support.
18
24
  */
19
25
  export declare function createHyperlink(url: string, content?: string, options?: HyperlinkOptions): string;
@@ -1 +1 @@
1
- {"version":3,"file":"hyperlink.d.ts","sourceRoot":"","sources":["../../../src/cc/hyperlink.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,UAAU,eAAa,CAAA;AACpC,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,WAAS,CAAA;AAE9B,KAAK,gBAAgB,GAAG;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAWR"}
1
+ {"version":3,"file":"hyperlink.d.ts","sourceRoot":"","sources":["../../../src/cc/hyperlink.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,UAAU,eAAa,CAAA;AACpC,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,WAAS,CAAA;AAE9B,KAAK,gBAAgB,GAAG;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACjC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAYR"}
@@ -15,7 +15,7 @@ export const OSC8_END = '\x07';
15
15
  * @param content - Optional content to display as the link text (only when hyperlinks are supported).
16
16
  * If provided and hyperlinks are supported, this text is shown as a clickable link.
17
17
  * If hyperlinks are not supported, content is ignored and only the URL is shown.
18
- * @param options - Optional overrides for testing (supportsHyperlinks)
18
+ * @param options - Optional overrides for testing (supportsHyperlinks, style)
19
19
  * @returns The OSC 8-wrapped blue link text, or the plain URL when the terminal lacks hyperlink support.
20
20
  */
21
21
  export function createHyperlink(url, content, options) {
@@ -26,6 +26,7 @@ export function createHyperlink(url, content, options) {
26
26
  // Apply basic ANSI blue color - wrap-ansi preserves this across line breaks
27
27
  // RGB colors (like theme colors) are NOT preserved by wrap-ansi with OSC 8
28
28
  const displayText = content ?? url;
29
- const coloredText = chalk.blue(displayText);
29
+ const style = options?.style ?? ((text) => chalk.blue(text));
30
+ const coloredText = style(displayText);
30
31
  return `${OSC8_START}${url}${OSC8_END}${coloredText}${OSC8_START}${OSC8_END}`;
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/cc/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAA4B,KAAK,KAAK,EAAe,MAAM,QAAQ,CAAA;AAO1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA4BrD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAuCD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,EACZ,SAAS,SAAI,EACb,iBAAiB,GAAE,MAAM,GAAG,IAAW,EACvC,MAAM,GAAE,KAAK,GAAG,IAAW,EAC3B,SAAS,GAAE,YAAY,GAAG,IAAW,GACpC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,YAAY,GAAG,IAAW,GACpC,MAAM,CAgBR;AA2SD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAUR"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/cc/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAA4B,KAAK,KAAK,EAAe,MAAM,QAAQ,CAAA;AAO1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA6BrD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAsED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,EACZ,SAAS,SAAI,EACb,iBAAiB,GAAE,MAAM,GAAG,IAAW,EACvC,MAAM,GAAE,KAAK,GAAG,IAAW,EAC3B,SAAS,GAAE,YAAY,GAAG,IAAW,GACpC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,YAAY,GAAG,IAAW,GACpC,MAAM,CAgBR;AA2SD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAUR"}
@@ -21,6 +21,7 @@ import { getActiveTheme } from '../theme.js';
21
21
  import { buildSyntaxTheme } from './syntaxTheme.js';
22
22
  import { logForDebugging } from '../utils/debug.js';
23
23
  import { createHyperlink } from './hyperlink.js';
24
+ import { fileLinkUrl, linkifyFilePaths, looksLikeFilePath } from '../utils/fileTarget.js';
24
25
  // '\n' is used unconditionally — os.EOL is '\r\n' on Windows, and the stray
25
26
  // '\r' breaks the character-to-segment mapping in applyStylesToWrappedText,
26
27
  // shifting styled text to the right.
@@ -71,6 +72,35 @@ export function configureMarked() {
71
72
  function paintInlineCode(text) {
72
73
  return colorize(text, getActiveTheme().permission, 'foreground');
73
74
  }
75
+ /**
76
+ * Inline code that reads as a file path becomes a clickable target (the
77
+ * OSC 8 wrap keeps the code's permission color via the identity style —
78
+ * createHyperlink's default blue would otherwise override it). Terminals
79
+ * without OSC 8 support keep the plain painted code span.
80
+ */
81
+ function renderCodeSpan(token) {
82
+ const painted = paintInlineCode(token.text);
83
+ if (!looksLikeFilePath(token.text))
84
+ return painted;
85
+ if (!supportsHyperlinks())
86
+ return painted;
87
+ return createHyperlink(fileLinkUrl(token.text), painted, {
88
+ style: (text) => text,
89
+ });
90
+ }
91
+ /**
92
+ * Linkify path-like text into clickable file targets, then issue
93
+ * references (owner/repo#123). File spans exclude `#`, so the two
94
+ * linkifiers cannot nest or overlap. Without OSC 8 support the text stays
95
+ * untouched (createHyperlink's URL fallback would show the raw encoded
96
+ * `dsh-file:` payload — worse than plain text).
97
+ */
98
+ function linkifyText(text) {
99
+ const withFiles = supportsHyperlinks()
100
+ ? linkifyFilePaths(text, (path, display) => createHyperlink(fileLinkUrl(path), display))
101
+ : text;
102
+ return linkifyIssueReferences(withFiles);
103
+ }
74
104
  /** A fresh context for block-level children: list state reset, no parent. */
75
105
  function fresh(state) {
76
106
  return { highlight: state.highlight, parent: null, listDepth: 0, ordinal: null };
@@ -134,7 +164,7 @@ function dispatch(token, state) {
134
164
  if (isToken(token, 'code'))
135
165
  return renderCodeBlock(token, state);
136
166
  if (isToken(token, 'codespan'))
137
- return paintInlineCode(token.text);
167
+ return renderCodeSpan(token);
138
168
  if (isToken(token, 'em'))
139
169
  return renderEmphasis(token, state);
140
170
  if (isToken(token, 'strong'))
@@ -280,13 +310,13 @@ function renderText(token, state) {
280
310
  const bullet = ordinal === null ? '-' : `${formatListMarker(listDepth, ordinal)}.`;
281
311
  const body = token.tokens
282
312
  ? token.tokens.map(child => dispatch(child, withParent(state, token))).join('')
283
- : linkifyIssueReferences(token.text);
313
+ : linkifyText(token.text);
284
314
  // Blue bullet marker: list structure gets a tint without loading the
285
315
  // whole item (kimi-style `•` in the accent color).
286
316
  const tinted = colorize(bullet, getActiveTheme().permission, 'foreground');
287
317
  return `${tinted} ${body}${EOL}`;
288
318
  }
289
- return linkifyIssueReferences(token.text);
319
+ return linkifyText(token.text);
290
320
  }
291
321
  function renderTable(token, state) {
292
322
  const rows = [token.header, ...token.rows];
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Session accent colors for `/color` (CC's /color semantics): a small
3
+ * named palette that overrides the prompt-input border (and its session
4
+ * label chip) for ONE session, so side-by-side sessions can be told apart
5
+ * at a glance. The name is persisted per session via a `session/color`
6
+ * log event (channel.ts); these hex values are what the name resolves to
7
+ * at render time.
8
+ *
9
+ * Values are mid-tone hues (Radix accent family, the same family CC's
10
+ * /color palette comes from) chosen to stay readable as a border/accent
11
+ * on both light and dark terminals.
12
+ */
13
+ /** Named session accent colors: name → hex. */
14
+ export declare const SESSION_COLORS: Readonly<Record<string, `#${string}`>>;
15
+ /** The accepted `/color <name>` names, in display order. */
16
+ export declare const SESSION_COLOR_NAMES: readonly string[];
17
+ /**
18
+ * Whether `name` is a known session accent color (used by both the
19
+ * command dispatch and the render-time resolution).
20
+ */
21
+ export declare function isValidSessionColor(name: string): boolean;
22
+ /**
23
+ * Resolve a session color name to its hex value, or undefined when the
24
+ * name is unknown/empty (caller keeps the theme default).
25
+ */
26
+ export declare function sessionColorHex(name: string): `#${string}` | undefined;
27
+ //# sourceMappingURL=sessionColors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionColors.d.ts","sourceRoot":"","sources":["../../../src/cc/sessionColors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC,CASjE,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAgC,CAAA;AAEjF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,GAAG,SAAS,CAEtE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Session accent colors for `/color` (CC's /color semantics): a small
3
+ * named palette that overrides the prompt-input border (and its session
4
+ * label chip) for ONE session, so side-by-side sessions can be told apart
5
+ * at a glance. The name is persisted per session via a `session/color`
6
+ * log event (channel.ts); these hex values are what the name resolves to
7
+ * at render time.
8
+ *
9
+ * Values are mid-tone hues (Radix accent family, the same family CC's
10
+ * /color palette comes from) chosen to stay readable as a border/accent
11
+ * on both light and dark terminals.
12
+ */
13
+ /** Named session accent colors: name → hex. */
14
+ export const SESSION_COLORS = {
15
+ red: '#E5484D',
16
+ orange: '#F76B15',
17
+ yellow: '#FFB224',
18
+ green: '#46A758',
19
+ blue: '#3E63DD',
20
+ purple: '#8E4EC6',
21
+ pink: '#D6409F',
22
+ cyan: '#12A594',
23
+ };
24
+ /** The accepted `/color <name>` names, in display order. */
25
+ export const SESSION_COLOR_NAMES = Object.keys(SESSION_COLORS);
26
+ /**
27
+ * Whether `name` is a known session accent color (used by both the
28
+ * command dispatch and the render-time resolution).
29
+ */
30
+ export function isValidSessionColor(name) {
31
+ return Object.prototype.hasOwnProperty.call(SESSION_COLORS, name);
32
+ }
33
+ /**
34
+ * Resolve a session color name to its hex value, or undefined when the
35
+ * name is unknown/empty (caller keeps the theme default).
36
+ */
37
+ export function sessionColorHex(name) {
38
+ return isValidSessionColor(name) ? SESSION_COLORS[name] : undefined;
39
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAElF,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,EA0DxC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAElD,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIhG;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,YAAY,EAAmB,GAC7C,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,YAAY,EAAmB,GAC7C,YAAY,EAAE,CAKhB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,SAAS,YAAY,EAAmB,EAC/C,QAAQ,GAAE,eAA0B,GACnC,iBAAiB,EAAE,CAuCrB"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAElF,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,EAgExC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAElD,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIhG;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,YAAY,EAAmB,GAC7C,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,YAAY,EAAmB,GAC7C,YAAY,EAAE,CAKhB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,SAAS,YAAY,EAAmB,EAC/C,QAAQ,GAAE,eAA0B,GACnC,iBAAiB,EAAE,CAuCrB"}
@@ -18,7 +18,10 @@ export const LOCAL_COMMANDS = [
18
18
  { name: 'compact', description: 'Compact the conversation history' },
19
19
  { name: 'resume', description: 'Resume a previous session' },
20
20
  { name: 'rename', description: 'Rename the current session' },
21
+ { name: 'recap', description: 'Generate a recap of recent session activity' },
21
22
  { name: 'rewind', description: 'Rewind the conversation to a previous message' },
23
+ { name: 'tree', description: 'Browse the session family tree (rewind / fork / adopt)' },
24
+ { name: 'fork', description: 'Fork the current session into a resumable copy' },
22
25
  { name: 'export', description: 'Export the conversation to a markdown file' },
23
26
  { name: 'btw', description: 'Ask a quick side question without interrupting the conversation' },
24
27
  { name: 'trace', description: 'Show the session event trace timeline' },
@@ -27,6 +30,7 @@ export const LOCAL_COMMANDS = [
27
30
  { name: 'status', description: 'Show session status' },
28
31
  { name: 'cost', description: 'Show session token usage' },
29
32
  { name: 'config', description: 'Show the dsh-tui configuration source' },
33
+ { name: 'reload', description: 'Reload preference files from disk and apply live' },
30
34
  { name: 'settings', description: 'View and edit plugin settings' },
31
35
  { name: 'doctor', description: 'Run environment checks' },
32
36
  { name: 'init', description: 'Create AGENTS.md in the working directory' },
@@ -35,6 +39,7 @@ export const LOCAL_COMMANDS = [
35
39
  { name: 'activity', description: 'Switch the working-activity indicator preset' },
36
40
  { name: 'preset', description: 'Switch the agent preset (including Liangshen mode)' },
37
41
  { name: 'theme', description: 'Switch the color theme (auto, built-in or custom)' },
42
+ { name: 'color', description: 'Set the current session accent color' },
38
43
  { name: 'lang', description: 'Switch the UI language (en / zh)' },
39
44
  { name: 'model', description: 'Show the active model' },
40
45
  { name: 'effort', description: 'Adjust the reasoning effort (slider)' },
@@ -66,6 +71,7 @@ export const LOCAL_COMMANDS = [
66
71
  // Help / exit
67
72
  { name: 'help', description: 'Show shortcuts and commands' },
68
73
  { name: 'tips', description: 'Show usage tips and shortcuts' },
74
+ { name: 'restart', description: 'Restart dsh-tui and resume this session' },
69
75
  { name: 'exit', description: 'Exit dsh-tui' },
70
76
  { name: 'quit', description: 'Exit dsh-tui', tag: 'alias of /exit' },
71
77
  { name: 'q', description: 'Exit dsh-tui', tag: 'alias of /exit' },
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ /**
3
+ * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
4
+ * at the bottom of the transcript after an automatic summary on session
5
+ * open/resume — a thin divider, then a `回顾:` line showing the session
6
+ * tail in FULL (wraps over lines rather than truncating, like a colleague
7
+ * catching the user up). Hover reveals the affordances on their own row;
8
+ * click expands into the full RecapPanel; the dismiss chip hides the row
9
+ * until the next session switch. It bows out on its own once the user
10
+ * starts a new message (see Chat.tsx). Keyboard users keep `/recap` for
11
+ * the full panel.
12
+ */
13
+ export declare function AutoRecapRow({ summary, streaming, onExpand, onDismiss, }: {
14
+ /** The one-line summary (streamed raw, then replaced on settle). */
15
+ summary: string;
16
+ /** True while the recap call is in flight. */
17
+ streaming: boolean;
18
+ /** Expand into the full RecapPanel (click on the row). */
19
+ onExpand: () => void;
20
+ /** Dismiss the row until the next session switch. */
21
+ onDismiss: () => void;
22
+ }): React.ReactNode;
23
+ //# sourceMappingURL=AutoRecapRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoRecapRow.d.ts","sourceRoot":"","sources":["../../../src/components/AutoRecapRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE;IACD,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,qDAAqD;IACrD,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB,GAAG,KAAK,CAAC,SAAS,CA6BlB"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Box, Text } from '../ui.js';
4
+ import { Divider } from './design-system/Divider.js';
5
+ import { t } from '../i18n.js';
6
+ /**
7
+ * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
8
+ * at the bottom of the transcript after an automatic summary on session
9
+ * open/resume — a thin divider, then a `回顾:` line showing the session
10
+ * tail in FULL (wraps over lines rather than truncating, like a colleague
11
+ * catching the user up). Hover reveals the affordances on their own row;
12
+ * click expands into the full RecapPanel; the dismiss chip hides the row
13
+ * until the next session switch. It bows out on its own once the user
14
+ * starts a new message (see Chat.tsx). Keyboard users keep `/recap` for
15
+ * the full panel.
16
+ */
17
+ export function AutoRecapRow({ summary, streaming, onExpand, onDismiss, }) {
18
+ const [hovered, setHovered] = React.useState(false);
19
+ const line = t('recap-auto-line', {
20
+ summary: streaming ? t('recap-answering') : summary,
21
+ });
22
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Divider, {}), _jsxs(Box, { flexDirection: "column", marginTop: 1, marginLeft: 1, onClick: onExpand, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [_jsx(Text, { dimColor: !hovered, children: line }), hovered && (_jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: [" [", t('recap-auto-hint'), "]"] }), _jsx(Box, { onClick: onDismiss, children: _jsxs(Text, { color: "warning", children: [" [\u00D7 ", t('recap-auto-close'), "]"] }) })] }))] })] }));
23
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ /**
3
+ * Session accent color picker (bare `/color`): a permission-colored Pane
4
+ * listing the whole palette with a colored swatch per row, `❯` focus
5
+ * pointer and `✓` on the session's current color. Enter applies through
6
+ * `channel.setSessionColor`, Esc cancels. The palette is static, so the
7
+ * picker never needs an async list.
8
+ */
9
+ export declare function ColorPicker({ focusIndex, currentColor, onPick, }: {
10
+ focusIndex: number;
11
+ /** The session's current accent color name ('' = theme default). */
12
+ currentColor: string;
13
+ /** Mouse pick (fullscreen): clicked row's absolute index (Chat applies
14
+ * the same code path as the keyboard Enter). */
15
+ onPick?: (index: number) => void;
16
+ }): React.ReactNode;
17
+ //# sourceMappingURL=ColorPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.d.ts","sourceRoot":"","sources":["../../../src/components/ColorPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,YAAY,EACZ,MAAM,GACP,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAA;IACpB;qDACiD;IACjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC,GAAG,KAAK,CAAC,SAAS,CA6BlB"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from '../i18n.js';
3
+ import { Box, Text } from '../ui.js';
4
+ import { Pane } from './design-system/Pane.js';
5
+ import { Select } from './Select.js';
6
+ import { HintLine } from './design-system/HintLine.js';
7
+ import { SESSION_COLOR_NAMES, SESSION_COLORS } from '../cc/sessionColors.js';
8
+ /**
9
+ * Session accent color picker (bare `/color`): a permission-colored Pane
10
+ * listing the whole palette with a colored swatch per row, `❯` focus
11
+ * pointer and `✓` on the session's current color. Enter applies through
12
+ * `channel.setSessionColor`, Esc cancels. The palette is static, so the
13
+ * picker never needs an async list.
14
+ */
15
+ export function ColorPicker({ focusIndex, currentColor, onPick, }) {
16
+ return (_jsx(Pane, { color: "permission", children: _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "remember", bold: true, children: t('picker-title-color') }) }), _jsx(Select, { options: SESSION_COLOR_NAMES.map(name => ({
17
+ value: name,
18
+ label: (_jsxs(Text, { children: [_jsx(Text, { color: SESSION_COLORS[name], children: "\u25CF " }), name] })),
19
+ })), focusIndex: focusIndex, selectedValue: currentColor === '' ? undefined : currentColor, onPick: onPick ? index => onPick(index) : undefined }), _jsx(Text, { dimColor: true, italic: true, children: _jsx(HintLine, { text: t('hint-confirm-exit') }) })] }) }));
20
+ }