@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
@@ -319,6 +319,27 @@ export class LogUpdate {
319
319
  if (linesToClear > prev.viewport.height) {
320
320
  return fullResetSequence_CAUSES_FLICKER(next, 'offscreen', this.options.stylePool);
321
321
  }
322
+ // Record the scrollback rows stranded by this shrink. The terminal's
323
+ // scrollback cannot shrink with the content: rows that were above the
324
+ // viewport BEFORE the shrink stay there after it, but the heights
325
+ // formula below (height - viewport + cursorRestoreScroll) recomputes
326
+ // scrollback from the SMALLER next height on every following frame and
327
+ // undercounts by the shrink delta. Those frames then treat a
328
+ // scrolled-away row as reachable, the cursor-up move clamps at the
329
+ // viewport top, and the whole relative write chain lands one row low —
330
+ // stale duplicate rows and torn leading cells that no later sparse
331
+ // diff ever repairs (verify-trace-scene settle-gap flake). The
332
+ // shrink-to-below-viewport branch above already records this via
333
+ // shrinkAnchoredRepaint; this ordinary-diff shrink path must record it
334
+ // too. viewportY takes max(anchoredPad, heights formula), so the pad
335
+ // naturally hands back to the formula once growth scrolls the gap away.
336
+ if (!altScreen) {
337
+ const strandedScrollback = Math.max(0, prev.screen.height - prev.viewport.height) +
338
+ cursorRestoreScroll;
339
+ if (strandedScrollback > this.state.anchoredPad) {
340
+ this.state.anchoredPad = strandedScrollback;
341
+ }
342
+ }
322
343
  // clear(N) moves cursor UP by N-1 lines and to column 0
323
344
  // This puts us at line prev.screen.height - N = next.screen.height
324
345
  // But we want to be at next.screen.height - 1 (bottom of new screen)
@@ -0,0 +1,60 @@
1
+ /**
2
+ * One-time local migrations (`~/.dsh-tui/migrations.json`), keyed by stable
3
+ * migration id → ISO timestamp. Named keys (not a bare flag) so later
4
+ * migrations can append entries without a format change. Best-effort like
5
+ * every prefs file: a missing/corrupt file reads as "nothing applied yet",
6
+ * and a failed write simply leaves the migration to retry on a later boot.
7
+ */
8
+ /**
9
+ * The fullscreen factory-default flip (schema + `cordis.patch.yml`, 0.9.x):
10
+ * a `fullscreen: false` pinned in the settings user layer BEFORE the flip
11
+ * keeps overriding the new default on every boot. The first boot past this
12
+ * migration clears that stale explicit choice once — see
13
+ * {@link planFullscreenFactoryMigration} for the decision table.
14
+ */
15
+ export declare const FULLSCREEN_FACTORY_MIGRATION = "fullscreen-factory-default";
16
+ /**
17
+ * Read the applied-migration map.
18
+ * @param dir - Prefs directory (injectable for tests).
19
+ * @returns Parsed migration map; empty on any read/parse failure.
20
+ */
21
+ export declare function readAppliedMigrations(dir?: string): Readonly<Record<string, unknown>>;
22
+ /**
23
+ * Record a migration as applied (merge write — other keys are never dropped).
24
+ * @param id - Migration id.
25
+ * @param dir - Prefs directory (injectable for tests).
26
+ * @returns True when the file was written, false on failure.
27
+ */
28
+ export declare function markMigrationApplied(id: string, dir?: string): boolean;
29
+ /** What this boot should do about the fullscreen factory-default flip. */
30
+ export type FullscreenFactoryPlan = 'unset' | 'mark' | 'done';
31
+ /**
32
+ * Decide the migration step from the settings scope's RESOLVED fullscreen
33
+ * value. The dsh-tui namespace declares no schema default and no `base`
34
+ * layer for `fullscreen`, so a resolved `false` can only come from the user
35
+ * layer — the pre-flip explicit choice this migration exists to clear:
36
+ * - `done` — marker present: never touch the user layer again, so a
37
+ * `false` written AFTER the migration (a deliberate /settings choice)
38
+ * always stands;
39
+ * - `unset` — stale pre-flip explicit `false`: the caller clears it via a
40
+ * settings `unset` op and boots fullscreen regardless — the doc write
41
+ * is async and must not race the synchronous boot decision, so the
42
+ * caller shadows the stale value out of its first settings apply;
43
+ * - `mark` — nothing to clear (unset or already `true`): record the
44
+ * marker now so a `false` set later is never mistaken for a stale one.
45
+ */
46
+ export declare function planFullscreenFactoryMigration(resolvedFullscreen: unknown, migrations: Readonly<Record<string, unknown>>): FullscreenFactoryPlan;
47
+ /**
48
+ * Persist the plan's side effects. For `unset` the marker lands only after
49
+ * the doc write succeeds — a failed write stays unmarked and the next boot
50
+ * retries (that boot already ran fullscreen off the shadowed value).
51
+ * Never rejects.
52
+ * @param plan - Decision from {@link planFullscreenFactoryMigration}.
53
+ * @param options - `unset` thunk issuing the settings write; `dir` injects
54
+ * the prefs directory for tests.
55
+ */
56
+ export declare function commitFullscreenFactoryMigration(plan: FullscreenFactoryPlan, options: {
57
+ unset: () => Promise<void>;
58
+ dir?: string;
59
+ }): Promise<void>;
60
+ //# sourceMappingURL=migrationPrefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrationPrefs.d.ts","sourceRoot":"","sources":["../../src/migrationPrefs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,+BAA+B,CAAA;AAExE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQhG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CASjF;AAED,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC5C,kBAAkB,EAAE,OAAO,EAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,qBAAqB,CAGvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * One-time local migrations (`~/.dsh-tui/migrations.json`), keyed by stable
3
+ * migration id → ISO timestamp. Named keys (not a bare flag) so later
4
+ * migrations can append entries without a format change. Best-effort like
5
+ * every prefs file: a missing/corrupt file reads as "nothing applied yet",
6
+ * and a failed write simply leaves the migration to retry on a later boot.
7
+ */
8
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
9
+ import { join } from 'node:path';
10
+ import { DATA_DIR } from './utils/paths.js';
11
+ const PREFS_DIR = DATA_DIR;
12
+ const MIGRATIONS_FILE = 'migrations.json';
13
+ /**
14
+ * The fullscreen factory-default flip (schema + `cordis.patch.yml`, 0.9.x):
15
+ * a `fullscreen: false` pinned in the settings user layer BEFORE the flip
16
+ * keeps overriding the new default on every boot. The first boot past this
17
+ * migration clears that stale explicit choice once — see
18
+ * {@link planFullscreenFactoryMigration} for the decision table.
19
+ */
20
+ export const FULLSCREEN_FACTORY_MIGRATION = 'fullscreen-factory-default';
21
+ /**
22
+ * Read the applied-migration map.
23
+ * @param dir - Prefs directory (injectable for tests).
24
+ * @returns Parsed migration map; empty on any read/parse failure.
25
+ */
26
+ export function readAppliedMigrations(dir = PREFS_DIR) {
27
+ try {
28
+ const parsed = JSON.parse(readFileSync(join(dir, MIGRATIONS_FILE), 'utf8'));
29
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
30
+ return {};
31
+ return parsed;
32
+ }
33
+ catch {
34
+ return {};
35
+ }
36
+ }
37
+ /**
38
+ * Record a migration as applied (merge write — other keys are never dropped).
39
+ * @param id - Migration id.
40
+ * @param dir - Prefs directory (injectable for tests).
41
+ * @returns True when the file was written, false on failure.
42
+ */
43
+ export function markMigrationApplied(id, dir = PREFS_DIR) {
44
+ try {
45
+ const current = readAppliedMigrations(dir);
46
+ mkdirSync(dir, { recursive: true });
47
+ writeFileSync(join(dir, MIGRATIONS_FILE), JSON.stringify({ ...current, [id]: new Date().toISOString() }, null, 2));
48
+ return true;
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ }
54
+ /**
55
+ * Decide the migration step from the settings scope's RESOLVED fullscreen
56
+ * value. The dsh-tui namespace declares no schema default and no `base`
57
+ * layer for `fullscreen`, so a resolved `false` can only come from the user
58
+ * layer — the pre-flip explicit choice this migration exists to clear:
59
+ * - `done` — marker present: never touch the user layer again, so a
60
+ * `false` written AFTER the migration (a deliberate /settings choice)
61
+ * always stands;
62
+ * - `unset` — stale pre-flip explicit `false`: the caller clears it via a
63
+ * settings `unset` op and boots fullscreen regardless — the doc write
64
+ * is async and must not race the synchronous boot decision, so the
65
+ * caller shadows the stale value out of its first settings apply;
66
+ * - `mark` — nothing to clear (unset or already `true`): record the
67
+ * marker now so a `false` set later is never mistaken for a stale one.
68
+ */
69
+ export function planFullscreenFactoryMigration(resolvedFullscreen, migrations) {
70
+ if (migrations[FULLSCREEN_FACTORY_MIGRATION] !== undefined)
71
+ return 'done';
72
+ return resolvedFullscreen === false ? 'unset' : 'mark';
73
+ }
74
+ /**
75
+ * Persist the plan's side effects. For `unset` the marker lands only after
76
+ * the doc write succeeds — a failed write stays unmarked and the next boot
77
+ * retries (that boot already ran fullscreen off the shadowed value).
78
+ * Never rejects.
79
+ * @param plan - Decision from {@link planFullscreenFactoryMigration}.
80
+ * @param options - `unset` thunk issuing the settings write; `dir` injects
81
+ * the prefs directory for tests.
82
+ */
83
+ export async function commitFullscreenFactoryMigration(plan, options) {
84
+ if (plan === 'done')
85
+ return;
86
+ if (plan === 'mark') {
87
+ markMigrationApplied(FULLSCREEN_FACTORY_MIGRATION, options.dir);
88
+ return;
89
+ }
90
+ try {
91
+ await options.unset();
92
+ markMigrationApplied(FULLSCREEN_FACTORY_MIGRATION, options.dir);
93
+ }
94
+ catch {
95
+ // Unmarked on purpose: retried next boot.
96
+ }
97
+ }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Pure derivation for the two-level `/model` picker: providers as top-level
3
+ * groups, their models one level down, with a pinned "recently used"
4
+ * pseudo-group first. Kept free of React/channel/i18n state so
5
+ * `scripts/verify-model-picker-groups.mjs` can drive it headless; the
6
+ * recents row's localized label is resolved at render time (its `label`
7
+ * field is the {@link RECENTS_LABEL_PLACEHOLDER} sentinel).
8
+ *
9
+ * @module dsh-tui/modelGroups
10
+ */
11
+ import type { LlmModelInfo, LlmProviderInfo } from './dsh-adapter/types.js';
12
+ /**
13
+ * The pseudo provider key of the pinned "recently used" group. Provider
14
+ * route ids cannot contain underscores (`PROVIDER_ROUTE_ID`), so this can
15
+ * never collide with a real route.
16
+ */
17
+ export declare const RECENTS_GROUP_PROVIDER = "__recents__";
18
+ /** The recents row's raw label; renderers replace it with the localized one. */
19
+ export declare const RECENTS_LABEL_PLACEHOLDER = "__recent__";
20
+ /** One recent-model reference (same shape as modelRecents' persisted ref). */
21
+ export interface ModelRef {
22
+ readonly provider: string;
23
+ readonly id: string;
24
+ }
25
+ /** One top-level row: a provider route with its picker-facing identity. */
26
+ export interface ModelGroupRow {
27
+ /** Harness route key (also the grouping key over `LlmModelInfo.provider`). */
28
+ readonly provider: string;
29
+ /** Display label — the registry's provider name, falling back to the route key. */
30
+ readonly label: string;
31
+ /** How many of the listed models belong to this provider. */
32
+ readonly count: number;
33
+ }
34
+ /**
35
+ * The recent refs that the current catalog still lists, most-recent-first —
36
+ * the second level of the recents group. Refs whose model vanished from the
37
+ * catalog (provider removed, or an OAuth provider signed out and
38
+ * credential-gated away) drop out here, so the group never offers a row the
39
+ * picker could not switch to.
40
+ */
41
+ export declare function recentCatalogModels(recents: readonly ModelRef[], models: readonly LlmModelInfo[]): readonly LlmModelInfo[];
42
+ /**
43
+ * Group a flat model catalog into provider rows, first-appearance order
44
+ * (the registry's own listing order), labels resolved through
45
+ * `providerInfos` with a route-key fallback. Recent refs (when supplied and
46
+ * still catalogued) pin one extra pseudo-group at the top.
47
+ */
48
+ export declare function deriveModelGroups(models: readonly LlmModelInfo[], providerInfos: readonly LlmProviderInfo[], recents?: readonly ModelRef[]): readonly ModelGroupRow[];
49
+ /** Where `/model` should open (or re-land after the fresh catalog arrives). */
50
+ export interface ModelPickerLanding {
51
+ /**
52
+ * The group to open *inside* — set only by the single-provider fast path,
53
+ * where a one-row top level would be pure friction (and there are no
54
+ * recents to pin). Multi-provider catalogs — and any catalog with recents
55
+ * — land at the top level (`undefined`).
56
+ */
57
+ readonly group: string | undefined;
58
+ /** Focus index within the landed level's rows. */
59
+ readonly index: number;
60
+ }
61
+ /**
62
+ * Compute the picker's landing: with a meaningful recents list pinned, focus
63
+ * the recents row itself (its first entry is the most recently used model —
64
+ * the likeliest destination); without recents, focus the current provider's
65
+ * group. The single-provider fast path applies while recents carry no
66
+ * navigation value — an empty list, or a lone entry that can only be the
67
+ * current model (the picker seeds it): drilling straight into the only
68
+ * provider's list beats a top level whose recents row duplicates it. Two or
69
+ * more recents (or any multi-provider catalog) land at the top level.
70
+ */
71
+ export declare function modelPickerLanding(models: readonly LlmModelInfo[], currentProvider: string | undefined, currentModel: string | undefined, recents?: readonly ModelRef[]): ModelPickerLanding;
72
+ //# sourceMappingURL=modelGroups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelGroups.d.ts","sourceRoot":"","sources":["../../src/modelGroups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AAEnD,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,eAAe,CAAA;AAErD,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,SAAS,YAAY,EAAE,CAUzB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,aAAa,EAAE,SAAS,eAAe,EAAE,EACzC,OAAO,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC5B,SAAS,aAAa,EAAE,CAsB1B;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC5B,kBAAkB,CAiBpB"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Pure derivation for the two-level `/model` picker: providers as top-level
3
+ * groups, their models one level down, with a pinned "recently used"
4
+ * pseudo-group first. Kept free of React/channel/i18n state so
5
+ * `scripts/verify-model-picker-groups.mjs` can drive it headless; the
6
+ * recents row's localized label is resolved at render time (its `label`
7
+ * field is the {@link RECENTS_LABEL_PLACEHOLDER} sentinel).
8
+ *
9
+ * @module dsh-tui/modelGroups
10
+ */
11
+ /**
12
+ * The pseudo provider key of the pinned "recently used" group. Provider
13
+ * route ids cannot contain underscores (`PROVIDER_ROUTE_ID`), so this can
14
+ * never collide with a real route.
15
+ */
16
+ export const RECENTS_GROUP_PROVIDER = '__recents__';
17
+ /** The recents row's raw label; renderers replace it with the localized one. */
18
+ export const RECENTS_LABEL_PLACEHOLDER = '__recent__';
19
+ /**
20
+ * The recent refs that the current catalog still lists, most-recent-first —
21
+ * the second level of the recents group. Refs whose model vanished from the
22
+ * catalog (provider removed, or an OAuth provider signed out and
23
+ * credential-gated away) drop out here, so the group never offers a row the
24
+ * picker could not switch to.
25
+ */
26
+ export function recentCatalogModels(recents, models) {
27
+ const listed = [];
28
+ for (const ref of recents) {
29
+ const found = models.find(model => model.provider === ref.provider && model.id === ref.id);
30
+ if (found === undefined)
31
+ continue;
32
+ if (listed.some(seen => seen.provider === found.provider && seen.id === found.id))
33
+ continue;
34
+ listed.push(found);
35
+ if (listed.length >= 10)
36
+ break;
37
+ }
38
+ return listed;
39
+ }
40
+ /**
41
+ * Group a flat model catalog into provider rows, first-appearance order
42
+ * (the registry's own listing order), labels resolved through
43
+ * `providerInfos` with a route-key fallback. Recent refs (when supplied and
44
+ * still catalogued) pin one extra pseudo-group at the top.
45
+ */
46
+ export function deriveModelGroups(models, providerInfos, recents) {
47
+ const order = [];
48
+ const counts = new Map();
49
+ for (const model of models) {
50
+ if (!counts.has(model.provider)) {
51
+ order.push(model.provider);
52
+ counts.set(model.provider, 0);
53
+ }
54
+ counts.set(model.provider, counts.get(model.provider) + 1);
55
+ }
56
+ const groups = order.map(provider => ({
57
+ provider,
58
+ label: providerInfos.find(info => info.id === provider)?.name ?? provider,
59
+ count: counts.get(provider),
60
+ }));
61
+ if (recents !== undefined) {
62
+ const recentCount = recentCatalogModels(recents, models).length;
63
+ if (recentCount > 0) {
64
+ groups.unshift({ provider: RECENTS_GROUP_PROVIDER, label: RECENTS_LABEL_PLACEHOLDER, count: recentCount });
65
+ }
66
+ }
67
+ return groups;
68
+ }
69
+ /**
70
+ * Compute the picker's landing: with a meaningful recents list pinned, focus
71
+ * the recents row itself (its first entry is the most recently used model —
72
+ * the likeliest destination); without recents, focus the current provider's
73
+ * group. The single-provider fast path applies while recents carry no
74
+ * navigation value — an empty list, or a lone entry that can only be the
75
+ * current model (the picker seeds it): drilling straight into the only
76
+ * provider's list beats a top level whose recents row duplicates it. Two or
77
+ * more recents (or any multi-provider catalog) land at the top level.
78
+ */
79
+ export function modelPickerLanding(models, currentProvider, currentModel, recents) {
80
+ const providers = [];
81
+ for (const model of models) {
82
+ if (!providers.includes(model.provider))
83
+ providers.push(model.provider);
84
+ }
85
+ if (providers.length === 0)
86
+ return { group: undefined, index: 0 };
87
+ const recentCount = recents === undefined ? 0 : recentCatalogModels(recents, models).length;
88
+ if (providers.length === 1 && recentCount <= 1) {
89
+ const only = providers[0];
90
+ const index = models.findIndex(model => model.provider === currentProvider && model.id === currentModel);
91
+ return { group: only, index: index >= 0 ? index : 0 };
92
+ }
93
+ if (recentCount > 0)
94
+ return { group: undefined, index: 0 };
95
+ const groupIndex = providers.indexOf(currentProvider ?? '');
96
+ return { group: undefined, index: groupIndex >= 0 ? groupIndex : 0 };
97
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Persisted recently-used models (`/model` picker's 最近使用 group), kept at
3
+ * `~/.dsh-tui/model-recents.json` so the list survives restarts — same
4
+ * best-effort pattern as agent-preset.json: a missing/corrupt file simply
5
+ * reads as empty, and a failed write never blocks the switch that caused it.
6
+ * Entries are `{ provider, id }` refs, most-recent-first, deduped, capped at
7
+ * {@link MODEL_RECENTS_LIMIT}.
8
+ *
9
+ * @module dsh-tui/modelRecents
10
+ */
11
+ /** How many recent entries the file and the picker group keep. */
12
+ export declare const MODEL_RECENTS_LIMIT = 10;
13
+ /** One persisted recent-model reference. */
14
+ export interface ModelRecentsRef {
15
+ readonly provider: string;
16
+ readonly id: string;
17
+ }
18
+ /**
19
+ * Parse a persisted `{ models: [...] }` document; invalid shapes yield an
20
+ * empty list (the file is rewritten on the next record).
21
+ * @param text - Raw file contents.
22
+ * @returns Valid refs in file order, deduped, capped.
23
+ */
24
+ export declare function parseModelRecents(text: string): readonly ModelRecentsRef[];
25
+ /**
26
+ * The persisted recent-model refs, most-recent-first.
27
+ * @param dir - Prefs directory (injectable for tests).
28
+ */
29
+ export declare function readModelRecents(dir?: string): readonly ModelRecentsRef[];
30
+ /**
31
+ * Record one use: move-to-front dedupe, cap at {@link MODEL_RECENTS_LIMIT},
32
+ * best-effort persist. Never throws — a failed write must not block the
33
+ * model switch that caused it.
34
+ * @param ref - The provider/model just switched to.
35
+ * @param dir - Prefs directory (injectable for tests).
36
+ * @returns The new list (also what a subsequent read returns on success).
37
+ */
38
+ export declare function recordModelUse(ref: ModelRecentsRef, dir?: string): readonly ModelRecentsRef[];
39
+ //# sourceMappingURL=modelRecents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRecents.d.ts","sourceRoot":"","sources":["../../src/modelRecents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAYD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAmB1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAkB,GAAG,SAAS,eAAe,EAAE,CAMpF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,GAAE,MAAkB,GAAG,SAAS,eAAe,EAAE,CAexG"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Persisted recently-used models (`/model` picker's 最近使用 group), kept at
3
+ * `~/.dsh-tui/model-recents.json` so the list survives restarts — same
4
+ * best-effort pattern as agent-preset.json: a missing/corrupt file simply
5
+ * reads as empty, and a failed write never blocks the switch that caused it.
6
+ * Entries are `{ provider, id }` refs, most-recent-first, deduped, capped at
7
+ * {@link MODEL_RECENTS_LIMIT}.
8
+ *
9
+ * @module dsh-tui/modelRecents
10
+ */
11
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
12
+ import { join } from 'node:path';
13
+ import { DATA_DIR } from './utils/paths.js';
14
+ const PREFS_DIR = DATA_DIR;
15
+ /** How many recent entries the file and the picker group keep. */
16
+ export const MODEL_RECENTS_LIMIT = 10;
17
+ /** Narrow one parsed array element, or reject the whole file entry. */
18
+ function asRef(value) {
19
+ if (typeof value !== 'object' || value === null)
20
+ return undefined;
21
+ const record = value;
22
+ return typeof record['provider'] === 'string' && record['provider'] !== ''
23
+ && typeof record['id'] === 'string' && record['id'] !== ''
24
+ ? { provider: record['provider'], id: record['id'] }
25
+ : undefined;
26
+ }
27
+ /**
28
+ * Parse a persisted `{ models: [...] }` document; invalid shapes yield an
29
+ * empty list (the file is rewritten on the next record).
30
+ * @param text - Raw file contents.
31
+ * @returns Valid refs in file order, deduped, capped.
32
+ */
33
+ export function parseModelRecents(text) {
34
+ let parsed;
35
+ try {
36
+ parsed = JSON.parse(text);
37
+ }
38
+ catch {
39
+ return [];
40
+ }
41
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
42
+ return [];
43
+ const models = parsed.models;
44
+ if (!Array.isArray(models))
45
+ return [];
46
+ const refs = [];
47
+ for (const entry of models) {
48
+ const ref = asRef(entry);
49
+ if (ref === undefined)
50
+ continue;
51
+ if (refs.some(seen => seen.provider === ref.provider && seen.id === ref.id))
52
+ continue;
53
+ refs.push(ref);
54
+ if (refs.length >= MODEL_RECENTS_LIMIT)
55
+ break;
56
+ }
57
+ return refs;
58
+ }
59
+ /**
60
+ * The persisted recent-model refs, most-recent-first.
61
+ * @param dir - Prefs directory (injectable for tests).
62
+ */
63
+ export function readModelRecents(dir = PREFS_DIR) {
64
+ try {
65
+ return parseModelRecents(readFileSync(join(dir, 'model-recents.json'), 'utf8'));
66
+ }
67
+ catch {
68
+ return [];
69
+ }
70
+ }
71
+ /**
72
+ * Record one use: move-to-front dedupe, cap at {@link MODEL_RECENTS_LIMIT},
73
+ * best-effort persist. Never throws — a failed write must not block the
74
+ * model switch that caused it.
75
+ * @param ref - The provider/model just switched to.
76
+ * @param dir - Prefs directory (injectable for tests).
77
+ * @returns The new list (also what a subsequent read returns on success).
78
+ */
79
+ export function recordModelUse(ref, dir = PREFS_DIR) {
80
+ const next = [ref];
81
+ for (const seen of readModelRecents(dir)) {
82
+ if (seen.provider === ref.provider && seen.id === ref.id)
83
+ continue;
84
+ next.push(seen);
85
+ if (next.length >= MODEL_RECENTS_LIMIT)
86
+ break;
87
+ }
88
+ try {
89
+ mkdirSync(dir, { recursive: true });
90
+ writeFileSync(join(dir, 'model-recents.json'), `${JSON.stringify({ models: next }, null, 2)}\n`);
91
+ }
92
+ catch {
93
+ // Best-effort like every other pref: the in-memory list still serves
94
+ // this session; the next successful write re-persists.
95
+ }
96
+ return next;
97
+ }
@@ -270,6 +270,17 @@ export declare class Node {
270
270
  _cGen: number;
271
271
  /** Number of populated cache slots. */
272
272
  _cN: number;
273
+ /**
274
+ * Generation of the last MEASURE-pass call that actually computed (cache
275
+ * miss with performLayout=false). Such a call recurses and overwrites the
276
+ * subtree's layout.* fields as scratch for whatever available size it was
277
+ * probing — which may differ from the node's final size. A subsequent
278
+ * layout-pass cache hit would restore only this node's own w/h and skip
279
+ * the child recursion, leaving descendants at the scratch geometry (the
280
+ * warm-resize 106-vs-105 wrap drift). Layout-pass early returns must
281
+ * therefore refuse to hit while _scratchGen === _generation.
282
+ */
283
+ _scratchGen: number;
273
284
  /** LRU write index into the cache arrays. */
274
285
  _cWr: number;
275
286
  constructor(config?: Config);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native-ts/yoga-layout/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native-ts/yoga-layout/index.ts"],"names":[],"mappings":"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"}
@@ -430,6 +430,17 @@ export class Node {
430
430
  _cGen = -1;
431
431
  /** Number of populated cache slots. */
432
432
  _cN = 0;
433
+ /**
434
+ * Generation of the last MEASURE-pass call that actually computed (cache
435
+ * miss with performLayout=false). Such a call recurses and overwrites the
436
+ * subtree's layout.* fields as scratch for whatever available size it was
437
+ * probing — which may differ from the node's final size. A subsequent
438
+ * layout-pass cache hit would restore only this node's own w/h and skip
439
+ * the child recursion, leaving descendants at the scratch geometry (the
440
+ * warm-resize 106-vs-105 wrap drift). Layout-pass early returns must
441
+ * therefore refuse to hit while _scratchGen === _generation.
442
+ */
443
+ _scratchGen = -1;
433
444
  /** LRU write index into the cache arrays. */
434
445
  _cWr = 0;
435
446
  constructor(config) {
@@ -1281,10 +1292,21 @@ function commitCacheOutputs(node, performLayout) {
1281
1292
  if (performLayout) {
1282
1293
  node._lOutW = node.layout.width;
1283
1294
  node._lOutH = node.layout.height;
1295
+ // A completed layout pass re-laid the whole subtree at the final
1296
+ // constraints — any measure-pass scratch below has been overwritten,
1297
+ // so this node may serve layout-cache hits again.
1298
+ node._scratchGen = -1;
1284
1299
  }
1285
1300
  else {
1286
1301
  node._mOutW = node.layout.width;
1287
1302
  node._mOutH = node.layout.height;
1303
+ // This measure call actually computed: its recursion overwrote the
1304
+ // subtree's layout.* as scratch for the probed size. Until a layout
1305
+ // pass re-lays this subtree, layout-cache hits here must be refused
1306
+ // (see _scratchGen). Leaves have no subtree to corrupt — skip them so
1307
+ // measure-heavy text nodes keep their layout-cache hits.
1308
+ if (node.children.length > 0)
1309
+ node._scratchGen = _generation;
1288
1310
  }
1289
1311
  }
1290
1312
  // --
@@ -1331,6 +1353,10 @@ forceWidth = false, forceHeight = false) {
1331
1353
  if (!node.isDirty_ || sameGen) {
1332
1354
  if (!node.isDirty_ &&
1333
1355
  node._hasL &&
1356
+ // A layout-pass hit restores only this node's own w/h and skips the
1357
+ // child recursion — illegal while a same-generation measure compute
1358
+ // has left the subtree at scratch geometry for a different probe size.
1359
+ !(performLayout && node._scratchGen === _generation) &&
1334
1360
  node._lWM === widthMode &&
1335
1361
  node._lHM === heightMode &&
1336
1362
  node._lFW === forceWidth &&
@@ -1353,7 +1379,11 @@ forceWidth = false, forceHeight = false) {
1353
1379
  // Same-generation check covers fresh-mounted (dirty) nodes during
1354
1380
  // virtual scroll — the dirty chain invokes them ≥2^depth times, first
1355
1381
  // call writes cache, rest hit: 105k visits → ~10k for 1593-node tree.
1356
- if (node._cN > 0 && (sameGen || !node.isDirty_)) {
1382
+ if (node._cN > 0 &&
1383
+ (sameGen || !node.isDirty_) &&
1384
+ // Same scratch guard as _hasL: a layout-pass hit must not skip child
1385
+ // recursion over a measure-scratched subtree.
1386
+ !(performLayout && node._scratchGen === _generation)) {
1357
1387
  const cIn = node._cIn;
1358
1388
  for (let i = 0; i < node._cN; i++) {
1359
1389
  const o = i * 8;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Re-export of the `@deepseek-harness-tui/dsh-auth` plugin under this
3
+ * package's own name, so the bundle patch layer can mount the OAuth row as
4
+ * `@deepseek-harness-tui/dsh-tui/oauth` instead of the bare package name —
5
+ * the same anchor the working-activity row uses (#60): the dsh Loader
6
+ * resolves row names from the *profile* directory, where only the profile's
7
+ * direct dependencies are linked, and pnpm's isolated layout never hoists a
8
+ * transitive dependency there. Mounting through this subpath keeps plugin
9
+ * resolution anchored at @deepseek-harness-tui/dsh-tui itself, always a
10
+ * direct profile dependency, under every package-manager layout.
11
+ *
12
+ * @module @deepseek-harness-tui/dsh-tui/oauth
13
+ */
14
+ export * from '@deepseek-harness-tui/dsh-auth';
15
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,gCAAgC,CAAA"}