@askdkc/dsh-cli 0.13.4 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/bin/{dsh-tui.js → dsh-cli.js} +27 -27
  2. package/cordis.patch.yml +32 -32
  3. package/cordis.yml +17 -17
  4. package/lib/types/activityPrefs.d.ts +2 -2
  5. package/lib/types/activityPrefs.js +2 -2
  6. package/lib/types/adapter/channel/actions.js +1 -1
  7. package/lib/types/adapter/channel/consumer.js +1 -1
  8. package/lib/types/adapter/channel/internal-token.js +1 -1
  9. package/lib/types/adapter/channel/plugins.js +1 -1
  10. package/lib/types/adapter/channel/session-projection.js +3 -3
  11. package/lib/types/adapter/channel/transcript.js +1 -1
  12. package/lib/types/adapter/channel/ui.js +3 -3
  13. package/lib/types/adapter/kernel/host-facade.d.ts +1 -1
  14. package/lib/types/adapter/kernel/host-facade.js +6 -6
  15. package/lib/types/adapter/kernel/host-probe-access.d.ts +1 -1
  16. package/lib/types/adapter/kernel/host-probe-access.js +6 -6
  17. package/lib/types/adapter/kernel/kernel-runtime.js +1 -1
  18. package/lib/types/adapter/kernel/legacy-facade.d.ts +1 -1
  19. package/lib/types/adapter/kernel/legacy-facade.js +1 -1
  20. package/lib/types/adapter/kernel/replay-isolation.js +1 -1
  21. package/lib/types/adapter/kernel/runtime.d.ts +1 -1
  22. package/lib/types/adapter/kernel/runtime.js +7 -7
  23. package/lib/types/adapter/ports/channel-display.d.ts +1 -1
  24. package/lib/types/adapter/ports/channel-ui.d.ts +15 -15
  25. package/lib/types/adapter/standard/descriptor.d.ts +1 -1
  26. package/lib/types/adapter/standard/descriptor.js +2 -2
  27. package/lib/types/adapter/standard/registry.d.ts +1 -1
  28. package/lib/types/adapter/standard/registry.js +2 -2
  29. package/lib/types/adapter/standard/tui-extension.d.ts +2 -2
  30. package/lib/types/adapter/standard/tui-extension.js +3 -3
  31. package/lib/types/adapter/upstream/channel-driver.js +10 -10
  32. package/lib/types/adapter/upstream/decisions-driver.js +3 -3
  33. package/lib/types/adapter/upstream/extensions-driver.js +18 -18
  34. package/lib/types/adapter/upstream/host-descriptor-driver.js +4 -4
  35. package/lib/types/adapter/upstream/presentation-driver.js +5 -5
  36. package/lib/types/adapter/upstream/scenes-driver.js +4 -4
  37. package/lib/types/adapter/upstream/settings-driver.js +4 -4
  38. package/lib/types/adapter/upstream/workspace-driver.js +2 -2
  39. package/lib/types/bootstrap/state.d.ts +4 -4
  40. package/lib/types/bootstrap/state.js +4 -4
  41. package/lib/types/{tuiDisplayPrefs.d.ts → cliDisplayPrefs.d.ts} +1 -1
  42. package/lib/types/{tuiDisplayPrefs.d.ts.map → cliDisplayPrefs.d.ts.map} +1 -1
  43. package/lib/types/{tuiDisplayPrefs.js → cliDisplayPrefs.js} +1 -1
  44. package/lib/types/commands.js +7 -7
  45. package/lib/types/components/AutoRecapRow.d.ts +1 -1
  46. package/lib/types/components/AutoRecapRow.js +1 -1
  47. package/lib/types/components/HelpMenu.d.ts +1 -1
  48. package/lib/types/components/HelpMenu.js +1 -1
  49. package/lib/types/components/LogoV2.d.ts +2 -2
  50. package/lib/types/components/LogoV2.d.ts.map +1 -1
  51. package/lib/types/components/LogoV2.js +5 -19
  52. package/lib/types/components/MermaidDiagram.js +1 -1
  53. package/lib/types/components/MessageList.d.ts +2 -2
  54. package/lib/types/components/MessageList.js +1 -1
  55. package/lib/types/components/PageMargin.d.ts +3 -3
  56. package/lib/types/components/PageMargin.js +1 -1
  57. package/lib/types/components/PluginSceneBoundary.d.ts +1 -1
  58. package/lib/types/components/PluginSceneBoundary.js +1 -1
  59. package/lib/types/components/PromptInput.d.ts +1 -1
  60. package/lib/types/components/PromptInput.js +3 -3
  61. package/lib/types/components/ScrollbarGutter.d.ts +1 -1
  62. package/lib/types/components/ScrollbarGutter.js +1 -1
  63. package/lib/types/components/Select.d.ts +1 -1
  64. package/lib/types/components/Select.js +1 -1
  65. package/lib/types/components/SplitDiffView.d.ts +1 -1
  66. package/lib/types/components/ThemePicker.d.ts +1 -1
  67. package/lib/types/components/ThemePicker.js +1 -1
  68. package/lib/types/components/activityFrames.d.ts +1 -1
  69. package/lib/types/components/activityFrames.js +1 -1
  70. package/lib/types/components/design-system/Byline.d.ts +1 -1
  71. package/lib/types/components/design-system/Byline.js +1 -1
  72. package/lib/types/components/design-system/Divider.d.ts +1 -1
  73. package/lib/types/components/design-system/Divider.js +1 -1
  74. package/lib/types/components/design-system/StatusIcon.d.ts +1 -1
  75. package/lib/types/components/design-system/StatusIcon.js +1 -1
  76. package/lib/types/components/design-system/ThemeProvider.d.ts +1 -1
  77. package/lib/types/components/design-system/ThemeProvider.js +11 -11
  78. package/lib/types/components/design-system/ThemedBox.d.ts +1 -1
  79. package/lib/types/components/design-system/ThemedBox.js +1 -1
  80. package/lib/types/components/design-system/ThemedText.d.ts +1 -1
  81. package/lib/types/components/design-system/ThemedText.js +1 -1
  82. package/lib/types/components/messages/AssistantThinkingMessage.d.ts +1 -1
  83. package/lib/types/components/messages/AssistantThinkingMessage.js +1 -1
  84. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +3 -3
  85. package/lib/types/components/messages/AssistantToolUseMessage.js +1 -1
  86. package/lib/types/components/messages/originalImage.js +1 -1
  87. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +1 -1
  88. package/lib/types/components/questions/AskUserQuestionPanel.js +1 -1
  89. package/lib/types/components/smoothReveal.d.ts +1 -1
  90. package/lib/types/components/smoothReveal.js +1 -1
  91. package/lib/types/customTheme.d.ts +5 -5
  92. package/lib/types/customTheme.js +7 -7
  93. package/lib/types/dsh-adapter/activity-store.d.ts +1 -1
  94. package/lib/types/dsh-adapter/activity-store.js +3 -3
  95. package/lib/types/dsh-adapter/bundled-presets.js +2 -2
  96. package/lib/types/dsh-adapter/channel/action-readiness.js +2 -2
  97. package/lib/types/dsh-adapter/channel/agent-view-projection.js +1 -1
  98. package/lib/types/dsh-adapter/channel/background-action.js +1 -1
  99. package/lib/types/dsh-adapter/channel/binding-events.js +1 -1
  100. package/lib/types/dsh-adapter/channel/binding.js +14 -14
  101. package/lib/types/dsh-adapter/channel/external-commands.js +3 -3
  102. package/lib/types/dsh-adapter/channel/input-delivery.js +1 -1
  103. package/lib/types/dsh-adapter/channel/job-projection.js +1 -1
  104. package/lib/types/dsh-adapter/channel/lifetime-resources.js +1 -1
  105. package/lib/types/dsh-adapter/channel/local-actions.js +1 -1
  106. package/lib/types/dsh-adapter/channel/mode-actions.js +1 -1
  107. package/lib/types/dsh-adapter/channel/mode-permission.js +6 -6
  108. package/lib/types/dsh-adapter/channel/mode-roster.js +1 -1
  109. package/lib/types/dsh-adapter/channel/owner.js +2 -2
  110. package/lib/types/dsh-adapter/channel/preferences.js +1 -1
  111. package/lib/types/dsh-adapter/channel/projection.js +1 -1
  112. package/lib/types/dsh-adapter/channel/reports.js +3 -3
  113. package/lib/types/dsh-adapter/channel/session-fork.js +1 -1
  114. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +4 -4
  115. package/lib/types/dsh-adapter/channel/session-metadata.js +2 -2
  116. package/lib/types/dsh-adapter/channel/session-rewind.js +2 -2
  117. package/lib/types/dsh-adapter/channel/state.d.ts +1 -1
  118. package/lib/types/dsh-adapter/channel/state.js +1 -1
  119. package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
  120. package/lib/types/dsh-adapter/channel-ui.js +2 -2
  121. package/lib/types/dsh-adapter/channel.js +9 -9
  122. package/lib/types/dsh-adapter/cli-registration.d.ts.map +1 -1
  123. package/lib/types/dsh-adapter/cli-registration.js +5 -4
  124. package/lib/types/dsh-adapter/command-trees.d.ts +1 -1
  125. package/lib/types/dsh-adapter/command-trees.js +2 -2
  126. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +3 -3
  127. package/lib/types/dsh-adapter/compat/sessionLog.js +5 -5
  128. package/lib/types/dsh-adapter/compat/settings.d.ts.map +1 -1
  129. package/lib/types/dsh-adapter/compat/settings.js +15 -7
  130. package/lib/types/dsh-adapter/decision-guard.d.ts +3 -3
  131. package/lib/types/dsh-adapter/decision-guard.js +6 -6
  132. package/lib/types/dsh-adapter/dialogs.d.ts +1 -1
  133. package/lib/types/dsh-adapter/dialogs.js +7 -7
  134. package/lib/types/dsh-adapter/effect-ledger.d.ts +2 -2
  135. package/lib/types/dsh-adapter/effect-ledger.js +5 -5
  136. package/lib/types/dsh-adapter/extension-events.js +10 -10
  137. package/lib/types/dsh-adapter/extensions.d.ts +3 -3
  138. package/lib/types/dsh-adapter/extensions.js +3 -3
  139. package/lib/types/dsh-adapter/host-access.js +11 -11
  140. package/lib/types/dsh-adapter/ide-channel.d.ts +6 -6
  141. package/lib/types/dsh-adapter/ide-channel.js +6 -6
  142. package/lib/types/dsh-adapter/index.d.ts +18 -18
  143. package/lib/types/dsh-adapter/index.js +5 -5
  144. package/lib/types/dsh-adapter/inject-channel.d.ts +4 -4
  145. package/lib/types/dsh-adapter/inject-channel.js +5 -5
  146. package/lib/types/dsh-adapter/invariant.d.ts +1 -1
  147. package/lib/types/dsh-adapter/invariant.js +1 -1
  148. package/lib/types/dsh-adapter/message-observer.d.ts +2 -2
  149. package/lib/types/dsh-adapter/message-observer.js +23 -23
  150. package/lib/types/dsh-adapter/migrate/adapters/scan.js +1 -1
  151. package/lib/types/dsh-adapter/migrate/bin-path.d.ts +1 -1
  152. package/lib/types/dsh-adapter/migrate/bin-path.js +4 -4
  153. package/lib/types/dsh-adapter/migrate/picker.d.ts +1 -1
  154. package/lib/types/dsh-adapter/migrate/picker.js +1 -1
  155. package/lib/types/dsh-adapter/migrate/uuid.js +1 -1
  156. package/lib/types/dsh-adapter/packaged-presets.js +1 -1
  157. package/lib/types/dsh-adapter/plugin-host.d.ts +2 -2
  158. package/lib/types/dsh-adapter/plugin-host.js +32 -32
  159. package/lib/types/dsh-adapter/plugin-storage.d.ts +3 -3
  160. package/lib/types/dsh-adapter/plugin-storage.js +5 -5
  161. package/lib/types/dsh-adapter/plugin.d.ts +4 -4
  162. package/lib/types/dsh-adapter/plugin.js +89 -89
  163. package/lib/types/dsh-adapter/preset-resolution.d.ts +1 -1
  164. package/lib/types/dsh-adapter/presets.js +1 -1
  165. package/lib/types/dsh-adapter/promptDebug.js +1 -1
  166. package/lib/types/dsh-adapter/questions.d.ts +1 -1
  167. package/lib/types/dsh-adapter/questions.js +1 -1
  168. package/lib/types/dsh-adapter/renderers.js +7 -7
  169. package/lib/types/dsh-adapter/scenes.d.ts +1 -1
  170. package/lib/types/dsh-adapter/scenes.js +6 -6
  171. package/lib/types/dsh-adapter/settings-sections.d.ts +1 -1
  172. package/lib/types/dsh-adapter/settings-sections.js +5 -5
  173. package/lib/types/dsh-adapter/sharp.js +1 -1
  174. package/lib/types/dsh-adapter/shortcuts.js +9 -9
  175. package/lib/types/dsh-adapter/status.js +21 -21
  176. package/lib/types/dsh-adapter/themes.js +2 -2
  177. package/lib/types/dsh-adapter/toast.js +7 -7
  178. package/lib/types/dsh-adapter/workspaces.d.ts +1 -1
  179. package/lib/types/dsh-adapter/workspaces.js +6 -6
  180. package/lib/types/effortPrefs.d.ts +2 -2
  181. package/lib/types/effortPrefs.js +2 -2
  182. package/lib/types/force-production-react.js +1 -1
  183. package/lib/types/herdr.js +4 -4
  184. package/lib/types/homePrefs.js +1 -1
  185. package/lib/types/i18n.d.ts +54 -54
  186. package/lib/types/i18n.js +39 -39
  187. package/lib/types/ink/clearTerminal.d.ts +1 -1
  188. package/lib/types/ink/clearTerminal.js +1 -1
  189. package/lib/types/ink/colorize.js +1 -1
  190. package/lib/types/ink/components/App.d.ts +1 -1
  191. package/lib/types/ink/components/App.js +5 -5
  192. package/lib/types/ink/components/Text.d.ts +1 -1
  193. package/lib/types/ink/devtools.d.ts +1 -1
  194. package/lib/types/ink/dom.d.ts +1 -1
  195. package/lib/types/ink/dom.js +1 -1
  196. package/lib/types/ink/geometry-trace.js +4 -4
  197. package/lib/types/ink/ink.d.ts.map +1 -1
  198. package/lib/types/ink/ink.js +8 -19
  199. package/lib/types/ink/reconciler.d.ts +1 -1
  200. package/lib/types/ink/reconciler.d.ts.map +1 -1
  201. package/lib/types/ink/reconciler.js +6 -3
  202. package/lib/types/ink/render-to-screen.d.ts.map +1 -1
  203. package/lib/types/ink/render-to-screen.js +0 -5
  204. package/lib/types/ink/terminal.js +3 -3
  205. package/lib/types/ink/termio/osc.js +1 -1
  206. package/lib/types/ink/update-overflow-guard.js +2 -2
  207. package/lib/types/minimalMode.d.ts +2 -2
  208. package/lib/types/minimalMode.js +2 -2
  209. package/lib/types/modelGroups.d.ts +1 -1
  210. package/lib/types/modelGroups.js +1 -1
  211. package/lib/types/modelPrefs.d.ts +1 -1
  212. package/lib/types/modelPrefs.js +1 -1
  213. package/lib/types/modelRecents.d.ts +2 -2
  214. package/lib/types/modelRecents.js +2 -2
  215. package/lib/types/package-version.d.ts +3 -0
  216. package/lib/types/package-version.d.ts.map +1 -0
  217. package/lib/types/package-version.js +25 -0
  218. package/lib/types/presetPrefs.d.ts +1 -1
  219. package/lib/types/presetPrefs.js +1 -1
  220. package/lib/types/reload.d.ts +8 -8
  221. package/lib/types/reload.js +4 -4
  222. package/lib/types/screens/Chat.js +27 -27
  223. package/lib/types/screens/StatusLine.js +1 -1
  224. package/lib/types/screens/StatusMetrics.js +1 -1
  225. package/lib/types/sessionHistory.d.ts +3 -3
  226. package/lib/types/sessionHistory.js +7 -7
  227. package/lib/types/sessionModes.js +1 -1
  228. package/lib/types/sessionMounts.d.ts +1 -1
  229. package/lib/types/sessionMounts.js +1 -1
  230. package/lib/types/sessionPins.d.ts +1 -1
  231. package/lib/types/sessionPins.js +1 -1
  232. package/lib/types/terminal-utils/cliHighlight.d.ts +1 -1
  233. package/lib/types/terminal-utils/hash.d.ts +1 -1
  234. package/lib/types/terminal-utils/hash.js +1 -1
  235. package/lib/types/terminal-utils/mermaid.d.ts +1 -1
  236. package/lib/types/terminal-utils/syntaxTheme.js +1 -1
  237. package/lib/types/theme.d.ts +3 -3
  238. package/lib/types/theme.js +3 -3
  239. package/lib/types/themePrefs.d.ts +3 -3
  240. package/lib/types/themePrefs.js +3 -3
  241. package/lib/types/tips.js +4 -4
  242. package/lib/types/trajectory/effortIgnition.d.ts +1 -1
  243. package/lib/types/trajectoryPrefs.d.ts +1 -1
  244. package/lib/types/trajectoryPrefs.js +1 -1
  245. package/lib/types/ui.d.ts +1 -1
  246. package/lib/types/ui.js +1 -1
  247. package/lib/types/update.d.ts +25 -26
  248. package/lib/types/update.d.ts.map +1 -1
  249. package/lib/types/update.js +55 -73
  250. package/lib/types/utils/clipboard.js +1 -1
  251. package/lib/types/utils/credentials.js +2 -2
  252. package/lib/types/utils/debug.d.ts +3 -3
  253. package/lib/types/utils/debug.js +6 -6
  254. package/lib/types/utils/earlyInput.d.ts +1 -1
  255. package/lib/types/utils/earlyInput.js +1 -1
  256. package/lib/types/utils/externalEditor.js +1 -1
  257. package/lib/types/utils/fullscreen.d.ts +3 -3
  258. package/lib/types/utils/fullscreen.js +4 -4
  259. package/lib/types/utils/log.js +1 -1
  260. package/lib/types/utils/paths.d.ts +3 -3
  261. package/lib/types/utils/paths.js +4 -4
  262. package/lib/types/working-activity.js +1 -1
  263. package/node_modules/@askdkc/dsh-auth/dsh-plugin.json +1 -1
  264. package/node_modules/@askdkc/dsh-auth/lib/index.d.ts +2 -2
  265. package/node_modules/@askdkc/dsh-auth/lib/index.js +2 -2
  266. package/node_modules/@askdkc/dsh-auth/lib/pi-ai.d.ts +0 -2
  267. package/node_modules/@askdkc/dsh-auth/lib/pi-ai.js +0 -2
  268. package/node_modules/@askdkc/dsh-auth/lib/service.d.ts +1 -1
  269. package/node_modules/@askdkc/dsh-auth/lib/service.js +2 -2
  270. package/node_modules/dsh-working-activity/lib/client.js.map +1 -1
  271. package/node_modules/dsh-working-activity/lib/types/client/index.d.ts +1 -1
  272. package/node_modules/dsh-working-activity/lib/types/config.d.ts +2 -2
  273. package/node_modules/dsh-working-activity/lib/types/config.js +2 -2
  274. package/node_modules/dsh-working-activity/lib/types/frames.d.ts +1 -1
  275. package/node_modules/dsh-working-activity/lib/types/frames.js +1 -1
  276. package/node_modules/dsh-working-activity/lib/types/index.d.ts +1 -1
  277. package/node_modules/dsh-working-activity/lib/types/index.js +2 -2
  278. package/node_modules/dsh-working-activity/lib/types/lang.d.ts +5 -5
  279. package/node_modules/dsh-working-activity/lib/types/lang.js +8 -8
  280. package/node_modules/dsh-working-activity/lib/types/projection.d.ts +1 -1
  281. package/node_modules/dsh-working-activity/lib/types/projection.js +1 -1
  282. package/node_modules/dsh-working-activity/lib/types/status.d.ts +1 -1
  283. package/node_modules/dsh-working-activity/lib/types/status.js +1 -1
  284. package/node_modules/dsh-working-activity/src/client/index.ts +1 -1
  285. package/node_modules/dsh-working-activity/src/config.ts +2 -2
  286. package/node_modules/dsh-working-activity/src/frames.ts +1 -1
  287. package/node_modules/dsh-working-activity/src/index.ts +4 -4
  288. package/node_modules/dsh-working-activity/src/lang.ts +8 -8
  289. package/node_modules/dsh-working-activity/src/projection.ts +1 -1
  290. package/node_modules/dsh-working-activity/src/status.ts +1 -1
  291. package/package.json +8 -8
  292. package/presets/liangshen/agent.cordis.yml +1 -1
  293. package/presets/liangshen/custom-bash.mjs +2 -2
@@ -227,10 +227,10 @@ async function probeCommandLive(service) {
227
227
  if (!hasFunction(service, 'register') || !hasFunction(service, 'list') || !hasFunction(service, 'find')) {
228
228
  return { evidence: [], missing: ['commands.register()', 'commands.list()', 'commands.find()'] };
229
229
  }
230
- const name = `dsh_tui_live_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
230
+ const name = `dsh_cli_live_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
231
231
  const definition = {
232
232
  name,
233
- description: 'dsh-tui adapter reversible live probe',
233
+ description: 'dsh-cli adapter reversible live probe',
234
234
  handler: () => ({ kind: 'success', text: 'ok' }),
235
235
  };
236
236
  let dispose;
@@ -590,8 +590,8 @@ export async function refreshHostCapabilityLifecycles(ctx) {
590
590
  }
591
591
  /** The driver object for future kernel composition. */
592
592
  export const hostDescriptorDriver = {
593
- id: 'dsh-tui-host-descriptor',
594
- upstreamFamily: 'dsh-tui',
593
+ id: 'dsh-cli-host-descriptor',
594
+ upstreamFamily: 'dsh-cli',
595
595
  capability: 'host.descriptor',
596
596
  mountEffectClass: 'read-only',
597
597
  detect: detectHostDescriptorCapability,
@@ -69,7 +69,7 @@ function createPresentationPort(ctx) {
69
69
  async ask(request) {
70
70
  const questionStore = getQuestionStore(ctx);
71
71
  if (questionStore === undefined) {
72
- throw new Error('dsh-tui: host.presentation.ask is unavailable because no QuestionStore is mounted in this composition');
72
+ throw new Error('dsh-cli: host.presentation.ask is unavailable because no QuestionStore is mounted in this composition');
73
73
  }
74
74
  const answer = await questionStore.ask({
75
75
  questions: request.questions.map(item => ({
@@ -90,9 +90,9 @@ function createPresentationPort(ctx) {
90
90
  // pretending to be a working approval path.
91
91
  const approvalStore = getApprovalStore(ctx);
92
92
  if (approvalStore === undefined) {
93
- throw new Error('dsh-tui: host.presentation.approve is unavailable because no ApprovalStore is mounted in this composition');
93
+ throw new Error('dsh-cli: host.presentation.approve is unavailable because no ApprovalStore is mounted in this composition');
94
94
  }
95
- throw new Error('dsh-tui: host.presentation.approve is staged in P3; use the DSH approval/request waterfall which carries a live ApprovalRequest');
95
+ throw new Error('dsh-cli: host.presentation.approve is staged in P3; use the DSH approval/request waterfall which carries a live ApprovalRequest');
96
96
  },
97
97
  dialog(request) {
98
98
  if (store === undefined)
@@ -116,8 +116,8 @@ function createPresentationPort(ctx) {
116
116
  });
117
117
  }
118
118
  export const presentationDriver = {
119
- id: 'dsh-tui-presentation',
120
- upstreamFamily: 'dsh-tui',
119
+ id: 'dsh-cli-presentation',
120
+ upstreamFamily: 'dsh-cli',
121
121
  capability: 'host.presentation',
122
122
  mountEffectClass: 'mutate',
123
123
  detect: detectPresentationCapability,
@@ -88,10 +88,10 @@ async function verifyScenesLive(ctx) {
88
88
  }
89
89
  const evidence = [serviceEvidence('tuiScenes')];
90
90
  const missing = [];
91
- const id = `dsh_tui_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
91
+ const id = `dsh_cli_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
92
92
  const descriptor = {
93
93
  id,
94
- title: 'dsh-tui reversible scene probe',
94
+ title: 'dsh-cli reversible scene probe',
95
95
  component: () => undefined,
96
96
  };
97
97
  let dispose;
@@ -156,8 +156,8 @@ function createScenesPort(host) {
156
156
  });
157
157
  }
158
158
  export const scenesDriver = {
159
- id: 'dsh-tui-scenes',
160
- upstreamFamily: 'dsh-tui',
159
+ id: 'dsh-cli-scenes',
160
+ upstreamFamily: 'dsh-cli',
161
161
  capability: 'host.scenes',
162
162
  mountEffectClass: 'register',
163
163
  detect: detectScenesCapability,
@@ -86,10 +86,10 @@ export async function verifySettingsLiveForHost(host) {
86
86
  }
87
87
  const evidence = [serviceEvidence('tuiSettingsSections')];
88
88
  const missing = [];
89
- const ns = `dsh_tui_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
89
+ const ns = `dsh_cli_probe_${randomUUID().replace(/-/g, '').slice(0, 12)}`;
90
90
  const section = {
91
91
  ns,
92
- title: 'dsh-tui reversible settings probe',
92
+ title: 'dsh-cli reversible settings probe',
93
93
  fields: [],
94
94
  };
95
95
  let dispose;
@@ -159,8 +159,8 @@ function createSettingsPort(host) {
159
159
  });
160
160
  }
161
161
  export const settingsDriver = {
162
- id: 'dsh-tui-settings',
163
- upstreamFamily: 'dsh-tui',
162
+ id: 'dsh-cli-settings',
163
+ upstreamFamily: 'dsh-cli',
164
164
  capability: 'host.settings',
165
165
  mountEffectClass: 'register',
166
166
  detect: detectSettingsCapability,
@@ -184,8 +184,8 @@ function createWorkspacePort(host) {
184
184
  });
185
185
  }
186
186
  export const workspaceDriver = {
187
- id: 'dsh-tui-workspace',
188
- upstreamFamily: 'dsh-tui',
187
+ id: 'dsh-cli-workspace',
188
+ upstreamFamily: 'dsh-cli',
189
189
  capability: 'host.workspaces',
190
190
  mountEffectClass: 'mutate',
191
191
  detect: detectWorkspaceCapability,
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Interaction-time telemetry stubs used by the renderer's input and scroll
3
- * paths. dsh-tui does not track interaction time, so these hooks are no-ops.
3
+ * paths. dsh-cli does not track interaction time, so these hooks are no-ops.
4
4
  */
5
- /** No-op interaction-time flush stub; dsh-tui does not track interaction time. */
5
+ /** No-op interaction-time flush stub; dsh-cli does not track interaction time. */
6
6
  export declare function flushInteractionTime(): void;
7
- /** No-op interaction-time update stub; dsh-tui does not track interaction time. */
7
+ /** No-op interaction-time update stub; dsh-cli does not track interaction time. */
8
8
  export declare function updateLastInteractionTime(): void;
9
- /** No-op scroll-activity stub; dsh-tui does not track interaction time. */
9
+ /** No-op scroll-activity stub; dsh-cli does not track interaction time. */
10
10
  export declare function markScrollActivity(): void;
11
11
  //# sourceMappingURL=state.d.ts.map
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Interaction-time telemetry stubs used by the renderer's input and scroll
3
- * paths. dsh-tui does not track interaction time, so these hooks are no-ops.
3
+ * paths. dsh-cli does not track interaction time, so these hooks are no-ops.
4
4
  */
5
- /** No-op interaction-time flush stub; dsh-tui does not track interaction time. */
5
+ /** No-op interaction-time flush stub; dsh-cli does not track interaction time. */
6
6
  export function flushInteractionTime() { }
7
- /** No-op interaction-time update stub; dsh-tui does not track interaction time. */
7
+ /** No-op interaction-time update stub; dsh-cli does not track interaction time. */
8
8
  export function updateLastInteractionTime() { }
9
- /** No-op scroll-activity stub; dsh-tui does not track interaction time. */
9
+ /** No-op scroll-activity stub; dsh-cli does not track interaction time. */
10
10
  export function markScrollActivity() { }
@@ -46,4 +46,4 @@ export declare const applyPageMargin: (value: unknown) => PageMarginSetting;
46
46
  export declare const subscribeMermaidDiagrams: (listener: () => void) => () => void;
47
47
  export declare const getMermaidDiagrams: () => boolean;
48
48
  export declare const applyMermaidDiagrams: (value: unknown) => boolean;
49
- //# sourceMappingURL=tuiDisplayPrefs.d.ts.map
49
+ //# sourceMappingURL=cliDisplayPrefs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tuiDisplayPrefs.d.ts","sourceRoot":"","sources":["../../src/tuiDisplayPrefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAC9J,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAG9J,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,eAAe,CAuBvD,CAAA;AAMF,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAItE;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAItE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CASlE;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,UAAO,GACb,MAAM,GAAG,SAAS,CASpB;AAED;;4CAE4C;AAC5C,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAK3G,CAAA;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAAyB,CAAA;AAE3D;4CAC4C;AAC5C,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAQlC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED;wBACwB;AACxB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAO5E;AAED;;kCAEkC;AAClC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAOrE;AAED;2EAC2E;AAC3E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAWxG;AAyCD,eAAO,MAAM,mBAAmB,aA5BR,MAAM,IAAI,KAAK,MAAM,IA4Be,CAAA;AAC5D,eAAO,MAAM,oBAAoB,yBAAsB,CAAA;AACvD,wFAAwF;AACxF,eAAO,MAAM,eAAe,UA3BX,OAAO,sBA2B4B,CAAA;AAMpD,eAAO,MAAM,wBAAwB,aArCb,MAAM,IAAI,KAAK,MAAM,IAqCyB,CAAA;AACtE,eAAO,MAAM,kBAAkB,eAA2B,CAAA;AAC1D,eAAO,MAAM,oBAAoB,UAnChB,OAAO,YAmCsC,CAAA"}
1
+ {"version":3,"file":"cliDisplayPrefs.d.ts","sourceRoot":"","sources":["../../src/cliDisplayPrefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAC9J,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAG9J,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,eAAe,CAuBvD,CAAA;AAMF,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAItE;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAItE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CASlE;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,UAAO,GACb,MAAM,GAAG,SAAS,CASpB;AAED;;4CAE4C;AAC5C,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAK3G,CAAA;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAAyB,CAAA;AAE3D;4CAC4C;AAC5C,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAQlC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED;wBACwB;AACxB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAO5E;AAED;;kCAEkC;AAClC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAOrE;AAED;2EAC2E;AAC3E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAWxG;AAyCD,eAAO,MAAM,mBAAmB,aA5BR,MAAM,IAAI,KAAK,MAAM,IA4Be,CAAA;AAC5D,eAAO,MAAM,oBAAoB,yBAAsB,CAAA;AACvD,wFAAwF;AACxF,eAAO,MAAM,eAAe,UA3BX,OAAO,sBA2B4B,CAAA;AAMpD,eAAO,MAAM,wBAAwB,aArCb,MAAM,IAAI,KAAK,MAAM,IAqCyB,CAAA;AACtE,eAAO,MAAM,kBAAkB,eAA2B,CAAA;AAC1D,eAAO,MAAM,oBAAoB,UAnChB,OAAO,YAmCsC,CAAA"}
@@ -160,7 +160,7 @@ export const getPageMarginSetting = pageMarginStore.get;
160
160
  /** Returns the value that ended up applied — the plugin mirrors it into the channel. */
161
161
  export const applyPageMargin = pageMarginStore.apply;
162
162
  /** Whether ```mermaid fences render as box-drawing diagrams (settings
163
- * `dsh-tui.mermaidDiagrams`, default on). Only an explicit `false` keeps
163
+ * `dsh-cli.mermaidDiagrams`, default on). Only an explicit `false` keeps
164
164
  * the fenced source. */
165
165
  const mermaidDiagramsStore = createLiveSetting(true, value => value !== false);
166
166
  export const subscribeMermaidDiagrams = mermaidDiagramsStore.subscribe;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Local slash commands for dsh-tui, presented as `/name — description`.
2
+ * Local slash commands for dsh-cli, presented as `/name — description`.
3
3
  * The built-in set is merged with plugin-registered
4
4
  * commands (plan/goal/…) from the DSH command registry (`dsh-commands`) —
5
5
  * `runCommand` in the Chat screen dispatches either kind, with the registry
@@ -39,7 +39,7 @@ export const LOCAL_COMMANDS = [
39
39
  { name: 'context', description: 'Show loaded context details' },
40
40
  { name: 'status', description: 'Show session status' },
41
41
  { name: 'cost', description: 'Show session token usage' },
42
- { name: 'config', description: 'Show the dsh-tui configuration source' },
42
+ { name: 'config', description: 'Show the dsh-cli configuration source' },
43
43
  { name: 'reload', description: 'Reload preference files from disk and apply live' },
44
44
  { name: 'settings', description: 'View and edit plugin settings' },
45
45
  { name: 'doctor', description: 'Run environment checks' },
@@ -67,7 +67,7 @@ export const LOCAL_COMMANDS = [
67
67
  { name: 'mcp', description: 'Show MCP status' },
68
68
  { name: 'skills', description: 'List available skills' },
69
69
  { name: 'plugins', description: 'Show plugin contract, grant, and ledger diagnostics' },
70
- { name: 'update', description: 'Update dsh-tui and restart' },
70
+ { name: 'update', description: 'Update dsh-cli and restart' },
71
71
  // Skills are discovered through the DSH registry and added at runtime.
72
72
  // A local entry of the same name would win the collision filter.
73
73
  // Misc / not applicable on this leaf
@@ -79,10 +79,10 @@ export const LOCAL_COMMANDS = [
79
79
  // Help / exit
80
80
  { name: 'help', description: 'Show shortcuts and commands' },
81
81
  { name: 'tips', description: 'Show usage tips and shortcuts' },
82
- { name: 'restart', description: 'Restart dsh-tui and resume this session' },
83
- { name: 'exit', description: 'Exit dsh-tui' },
84
- { name: 'quit', description: 'Exit dsh-tui', tag: 'alias of /exit' },
85
- { name: 'q', description: 'Exit dsh-tui', tag: 'alias of /exit' },
82
+ { name: 'restart', description: 'Restart dsh-cli and resume this session' },
83
+ { name: 'exit', description: 'Exit dsh-cli' },
84
+ { name: 'quit', description: 'Exit dsh-cli', tag: 'alias of /exit' },
85
+ { name: 'q', description: 'Exit dsh-cli', tag: 'alias of /exit' },
86
86
  ];
87
87
  /**
88
88
  * Hidden slash commands: intentionally not exposed in the `/` suggestion
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  /**
3
- * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
3
+ * Auto-recap row (`dsh-cli.recapOnOpen` setting): a quiet, dim recap shown
4
4
  * at the bottom of the transcript after an automatic summary on session
5
5
  * open/resume — a thin divider, then a `回顾:` line showing the session
6
6
  * tail in FULL (wraps over lines rather than truncating, like a colleague
@@ -4,7 +4,7 @@ import { Box, Text } from '../ui.js';
4
4
  import { Divider } from './design-system/Divider.js';
5
5
  import { t } from '../i18n.js';
6
6
  /**
7
- * Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
7
+ * Auto-recap row (`dsh-cli.recapOnOpen` setting): a quiet, dim recap shown
8
8
  * at the bottom of the transcript after an automatic summary on session
9
9
  * open/resume — a thin divider, then a `回顾:` line showing the session
10
10
  * tail in FULL (wraps over lines rather than truncating, like a colleague
@@ -3,7 +3,7 @@ import { type ScrollBoxHandle } from '../ui.js';
3
3
  import type { LocalCommand } from '../commands.js';
4
4
  /**
5
5
  * The `?` help menu with a three-column shortcut layout, trimmed to the keys
6
- * dsh-tui actually binds.
6
+ * dsh-cli actually binds.
7
7
  * The command column lists the merged slash-command surface: built-in
8
8
  * commands plus plugin-registered ones from the DSH registry (plan/goal/…).
9
9
  * Skill entries (user-invocable skills merged for `/` completion, issue
@@ -6,7 +6,7 @@ import { t } from '../i18n.js';
6
6
  import { modLabel } from '../utils/modifiers.js';
7
7
  /**
8
8
  * The `?` help menu with a three-column shortcut layout, trimmed to the keys
9
- * dsh-tui actually binds.
9
+ * dsh-cli actually binds.
10
10
  * The command column lists the merged slash-command surface: built-in
11
11
  * commands plus plugin-registered ones from the DSH registry (plan/goal/…).
12
12
  * Skill entries (user-invocable skills merged for `/` completion, issue
@@ -29,10 +29,10 @@ export declare function LogoV2({ model, effort, cwd, skipIntro, intro, tip, whal
29
29
  intro?: WhaleIntroId;
30
30
  /** Test seam: pin the startup tip line (probes need a deterministic tip). */
31
31
  tip?: Tip;
32
- /** Show the pixel whale art (settings `dsh-tui.whale`); off → text-only header. */
32
+ /** Show the pixel whale art (settings `dsh-cli.whale`); off → text-only header. */
33
33
  whale?: boolean;
34
34
  /** Welcome-phase idle whale behaviors — fin flutters, tail thumps,
35
- * sleep after inactivity (settings `dsh-tui.whaleIdle`; on by default —
35
+ * sleep after inactivity (settings `dsh-cli.whaleIdle`; on by default —
36
36
  * an explicit `false` keeps the settled header timer-free). Click-hearts
37
37
  * work regardless, until the freeze. */
38
38
  whaleIdle?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"LogoV2.d.ts","sourceRoot":"","sources":["../../../src/components/LogoV2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAA;AAapD,OAAO,EAA+E,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AA4CjI;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,MAAM,EACN,GAAG,EACH,SAAiB,EACjB,KAAK,EACL,GAAG,EACH,KAAY,EACZ,SAAgB,EAChB,OAAe,GAChB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;4CAGwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;mCAG+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,KAAK,CAAC,SAAS,CA+MlB"}
1
+ {"version":3,"file":"LogoV2.d.ts","sourceRoot":"","sources":["../../../src/components/LogoV2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAA;AAWpD,OAAO,EAA+E,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAiCjI;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,MAAM,EACN,GAAG,EACH,SAAiB,EACjB,KAAK,EACL,GAAG,EACH,KAAY,EACZ,SAAgB,EAChB,OAAe,GAChB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;4CAGwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;mCAG+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,KAAK,CAAC,SAAS,CA+MlB"}
@@ -2,9 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import React from 'react';
3
3
  import { getLang, t as tr } from '../i18n.js';
4
4
  import { pickRandomTip } from '../tips.js';
5
- import { readFileSync } from 'node:fs';
6
- import { dirname, join } from 'node:path';
7
- import { fileURLToPath } from 'node:url';
5
+ import { installedCliVersion } from '../package-version.js';
8
6
  import { Box, Text, useAnimationFrame, useTerminalSize } from '../ui.js';
9
7
  import { getTheme } from '../theme.js';
10
8
  import { useTheme } from './design-system/ThemeProvider.js';
@@ -21,20 +19,8 @@ import { initialWhaleIdleState, nextWhaleIdleStep, } from './whaleIdle.js';
21
19
  const INTRO_HEART_PASS = [
22
20
  WHALE_FRAME_INDEX.heart1, WHALE_FRAME_INDEX.heart2, WHALE_FRAME_INDEX.heart3,
23
21
  ];
24
- /**
25
- * Header badge version, read from the installed package.json so the display
26
- * never drifts from the published version. Falls back to a literal when the
27
- * package metadata is unreadable (unusual layouts).
28
- */
29
- const VERSION = (() => {
30
- try {
31
- const pkgPath = join(dirname(fileURLToPath(import.meta.url)), '..', '..', '..', 'package.json');
32
- return JSON.parse(readFileSync(pkgPath, 'utf8')).version ?? '0.1.0';
33
- }
34
- catch {
35
- return '0.1.0';
36
- }
37
- })();
22
+ // Cache only the splash badge; update checks must reread package metadata.
23
+ const VERSION = installedCliVersion();
38
24
  /**
39
25
  * Center of the whale art's bounding box: sprite columns 3..34 (center
40
26
  * 18.5) of the 40-wide box. The welcome tagline is indented so its own
@@ -134,7 +120,7 @@ export function LogoV2({ model, effort, cwd, skipIntro = false, intro, tip, whal
134
120
  const wordmarkShimmerRGB = parseRGB(theme.accentShimmer) ?? ICE;
135
121
  const taglineRGB = parseRGB(theme.activity) ?? ICE;
136
122
  const { showWhale, showBigTitle, showPlainTitle } = resolveSplashLayout(columns, { whale });
137
- // Welcome-phase idle behaviors (settings `dsh-tui.whaleIdle`): fin
123
+ // Welcome-phase idle behaviors (settings `dsh-cli.whaleIdle`): fin
138
124
  // flutters, tail thumps and blinks while idle, and a sleep-Z loop after
139
125
  // sustained inactivity — all as INDEPENDENT layers composed per tick
140
126
  // (whaleLayers.ts), so a click heart plays over a mid-wag tail or the
@@ -220,5 +206,5 @@ export function LogoV2({ model, effort, cwd, skipIntro = false, intro, tip, whal
220
206
  setHeartSeq(0);
221
207
  setHeartKey(k => k + 1);
222
208
  }
223
- }, children: _jsx(WhaleArt, { frameIndex: frameIndex, pose: settled && whaleIdle && !whaleFrozen ? (idlePose ?? RESTING_POSE) : undefined, width: WHALE_BOX_WIDTH }) })), (showBigTitle || showPlainTitle) && _jsxs(Box, { flexDirection: "column", flexShrink: 1, children: [_jsxs(Text, { wrap: "truncate-end", children: [sweep('✦ dsh-CLI', t, wordmarkRGB, wordmarkShimmerRGB, 60), _jsx(Text, { dimColor: true, children: ' v' + VERSION })] }), showBigTitle ? _jsxs(_Fragment, { children: [bigDeepSeek.map((row, index) => (_jsx(Text, { wrap: "truncate-end", children: row }, `ds-${index}`))), bigHarness.map((row, index) => (_jsx(Text, { wrap: "truncate-end", children: row }, `h-${index}`)))] }) : _jsx(Text, { color: "accent", bold: true, wrap: "truncate-end", children: "DeepSeek Harness" }), _jsxs(Text, { wrap: "truncate-end", children: [model, effort !== undefined && _jsx(Text, { dimColor: true, children: ' · ' + capitalize(effort) + ' effort' })] }), _jsx(Text, { dimColor: true, wrap: "truncate-end", children: cwd }), _jsxs(Text, { wrap: "truncate-end", children: [_jsx(Text, { dimColor: true, children: tr('logo-tip-prefix') }), getLang() === 'zh' ? randomTip.zh : randomTip.en, _jsx(Text, { dimColor: true, children: ' · /tips ' + tr('logo-tip-more') })] })] })] }), _jsx(Box, { marginTop: 1, paddingLeft: welcomePad, children: _jsx(Text, { children: sweep(tagline, t, taglineRGB, FLASH, 60) }) })] }));
209
+ }, children: _jsx(WhaleArt, { frameIndex: frameIndex, pose: settled && whaleIdle && !whaleFrozen ? (idlePose ?? RESTING_POSE) : undefined, width: WHALE_BOX_WIDTH }) })), (showBigTitle || showPlainTitle) && _jsxs(Box, { flexDirection: "column", flexShrink: 1, children: [_jsxs(Text, { wrap: "truncate-end", children: [sweep('✦ dsh-CLI', t, wordmarkRGB, wordmarkShimmerRGB, 60), VERSION !== undefined && _jsx(Text, { dimColor: true, children: ' v' + VERSION })] }), showBigTitle ? _jsxs(_Fragment, { children: [bigDeepSeek.map((row, index) => (_jsx(Text, { wrap: "truncate-end", children: row }, `ds-${index}`))), bigHarness.map((row, index) => (_jsx(Text, { wrap: "truncate-end", children: row }, `h-${index}`)))] }) : _jsx(Text, { color: "accent", bold: true, wrap: "truncate-end", children: "DeepSeek Harness" }), _jsxs(Text, { wrap: "truncate-end", children: [model, effort !== undefined && _jsx(Text, { dimColor: true, children: ' · ' + capitalize(effort) + ' effort' })] }), _jsx(Text, { dimColor: true, wrap: "truncate-end", children: cwd }), _jsxs(Text, { wrap: "truncate-end", children: [_jsx(Text, { dimColor: true, children: tr('logo-tip-prefix') }), getLang() === 'zh' ? randomTip.zh : randomTip.en, _jsx(Text, { dimColor: true, children: ' · /tips ' + tr('logo-tip-more') })] })] })] }), _jsx(Box, { marginTop: 1, paddingLeft: welcomePad, children: _jsx(Text, { children: sweep(tagline, t, taglineRGB, FLASH, 60) }) })] }));
224
210
  }
@@ -7,7 +7,7 @@ import { getTheme } from '../theme.js';
7
7
  import { useTheme } from './design-system/ThemeProvider.js';
8
8
  import { formatToken } from '../terminal-utils/markdown.js';
9
9
  import { getMermaidEnginePromise, paintMermaidArt, peekMermaidEngine, renderMermaid, } from '../terminal-utils/mermaid.js';
10
- import { getMermaidDiagrams, subscribeMermaidDiagrams } from '../tuiDisplayPrefs.js';
10
+ import { getMermaidDiagrams, subscribeMermaidDiagrams } from '../cliDisplayPrefs.js';
11
11
  import { t } from '../i18n.js';
12
12
  /**
13
13
  * A ```mermaid fence rendered as Unicode box-drawing art.
@@ -4,7 +4,7 @@ import type { ChatRow } from '../dsh-adapter/channel.js';
4
4
  import type { TranscriptImage } from '../dsh-adapter/transcript-images.js';
5
5
  import type { DOMElement } from '../ink/dom.js';
6
6
  import { type TimelineSnapshot } from '../ink/timeline-rail.js';
7
- import type { ToolBackground } from '../tuiDisplayPrefs.js';
7
+ import type { ToolBackground } from '../cliDisplayPrefs.js';
8
8
  /**
9
9
  * Display form of an IDE-selection path (T-FIX-01): when the path lives
10
10
  * under the session cwd, strip that prefix so the indicator line reads
@@ -44,7 +44,7 @@ export declare function MessageList({ rows, expanded, expandedRows, selectedId,
44
44
  foldTerminalCommand?: boolean;
45
45
  /** Smooth streaming reveal from the live channel settings (default off at
46
46
  * this layer — embedders and verify harnesses keep exact-paint behavior;
47
- * Chat passes the channel's `dsh-tui.smoothStreaming` value). */
47
+ * Chat passes the channel's `dsh-cli.smoothStreaming` value). */
48
48
  smoothStreaming?: boolean;
49
49
  /** Working-activity preset name from the channel; drives the subagent
50
50
  * card's running glyph so both indicators follow one setting. */
@@ -26,7 +26,7 @@ import { getRevealVersion, revealLengthOf, revealTextOf } from './smoothReveal.j
26
26
  import { useRevealVersion } from '../hooks/useRevealVersion.js';
27
27
  import { TranscriptImages } from './messages/TranscriptImages.js';
28
28
  /**
29
- * Transcript rows rendered with the dsh-TUI message layout: user prompts
29
+ * Transcript rows rendered with the dsh-CLI message layout: user prompts
30
30
  * on a grey bubble with a `❯` pointer, assistant text with a `●` bullet and
31
31
  * markdown, thinking as a live three-line/full toggle then a settled
32
32
  * `⚓ Thinking` row with the localized ctrl+o expand hint, and tool calls as
@@ -4,9 +4,9 @@ import React from 'react';
4
4
  * PowerShell 等 profile 默认 8px padding、GUI 终端)自带内缩,另一些
5
5
  * (裸 WSL、tmux、SSH、部分嵌入宿主)完全没有——文字直接贴着屏幕四边,
6
6
  * 观感压抑。TUI 无法读取终端的 padding,所以在根布局自备一层小"页边距"。
7
- * 设置(`dsh-tui.pageMargin`)可以是预设名 none / slim / normal(默认,
7
+ * 设置(`dsh-cli.pageMargin`)可以是预设名 none / slim / normal(默认,
8
8
  * 左右 2 列、上下 1 行)/ roomy,或自定义 `NxM`(左右各 N 列 × 上下各 M
9
- * 行,如 3x1)——解析与几何见 tuiDisplayPrefs。
9
+ * 行,如 3x1)——解析与几何见 cliDisplayPrefs。
10
10
  *
11
11
  * 实现策略(三层):
12
12
  *
@@ -21,7 +21,7 @@ import React from 'react';
21
21
  * 右键菜单)补偿——它们的锚点来自指针事件(屏幕坐标),而 absolute
22
22
  * 盒子相对的是内缩后的内容区原点。
23
23
  *
24
- * 模式来源是 tuiDisplayPrefs 的模块级 store(applyPageMargin),不是
24
+ * 模式来源是 cliDisplayPrefs 的模块级 store(applyPageMargin),不是
25
25
  * props:`.PageMargin` 位于 Chat 之上,/settings 的更改如果只走 channel
26
26
  * 的版本 bump 无法驱动它(那只重渲染 Chat 以下)。store 由 plugin 的
27
27
  * applyDisplay 镜像写入,模式变化时本组件重渲染并重布局。
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { Box } from '../ui.js';
4
4
  import { TerminalSizeContext, } from '../ink/components/TerminalSizeContext.js';
5
5
  import { useTerminalSize } from '../ink/hooks/use-terminal-size.js';
6
- import { getPageMarginSetting, resolvePageMargin, subscribePageMargin, } from '../tuiDisplayPrefs.js';
6
+ import { getPageMarginSetting, resolvePageMargin, subscribePageMargin, } from '../cliDisplayPrefs.js';
7
7
  /** 嵌套安全的 inset(若未来出现嵌套 PageMargin 会累加)。 */
8
8
  export const PageInsetContext = React.createContext({ x: 0, y: 0 });
9
9
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
2
+ * Error boundary for plugin scenes (dsh-cli-scenes). A scene component is
3
3
  * third-party code rendered inside Chat's tree: without a boundary a render
4
4
  * error propagates to ink's app-level boundary (src/ink/components/App.tsx)
5
5
  * and takes the whole TUI down with it. Catching here collapses the blast
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Error boundary for plugin scenes (dsh-tui-scenes). A scene component is
2
+ * Error boundary for plugin scenes (dsh-cli-scenes). A scene component is
3
3
  * third-party code rendered inside Chat's tree: without a boundary a render
4
4
  * error propagates to ink's app-level boundary (src/ink/components/App.tsx)
5
5
  * and takes the whole TUI down with it. Catching here collapses the blast
@@ -130,7 +130,7 @@ export interface PromptInputProps {
130
130
  onDismissCaretPreview?(): void;
131
131
  }
132
132
  /**
133
- * dsh-TUI prompt input: rounded border box (top+bottom borders
133
+ * dsh-CLI prompt input: rounded border box (top+bottom borders
134
134
  * only), `❯ ` prompt char (dimmed while a turn is working), the text with a
135
135
  * block cursor at the cursor position, and above it the slash-command /
136
136
  * file-completion suggestion card (SuggestionCard: rounded panel with the
@@ -344,7 +344,7 @@ const EDITOR_CHROME_ROWS = 5;
344
344
  */
345
345
  const DOUBLE_CLICK_MS = 500;
346
346
  /**
347
- * dsh-TUI prompt input: rounded border box (top+bottom borders
347
+ * dsh-CLI prompt input: rounded border box (top+bottom borders
348
348
  * only), `❯ ` prompt char (dimmed while a turn is working), the text with a
349
349
  * block cursor at the cursor position, and above it the slash-command /
350
350
  * file-completion suggestion card (SuggestionCard: rounded panel with the
@@ -501,7 +501,7 @@ export function PromptInput({ channel, suspended = false, draftCache, helpOpen,
501
501
  const [, setExpandedTick] = React.useState(0);
502
502
  const prevExpandedRef = React.useRef(false);
503
503
  /**
504
- * Feature gate (settings `dsh-tui.expandEditor`, on by default; a mock
504
+ * Feature gate (settings `dsh-cli.expandEditor`, on by default; a mock
505
505
  * channel without the field also reads as on). Off hides the ✎
506
506
  * affordance and refuses the shortcut — the editor cannot open.
507
507
  */
@@ -3193,7 +3193,7 @@ export function PromptInput({ channel, suspended = false, draftCache, helpOpen,
3193
3193
  (helpOpen || channel.pending.length > 0 || fileOverlayOpen || overlayOpen || peekOpen);
3194
3194
  // 顶边框右侧的会话名标签 chip:色随强调色;超宽截断,宽度
3195
3195
  // 随终端列数伸缩但不超过 28 显示单元。默认关闭——`/settings` 的
3196
- // 「会话名标签」开关(dsh-tui.promptSessionLabel)开启后显示。
3196
+ // 「会话名标签」开关(dsh-cli.promptSessionLabel)开启后显示。
3197
3197
  const sessionTitle = channel.sessionTitle ?? '';
3198
3198
  const topRightLabel = channel.promptSessionLabel === true && sessionTitle !== ''
3199
3199
  ? {
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type ScrollBoxHandle } from '../ui.js';
3
3
  /**
4
4
  * Proportional scrollbar for the fullscreen transcript's gutter — the
5
- * `scrollbar` option of the `dsh-tui.scrollGutter` setting (the timeline
5
+ * `scrollbar` option of the `dsh-cli.scrollGutter` setting (the timeline
6
6
  * rail's sibling; same 2-column slot, same chrome rules):
7
7
  *
8
8
  * - the thumb (██) shows the visible window's position AND size over the
@@ -18,7 +18,7 @@ const CHIP_DWELL_MS = 250;
18
18
  const PIN_SETTLE_CHECKS = 3;
19
19
  /**
20
20
  * Proportional scrollbar for the fullscreen transcript's gutter — the
21
- * `scrollbar` option of the `dsh-tui.scrollGutter` setting (the timeline
21
+ * `scrollbar` option of the `dsh-cli.scrollGutter` setting (the timeline
22
22
  * rail's sibling; same 2-column slot, same chrome rules):
23
23
  *
24
24
  * - the thumb (██) shows the visible window's position AND size over the
@@ -7,7 +7,7 @@ export type SelectOption = {
7
7
  description?: string;
8
8
  };
9
9
  /**
10
- * A single-choice select list with the standard dsh-TUI visual treatment:
10
+ * A single-choice select list with the standard dsh-CLI visual treatment:
11
11
  * ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
12
12
  * scroll arrows). Keyboard navigation is owned by the parent dialog, which
13
13
  * passes focus/selection indices back in.
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import Box from '../ink/components/Box.js';
3
3
  import { ListItem } from './design-system/ListItem.js';
4
4
  /**
5
- * A single-choice select list with the standard dsh-TUI visual treatment:
5
+ * A single-choice select list with the standard dsh-CLI visual treatment:
6
6
  * ListItem rows with ❯ focus pointer, ✓ selected checkmark, descriptions,
7
7
  * scroll arrows). Keyboard navigation is owned by the parent dialog, which
8
8
  * passes focus/selection indices back in.
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { ToolFileDiff } from '../dsh-adapter/channel.js';
3
3
  export { chalkFromToken } from '../terminal-utils/syntaxTheme.js';
4
4
  export { parseAnsiRuns, highlightLines } from '../terminal-utils/syntaxRuns.js';
5
- import type { ToolBackground } from '../tuiDisplayPrefs.js';
5
+ import type { ToolBackground } from '../cliDisplayPrefs.js';
6
6
  export declare function SplitDiffView({ diffs, width, maxRows, verbose, toolBackground, reveal, }: {
7
7
  readonly diffs: readonly ToolFileDiff[];
8
8
  /** Content width available to the whole two-pane block (divider included). */
@@ -12,7 +12,7 @@ export declare function getThemeOptions(themeHost?: TuiThemeHost): SelectOption[
12
12
  * listing the `auto` pseudo-theme and built-in palettes first, followed by
13
13
  * static JSON and plugin themes — each row shows the display name, base and
14
14
  * three key color swatches; `❯` marks focus, `✓` the active theme. Enter
15
- * applies through the ThemeProvider setter (persists to ~/.dsh-tui/theme.json
15
+ * applies through the ThemeProvider setter (persists to ~/.dsh-cli/theme.json
16
16
  * and hot swaps), Esc cancels.
17
17
  */
18
18
  export declare function ThemePicker({ focusIndex, currentTheme, themeHost, onPick, }: {
@@ -45,7 +45,7 @@ export function getThemeOptions(themeHost) {
45
45
  * listing the `auto` pseudo-theme and built-in palettes first, followed by
46
46
  * static JSON and plugin themes — each row shows the display name, base and
47
47
  * three key color swatches; `❯` marks focus, `✓` the active theme. Enter
48
- * applies through the ThemeProvider setter (persists to ~/.dsh-tui/theme.json
48
+ * applies through the ThemeProvider setter (persists to ~/.dsh-cli/theme.json
49
49
  * and hot swaps), Esc cancels.
50
50
  */
51
51
  export function ThemePicker({ focusIndex, currentTheme, themeHost, onPick, }) {
@@ -4,7 +4,7 @@
4
4
  * keeps this shim so existing importers (`/activity` picker, status line,
5
5
  * channel, activity prefs) resolve the same names without moving; all preset
6
6
  * data (the pi-extension union, 35 presets) lives upstream.
7
- * @module dsh-tui/components/activityFrames
7
+ * @module dsh-cli/components/activityFrames
8
8
  */
9
9
  import { type FramePreset } from 'dsh-working-activity/frames';
10
10
  export type { FramePreset };
@@ -4,7 +4,7 @@
4
4
  * keeps this shim so existing importers (`/activity` picker, status line,
5
5
  * channel, activity prefs) resolve the same names without moving; all preset
6
6
  * data (the pi-extension union, 35 presets) lives upstream.
7
- * @module dsh-tui/components/activityFrames
7
+ * @module dsh-cli/components/activityFrames
8
8
  */
9
9
  import { FRAME_PRESETS as upstreamPresets } from 'dsh-working-activity/frames';
10
10
  export const DEFAULT_PRESET = 'moon8';
@@ -5,7 +5,7 @@ type Props = {
5
5
  };
6
6
  /**
7
7
  * Joins children with a middot separator (" · ") for inline metadata display
8
- * (in the dsh-TUI visual language). Automatically filters out
8
+ * (in the dsh-CLI visual language). Automatically filters out
9
9
  * null/undefined/false children and only renders separators between valid
10
10
  * elements.
11
11
  */
@@ -3,7 +3,7 @@ import React, { Children, isValidElement } from 'react';
3
3
  import Text from './ThemedText.js';
4
4
  /**
5
5
  * Joins children with a middot separator (" · ") for inline metadata display
6
- * (in the dsh-TUI visual language). Automatically filters out
6
+ * (in the dsh-CLI visual language). Automatically filters out
7
7
  * null/undefined/false children and only renders separators between valid
8
8
  * elements.
9
9
  */
@@ -37,7 +37,7 @@ type DividerProps = {
37
37
  };
38
38
  /**
39
39
  * A horizontal divider line, optionally with a title in the middle
40
- * in the dsh-TUI visual language.
40
+ * in the dsh-CLI visual language.
41
41
  *
42
42
  * The rule fills the width Yoga actually grants it: the Box is measured
43
43
  * after layout (SearchBox pattern — a resize re-layouts without any prop
@@ -14,7 +14,7 @@ import { usePageInset } from '../PageMargin.js';
14
14
  const MAX_APPLIED_MEASUREMENTS = 8;
15
15
  /**
16
16
  * A horizontal divider line, optionally with a title in the middle
17
- * in the dsh-TUI visual language.
17
+ * in the dsh-CLI visual language.
18
18
  *
19
19
  * The rule fills the width Yoga actually grants it: the Box is measured
20
20
  * after layout (SearchBox pattern — a resize re-layouts without any prop
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  type Status = 'success' | 'error' | 'warning' | 'info' | 'pending' | 'loading';
3
3
  /**
4
- * A status indicator icon with the dsh-TUI color mapping: ✓ green / ✗ red /
4
+ * A status indicator icon with the dsh-CLI color mapping: ✓ green / ✗ red /
5
5
  * ⚠ amber / ℹ blue /
6
6
  * ○ dim / … dim.
7
7
  */