@deepseek-harness-tui/dsh-tui 0.8.8 → 0.9.1
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.
- package/README.md +60 -238
- package/bin/dsh-tui.js +172 -5
- package/cordis.patch.yml +16 -4
- package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -13
- package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -59
- package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -15
- package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -32
- package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -59
- package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -166
- package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -42
- package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -143
- package/dsh-ecosystem-spec/registry/README.md +14 -14
- package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -56
- package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -13
- package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -149
- package/lib/types/cc/hyperlink.d.ts +7 -1
- package/lib/types/cc/hyperlink.d.ts.map +1 -1
- package/lib/types/cc/hyperlink.js +3 -2
- package/lib/types/cc/markdown.d.ts.map +1 -1
- package/lib/types/cc/markdown.js +33 -3
- package/lib/types/cc/sessionColors.d.ts +27 -0
- package/lib/types/cc/sessionColors.d.ts.map +1 -0
- package/lib/types/cc/sessionColors.js +39 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +10 -2
- package/lib/types/components/ActivityPicker.d.ts +4 -1
- package/lib/types/components/ActivityPicker.d.ts.map +1 -1
- package/lib/types/components/ActivityPicker.js +2 -2
- package/lib/types/components/AutoRecapRow.d.ts +23 -0
- package/lib/types/components/AutoRecapRow.d.ts.map +1 -0
- package/lib/types/components/AutoRecapRow.js +23 -0
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +1 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts +2 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
- package/lib/types/components/Chat/SubagentMessage.js +11 -3
- package/lib/types/components/ColorPicker.d.ts +17 -0
- package/lib/types/components/ColorPicker.d.ts.map +1 -0
- package/lib/types/components/ColorPicker.js +20 -0
- package/lib/types/components/CommandSuggestions.d.ts +23 -4
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +41 -14
- package/lib/types/components/ContextBarView.d.ts +33 -0
- package/lib/types/components/ContextBarView.d.ts.map +1 -0
- package/lib/types/components/ContextBarView.js +46 -0
- package/lib/types/components/EffortInputBorder.d.ts +12 -1
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +22 -5
- package/lib/types/components/EffortSlider.d.ts +4 -1
- package/lib/types/components/EffortSlider.d.ts.map +1 -1
- package/lib/types/components/EffortSlider.js +4 -2
- package/lib/types/components/ExtensionDialog.js +6 -2
- package/lib/types/components/FileActionsPanel.d.ts +22 -0
- package/lib/types/components/FileActionsPanel.d.ts.map +1 -0
- package/lib/types/components/FileActionsPanel.js +28 -0
- package/lib/types/components/FileSuggestions.d.ts +26 -7
- package/lib/types/components/FileSuggestions.d.ts.map +1 -1
- package/lib/types/components/FileSuggestions.js +39 -12
- package/lib/types/components/GoalTodoPanel.d.ts +26 -2
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +86 -17
- package/lib/types/components/HelpMenu.d.ts +7 -1
- package/lib/types/components/HelpMenu.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.js +12 -4
- package/lib/types/components/HistorySearchDialog.d.ts +4 -1
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
- package/lib/types/components/HistorySearchDialog.js +2 -2
- package/lib/types/components/LangPicker.d.ts +14 -0
- package/lib/types/components/LangPicker.d.ts.map +1 -0
- package/lib/types/components/LangPicker.js +17 -0
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -1
- package/lib/types/components/LoadedContextPanel.js +3 -1
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +12 -3
- package/lib/types/components/MessageList.d.ts +45 -2
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +560 -41
- package/lib/types/components/ModelPicker.d.ts +27 -2
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +26 -6
- package/lib/types/components/PermissionsPicker.d.ts +21 -0
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -0
- package/lib/types/components/PermissionsPicker.js +27 -0
- package/lib/types/components/PlanPicker.d.ts +15 -0
- package/lib/types/components/PlanPicker.d.ts.map +1 -0
- package/lib/types/components/PlanPicker.js +18 -0
- package/lib/types/components/PresetPicker.d.ts +4 -1
- package/lib/types/components/PresetPicker.d.ts.map +1 -1
- package/lib/types/components/PresetPicker.js +2 -2
- package/lib/types/components/PromptInput.d.ts +4 -3
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +602 -75
- package/lib/types/components/RecapPanel.d.ts +25 -0
- package/lib/types/components/RecapPanel.d.ts.map +1 -0
- package/lib/types/components/RecapPanel.js +55 -0
- package/lib/types/components/RewindPicker.d.ts +12 -1
- package/lib/types/components/RewindPicker.d.ts.map +1 -1
- package/lib/types/components/RewindPicker.js +6 -4
- package/lib/types/components/ScrollbarGutter.d.ts +28 -0
- package/lib/types/components/ScrollbarGutter.d.ts.map +1 -0
- package/lib/types/components/ScrollbarGutter.js +119 -0
- package/lib/types/components/Select.d.ts +8 -1
- package/lib/types/components/Select.d.ts.map +1 -1
- package/lib/types/components/Select.js +4 -2
- package/lib/types/components/SkillsPicker.d.ts +4 -1
- package/lib/types/components/SkillsPicker.d.ts.map +1 -1
- package/lib/types/components/SkillsPicker.js +2 -2
- package/lib/types/components/SubagentCard.d.ts +2 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +9 -2
- package/lib/types/components/SubagentDashboard.d.ts +4 -0
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +9 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +5 -4
- package/lib/types/components/SuggestionCard.d.ts +65 -0
- package/lib/types/components/SuggestionCard.d.ts.map +1 -0
- package/lib/types/components/SuggestionCard.js +77 -0
- package/lib/types/components/ThemePicker.d.ts +4 -1
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +2 -2
- package/lib/types/components/ThinkingToggle.d.ts +4 -1
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -1
- package/lib/types/components/ThinkingToggle.js +2 -2
- package/lib/types/components/TimelineRail.d.ts +53 -0
- package/lib/types/components/TimelineRail.d.ts.map +1 -0
- package/lib/types/components/TimelineRail.js +197 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts +6 -1
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -1
- package/lib/types/components/WorkspaceFlowPicker.js +4 -2
- package/lib/types/components/WorkspaceMenuPicker.d.ts +19 -0
- package/lib/types/components/WorkspaceMenuPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceMenuPicker.js +19 -0
- package/lib/types/components/WorkspacePicker.d.ts +4 -1
- package/lib/types/components/WorkspacePicker.d.ts.map +1 -1
- package/lib/types/components/WorkspacePicker.js +2 -2
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +5 -1
- package/lib/types/components/design-system/ListItem.d.ts +8 -1
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +8 -3
- package/lib/types/components/design-system/ThemeProvider.d.ts +7 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +2 -1
- package/lib/types/components/messages/AssistantTextMessage.d.ts +5 -2
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantTextMessage.js +6 -2
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +2 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +10 -4
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +15 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +37 -7
- package/lib/types/components/messages/UserPromptMessage.d.ts +2 -1
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +7 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +75 -11
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +13 -2
- package/lib/types/components/sessions/SessionListRow.d.ts +4 -1
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
- package/lib/types/components/sessions/SessionListRow.js +4 -2
- package/lib/types/components/trajectory/HotspotView.d.ts +7 -1
- package/lib/types/components/trajectory/HotspotView.d.ts.map +1 -1
- package/lib/types/components/trajectory/HotspotView.js +8 -2
- package/lib/types/components/trajectory/Ledger.d.ts +9 -1
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
- package/lib/types/components/trajectory/Ledger.js +23 -5
- package/lib/types/components/trajectory/WaveBand.d.ts +10 -1
- package/lib/types/components/trajectory/WaveBand.d.ts.map +1 -1
- package/lib/types/components/trajectory/WaveBand.js +7 -2
- package/lib/types/dsh-adapter/channel.d.ts +117 -7
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +1301 -122
- package/lib/types/dsh-adapter/compat/index.d.ts +8 -6
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/index.js +8 -6
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +150 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/sessionLog.js +518 -41
- package/lib/types/dsh-adapter/contract.d.ts +1 -1
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +1 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +1 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.d.ts +20 -2
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +9 -1
- package/lib/types/dsh-adapter/plugin.d.ts +0 -9
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +453 -14
- package/lib/types/dsh-adapter/presets.d.ts +18 -0
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +31 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +29 -1
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +89 -5
- package/lib/types/dsh-adapter/questions.d.ts +19 -2
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +53 -10
- package/lib/types/dsh-adapter/recap.d.ts +49 -0
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -0
- package/lib/types/dsh-adapter/recap.js +121 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts +314 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessionTree.js +954 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts +15 -44
- package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
- package/lib/types/dsh-adapter/shortcuts.js +28 -165
- package/lib/types/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- package/lib/types/herdr.js +1 -1
- package/lib/types/i18n.d.ts +770 -181
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +257 -80
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
- package/lib/types/ink/components/AlternateScreen.js +13 -1
- package/lib/types/ink/components/App.d.ts +12 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +101 -4
- package/lib/types/ink/components/ClockContext.d.ts.map +1 -1
- package/lib/types/ink/components/ClockContext.js +2 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +170 -91
- package/lib/types/ink/constants.d.ts +9 -0
- package/lib/types/ink/constants.d.ts.map +1 -1
- package/lib/types/ink/constants.js +9 -0
- package/lib/types/ink/events/click-event.d.ts +7 -16
- package/lib/types/ink/events/click-event.d.ts.map +1 -1
- package/lib/types/ink/events/click-event.js +16 -19
- package/lib/types/ink/events/event-handlers.d.ts +11 -1
- package/lib/types/ink/events/event-handlers.d.ts.map +1 -1
- package/lib/types/ink/events/event-handlers.js +2 -0
- package/lib/types/ink/events/input-event.d.ts +9 -0
- package/lib/types/ink/events/input-event.d.ts.map +1 -1
- package/lib/types/ink/events/input-event.js +4 -0
- package/lib/types/ink/events/pointer-event.d.ts +61 -0
- package/lib/types/ink/events/pointer-event.d.ts.map +1 -0
- package/lib/types/ink/events/pointer-event.js +61 -0
- package/lib/types/ink/events/wheel-event.d.ts +17 -0
- package/lib/types/ink/events/wheel-event.d.ts.map +1 -0
- package/lib/types/ink/events/wheel-event.js +20 -0
- package/lib/types/ink/geometry-trace.d.ts +51 -0
- package/lib/types/ink/geometry-trace.d.ts.map +1 -0
- package/lib/types/ink/geometry-trace.js +83 -0
- package/lib/types/ink/hit-test.d.ts +56 -1
- package/lib/types/ink/hit-test.d.ts.map +1 -1
- package/lib/types/ink/hit-test.js +146 -8
- package/lib/types/ink/ink.d.ts +58 -1
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +230 -29
- package/lib/types/ink/log-update.d.ts.map +1 -1
- package/lib/types/ink/log-update.js +21 -0
- package/lib/types/ink/node-cache.d.ts +5 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.d.ts +8 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +101 -12
- package/lib/types/ink/render-node-to-output.d.ts +10 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +111 -18
- package/lib/types/ink/timeline-rail.d.ts +138 -0
- package/lib/types/ink/timeline-rail.d.ts.map +1 -0
- package/lib/types/ink/timeline-rail.js +179 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +47 -5
- package/lib/types/migrationPrefs.d.ts +60 -0
- package/lib/types/migrationPrefs.d.ts.map +1 -0
- package/lib/types/migrationPrefs.js +97 -0
- package/lib/types/modelGroups.d.ts +72 -0
- package/lib/types/modelGroups.d.ts.map +1 -0
- package/lib/types/modelGroups.js +97 -0
- package/lib/types/modelRecents.d.ts +39 -0
- package/lib/types/modelRecents.d.ts.map +1 -0
- package/lib/types/modelRecents.js +97 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +11 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +31 -1
- package/lib/types/oauth.d.ts +15 -0
- package/lib/types/oauth.d.ts.map +1 -0
- package/lib/types/oauth.js +14 -0
- package/lib/types/reload.d.ts +109 -0
- package/lib/types/reload.d.ts.map +1 -0
- package/lib/types/reload.js +118 -0
- package/lib/types/screens/Chat.d.ts +3 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +1377 -371
- package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
- package/lib/types/screens/SessionBrowser.js +56 -29
- package/lib/types/screens/SessionTree.d.ts +27 -0
- package/lib/types/screens/SessionTree.d.ts.map +1 -0
- package/lib/types/screens/SessionTree.js +555 -0
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +64 -22
- package/lib/types/screens/StatusLine.d.ts +0 -8
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +224 -45
- package/lib/types/screens/StatusMetrics.d.ts +35 -3
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +63 -8
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/screens/TrajectoryScene.js +81 -14
- package/lib/types/screens/chatOverlay.d.ts +237 -0
- package/lib/types/screens/chatOverlay.d.ts.map +1 -0
- package/lib/types/screens/chatOverlay.js +116 -0
- package/lib/types/tips.d.ts.map +1 -1
- package/lib/types/tips.js +64 -10
- package/lib/types/tuiDisplayPrefs.d.ts +15 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +9 -0
- package/lib/types/update.d.ts +139 -0
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +382 -30
- package/lib/types/utils/debug.d.ts +10 -0
- package/lib/types/utils/debug.d.ts.map +1 -1
- package/lib/types/utils/debug.js +24 -0
- package/lib/types/utils/fileTarget.d.ts +46 -0
- package/lib/types/utils/fileTarget.d.ts.map +1 -0
- package/lib/types/utils/fileTarget.js +178 -0
- package/lib/types/utils/keymap.d.ts +134 -0
- package/lib/types/utils/keymap.d.ts.map +1 -0
- package/lib/types/utils/keymap.js +311 -0
- package/lib/types/utils/mentions.d.ts +25 -2
- package/lib/types/utils/mentions.d.ts.map +1 -1
- package/lib/types/utils/mentions.js +69 -10
- package/lib/types/utils/openExternal.d.ts +50 -0
- package/lib/types/utils/openExternal.d.ts.map +1 -0
- package/lib/types/utils/openExternal.js +170 -0
- package/lib/types/utils/paths.d.ts.map +1 -1
- package/lib/types/utils/paths.js +1 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +140 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +11 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.d.ts +14 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.js +67 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.d.ts +64 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.js +170 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.d.ts +79 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.js +196 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.d.ts +68 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +193 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.d.ts +32 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.js +101 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.d.ts +31 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +68 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.d.ts +69 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +129 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +70 -0
- package/node_modules/@dsh-std/command/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/command/LICENSE +21 -21
- package/node_modules/@dsh-std/command/README.md +26 -26
- package/node_modules/@dsh-std/command/README.zh.md +28 -28
- package/node_modules/@dsh-std/command/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/command/package.json +22 -22
- package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/node_modules/@dsh-std/connection/README.md +42 -42
- package/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/node_modules/@dsh-std/connection/package.json +20 -20
- package/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/core/LICENSE +21 -21
- package/node_modules/@dsh-std/core/README.md +13 -13
- package/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/core/package.json +21 -21
- package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/node_modules/@dsh-std/manifest/README.md +5 -5
- package/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/manifest/package.json +20 -20
- package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/messages/LICENSE +21 -21
- package/node_modules/@dsh-std/messages/README.md +5 -5
- package/node_modules/@dsh-std/messages/README.zh.md +7 -7
- package/node_modules/@dsh-std/messages/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/messages/package.json +20 -20
- package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -54
- package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/node_modules/@dsh-std/presentation/README.md +27 -27
- package/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/presentation/package.json +25 -25
- package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/storage/LICENSE +21 -21
- package/node_modules/@dsh-std/storage/README.md +5 -5
- package/node_modules/@dsh-std/storage/README.zh.md +7 -7
- package/node_modules/@dsh-std/storage/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/storage/package.json +20 -20
- package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -56
- package/package.json +19 -5
- package/presets/liangshen/.dsh-tui-managed.json +1 -1
- package/presets/liangshen/instruction-hint.mjs +8 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -27
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -25
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -21
package/lib/types/tips.js
CHANGED
|
@@ -134,8 +134,8 @@ export const TIPS = [
|
|
|
134
134
|
{
|
|
135
135
|
id: 'keys-paste',
|
|
136
136
|
group: 'keys',
|
|
137
|
-
zh: 'Ctrl+V
|
|
138
|
-
en: 'Ctrl+V pastes text, file paths, or image attachments',
|
|
137
|
+
zh: 'Ctrl+V 或 Alt+V 粘贴文本、文件路径或图片附件;/settings 可改快捷键',
|
|
138
|
+
en: 'Ctrl+V or Alt+V pastes text, file paths, or image attachments; remappable in /settings',
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
id: 'keys-slash-search',
|
|
@@ -146,8 +146,14 @@ export const TIPS = [
|
|
|
146
146
|
{
|
|
147
147
|
id: 'keys-mouse-click',
|
|
148
148
|
group: 'keys',
|
|
149
|
-
zh: '
|
|
150
|
-
en: 'Click
|
|
149
|
+
zh: '工具卡/thinking/摘要点击展开,子代理卡点击看详情;输入框点击定位光标',
|
|
150
|
+
en: 'Click tool/thinking/summary rows to fold; subagent cards open detail; click input to move caret',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: 'keys-mouse-scenes',
|
|
154
|
+
group: 'keys',
|
|
155
|
+
zh: '轨迹与 /settings 支持鼠标:行点击跳转/编辑,滚轮移动光标或焦点',
|
|
156
|
+
en: 'Trajectory and /settings take the mouse: row clicks jump/edit, the wheel moves cursor or focus',
|
|
151
157
|
},
|
|
152
158
|
// ── 命令 ──────────────────────────────────────────────────
|
|
153
159
|
{
|
|
@@ -327,8 +333,8 @@ export const TIPS = [
|
|
|
327
333
|
{
|
|
328
334
|
id: 'cmd-permission',
|
|
329
335
|
group: 'commands',
|
|
330
|
-
zh: '/permission
|
|
331
|
-
en: '/permission
|
|
336
|
+
zh: '/permission 弹出权限预设选择器(只读/工作区读写/完全访问)',
|
|
337
|
+
en: '/permission opens the permission-preset picker (read-only/workspace-write/full)',
|
|
332
338
|
},
|
|
333
339
|
{
|
|
334
340
|
id: 'cmd-plan-goal',
|
|
@@ -355,6 +361,18 @@ export const TIPS = [
|
|
|
355
361
|
zh: '时间回溯会 fork 新会话,原消息回到输入框',
|
|
356
362
|
en: 'Rewind forks a session; your message returns to the input',
|
|
357
363
|
},
|
|
364
|
+
{
|
|
365
|
+
id: 'flow-tree',
|
|
366
|
+
group: 'workflow',
|
|
367
|
+
zh: '/tree 打开会话分叉树:悬停预览、点击回退/分叉/切分支',
|
|
368
|
+
en: '/tree opens the session tree: hover to preview, click to rewind/fork/adopt',
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
id: 'flow-fork-copy',
|
|
372
|
+
group: 'workflow',
|
|
373
|
+
zh: '/fork 把当前会话复制成可恢复副本,原会话不受影响',
|
|
374
|
+
en: '/fork copies the session into a resumable twin; the original is untouched',
|
|
375
|
+
},
|
|
358
376
|
{
|
|
359
377
|
id: 'flow-resume',
|
|
360
378
|
group: 'workflow',
|
|
@@ -410,6 +428,36 @@ export const TIPS = [
|
|
|
410
428
|
zh: '底栏 TPS、轨迹条、上下文条默认关,/settings 里打开',
|
|
411
429
|
en: 'TPS, trajectory, context bars are off by default — enable in /settings',
|
|
412
430
|
},
|
|
431
|
+
{
|
|
432
|
+
id: 'disp-statusbar-session-id',
|
|
433
|
+
group: 'display',
|
|
434
|
+
zh: '底栏可显示短会话 ID(# 前 8 位),与日志文件名对应,/settings 里开',
|
|
435
|
+
en: 'Footer can show the short session id (# + 8 chars, matches the log filename) — enable in /settings',
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
id: 'disp-statusbar-title',
|
|
439
|
+
group: 'display',
|
|
440
|
+
zh: '底栏可显示会话标题;/rename 随时改',
|
|
441
|
+
en: 'Footer can show the session title; rename anytime with /rename',
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
id: 'disp-statusbar-fields',
|
|
445
|
+
group: 'display',
|
|
446
|
+
zh: '底栏字段逐项开关:token 总量、git 分支、模式、活动摘要…… /settings 里配',
|
|
447
|
+
en: 'Footer fields are per-field switches: token totals, git branch, mode, activity — set in /settings',
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
id: 'disp-statusbar-compact',
|
|
451
|
+
group: 'display',
|
|
452
|
+
zh: '底栏 compact 开=单行收纳;关=左右分组(指标在左、位置在右)',
|
|
453
|
+
en: 'Footer compact on = one merged line; off = metrics left, location right',
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
id: 'disp-statusbar-hint',
|
|
457
|
+
group: 'display',
|
|
458
|
+
zh: "空闲时 '? 查看快捷键' 常驻提示也是底栏开关(shortcutHint)",
|
|
459
|
+
en: 'The idle "? for shortcuts" reminder is itself a footer switch (shortcutHint)',
|
|
460
|
+
},
|
|
413
461
|
{
|
|
414
462
|
id: 'disp-context-warn',
|
|
415
463
|
group: 'display',
|
|
@@ -476,6 +524,12 @@ export const TIPS = [
|
|
|
476
524
|
zh: '全屏模式鼠标拖选即复制;Esc 取消选区',
|
|
477
525
|
en: 'Drag-select copies instantly in fullscreen; Esc cancels',
|
|
478
526
|
},
|
|
527
|
+
{
|
|
528
|
+
id: 'disp-hover-footer',
|
|
529
|
+
group: 'display',
|
|
530
|
+
zh: '悬停底栏字段:ctx 原地变等宽压力条,明细走常驻底行,布局不动',
|
|
531
|
+
en: 'Hover footer fields: ctx morphs in place into a same-width bar, details on a stable line',
|
|
532
|
+
},
|
|
479
533
|
{
|
|
480
534
|
id: 'disp-wheel-sel',
|
|
481
535
|
group: 'display',
|
|
@@ -498,8 +552,8 @@ export const TIPS = [
|
|
|
498
552
|
{
|
|
499
553
|
id: 'pit-esc',
|
|
500
554
|
group: 'pitfalls',
|
|
501
|
-
zh: '审批条 Esc
|
|
502
|
-
en: 'Esc rejects approvals and
|
|
555
|
+
zh: '审批条 Esc=拒绝;问卷第 2 题起 Esc=上一题,Ctrl+C=取消整批',
|
|
556
|
+
en: 'Esc rejects approvals; question batches use Esc for previous and Ctrl+C to cancel',
|
|
503
557
|
},
|
|
504
558
|
{
|
|
505
559
|
id: 'pit-ctrl-c',
|
|
@@ -558,8 +612,8 @@ export const TIPS = [
|
|
|
558
612
|
{
|
|
559
613
|
id: 'pit-mouse-mode',
|
|
560
614
|
group: 'pitfalls',
|
|
561
|
-
zh: '
|
|
562
|
-
en: '
|
|
615
|
+
zh: '主界面鼠标需开 fullscreen;轨迹/resume 整屏页两种模式都带鼠标',
|
|
616
|
+
en: 'Main-chat mouse needs fullscreen; full-page screens (trajectory, /resume) have it in both modes',
|
|
563
617
|
},
|
|
564
618
|
{
|
|
565
619
|
id: 'pit-env-rename',
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
/** Background treatment applied to tool-call cards. */
|
|
2
2
|
export type ToolBackground = 'none' | 'subtle' | 'strong';
|
|
3
|
+
/**
|
|
4
|
+
* What the fullscreen transcript's right gutter shows:
|
|
5
|
+
* - `timeline`: Grok-style turn rail — one tick per user turn (conversation
|
|
6
|
+
* order, not scroll proportion), active turn highlighted, click to jump;
|
|
7
|
+
* - `scrollbar`: classic proportional thumb — position/size of the visible
|
|
8
|
+
* window over the whole content, click the track to scroll there;
|
|
9
|
+
* - `hidden`: no gutter; the transcript takes the full width.
|
|
10
|
+
*/
|
|
11
|
+
export type ScrollGutterMode = 'timeline' | 'scrollbar' | 'hidden';
|
|
3
12
|
/** Individually selectable fields in the status footer. */
|
|
4
13
|
export interface StatusBarConfig {
|
|
5
14
|
/** Prefer the compact, single-line presentation when space permits. */
|
|
@@ -22,6 +31,10 @@ export interface StatusBarConfig {
|
|
|
22
31
|
gitBranch: boolean;
|
|
23
32
|
/** Current session title. */
|
|
24
33
|
sessionTitle: boolean;
|
|
34
|
+
/** Short session id (# + first 8 chars), matching the session log filename. */
|
|
35
|
+
sessionId: boolean;
|
|
36
|
+
/** Compact goal chip (phase glyph + rounds) while a goal exists. */
|
|
37
|
+
goal: boolean;
|
|
25
38
|
/** Non-default session mode. */
|
|
26
39
|
mode: boolean;
|
|
27
40
|
/** Segmented context progress bar on its own footer row. */
|
|
@@ -37,6 +50,8 @@ export interface StatusBarConfig {
|
|
|
37
50
|
export declare const DEFAULT_STATUS_BAR: Readonly<StatusBarConfig>;
|
|
38
51
|
/** Normalize untrusted/config-layer values without mutating the input. */
|
|
39
52
|
export declare function normalizeToolBackground(value: unknown): ToolBackground;
|
|
53
|
+
/** Same normalize contract as toolBackground; `timeline` is the default. */
|
|
54
|
+
export declare function normalizeScrollGutter(value: unknown): ScrollGutterMode;
|
|
40
55
|
/** Merge a partial settings value over the stable status-bar defaults. */
|
|
41
56
|
export declare function normalizeStatusBar(value: unknown): StatusBarConfig;
|
|
42
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuiDisplayPrefs.d.ts","sourceRoot":"","sources":["../../src/tuiDisplayPrefs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEzD,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAA;IACjB,iCAAiC;IACjC,GAAG,EAAE,OAAO,CAAA;IACZ,0CAA0C;IAC1C,YAAY,EAAE,OAAO,CAAA;IACrB,6BAA6B;IAC7B,KAAK,EAAE,OAAO,CAAA;IACd,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAA;IACZ,0BAA0B;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,6BAA6B;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,gCAAgC;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAA;IACnB,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAA;IACjB,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAA;IACnB,mFAAmF;IACnF,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"tuiDisplayPrefs.d.ts","sourceRoot":"","sources":["../../src/tuiDisplayPrefs.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAA;AAElE,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAA;IACjB,iCAAiC;IACjC,GAAG,EAAE,OAAO,CAAA;IACZ,0CAA0C;IAC1C,YAAY,EAAE,OAAO,CAAA;IACrB,6BAA6B;IAC7B,KAAK,EAAE,OAAO,CAAA;IACd,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAA;IACZ,0BAA0B;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,6BAA6B;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAA;IACb,gCAAgC;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAA;IACnB,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAA;IACjB,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAA;IACnB,mFAAmF;IACnF,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,eAAe,CAkBvD,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"}
|
|
@@ -10,6 +10,8 @@ export const DEFAULT_STATUS_BAR = Object.freeze({
|
|
|
10
10
|
tps: false,
|
|
11
11
|
gitBranch: false,
|
|
12
12
|
sessionTitle: false,
|
|
13
|
+
sessionId: false,
|
|
14
|
+
goal: true,
|
|
13
15
|
mode: false,
|
|
14
16
|
contextBar: false,
|
|
15
17
|
activity: false,
|
|
@@ -17,6 +19,7 @@ export const DEFAULT_STATUS_BAR = Object.freeze({
|
|
|
17
19
|
shortcutHint: false,
|
|
18
20
|
});
|
|
19
21
|
const TOOL_BACKGROUNDS = new Set(['none', 'subtle', 'strong']);
|
|
22
|
+
const SCROLL_GUTTERS = new Set(['timeline', 'scrollbar', 'hidden']);
|
|
20
23
|
const STATUS_BAR_KEYS = Object.keys(DEFAULT_STATUS_BAR);
|
|
21
24
|
/** Normalize untrusted/config-layer values without mutating the input. */
|
|
22
25
|
export function normalizeToolBackground(value) {
|
|
@@ -24,6 +27,12 @@ export function normalizeToolBackground(value) {
|
|
|
24
27
|
? value
|
|
25
28
|
: 'none';
|
|
26
29
|
}
|
|
30
|
+
/** Same normalize contract as toolBackground; `timeline` is the default. */
|
|
31
|
+
export function normalizeScrollGutter(value) {
|
|
32
|
+
return typeof value === 'string' && SCROLL_GUTTERS.has(value)
|
|
33
|
+
? value
|
|
34
|
+
: 'timeline';
|
|
35
|
+
}
|
|
27
36
|
/** Merge a partial settings value over the stable status-bar defaults. */
|
|
28
37
|
export function normalizeStatusBar(value) {
|
|
29
38
|
const normalized = { ...DEFAULT_STATUS_BAR };
|
package/lib/types/update.d.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { shellQuote } from './utils/shellQuote.js';
|
|
2
2
|
export { shellQuote };
|
|
3
|
+
/**
|
|
4
|
+
* Append a /restart handoff event to ~/.dsh-tui/restart.log.
|
|
5
|
+
* @param event - Short stable event name.
|
|
6
|
+
* @param data - Small JSON-safe detail (never credentials or session text).
|
|
7
|
+
*/
|
|
8
|
+
export declare function logRestartEvent(event: string, data?: Record<string, unknown>): void;
|
|
9
|
+
/** Start a fresh, clearly delimited /restart attempt block in the log. */
|
|
10
|
+
export declare function beginRestartAttempt(sessionId: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Write a handoff notice to stderr synchronously: process.exit() right after
|
|
13
|
+
* an async stream write skips the flush, and a vanished diagnosis is
|
|
14
|
+
* indistinguishable from a silent failure.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeHandoffNotice(text: string): void;
|
|
3
17
|
export interface TuiUpdateInfo {
|
|
4
18
|
current: string;
|
|
5
19
|
latest: string;
|
|
@@ -88,6 +102,50 @@ export declare function tuiUpdatePluginArgs(profile: string, targetVersion?: str
|
|
|
88
102
|
* token, so matching both keeps the retry from masking real failures.
|
|
89
103
|
*/
|
|
90
104
|
export declare function isTransientUpdateFailure(stderr: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* The pnpm Linux flavor of the tmp-rename race (issue #479): the very same
|
|
107
|
+
* `importPackage` staging path, but overlayfs surfaces the second swap of an
|
|
108
|
+
* already-replaced package dir as EEXIST — deterministically, on every run,
|
|
109
|
+
* never transiently. A plain retry of the identical command ALWAYS fails the
|
|
110
|
+
* same way (the leftover `_tmp_<pid>_<threadId>` staging dir keeps colliding),
|
|
111
|
+
* so this signature must route to the recovery path
|
|
112
|
+
* (removeStalePackageInstall + rerun), not to the plain retry.
|
|
113
|
+
*/
|
|
114
|
+
export declare function isEexistTmpRenameFailure(stderr: string): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* The dsh profile layout places plugin packages under
|
|
117
|
+
* `$DSH_HOME ?? ~/.dsh` — the same root dsh itself resolves
|
|
118
|
+
* (`dshHomePath is $DSH_HOME ?? ~/.dsh`, and packaged presets resolve
|
|
119
|
+
* identically). /update's recovery path needs this location to clear a
|
|
120
|
+
* half-updated install pnpm can no longer swap in place (issue #479).
|
|
121
|
+
*/
|
|
122
|
+
export declare function profilePackageDir(profile: string): string;
|
|
123
|
+
/** What removeStalePackageInstall actually cleared from disk. */
|
|
124
|
+
export interface StaleInstallRemoval {
|
|
125
|
+
/**
|
|
126
|
+
* `removed` — the package dir (or its junction/symlink link) is gone;
|
|
127
|
+
* `absent` — it was not there to begin with (custom profile roots just
|
|
128
|
+
* miss); `failed` — an error other than ENOENT blocked the removal.
|
|
129
|
+
*/
|
|
130
|
+
packageDir: 'removed' | 'absent' | 'failed';
|
|
131
|
+
/** Leftover pnpm staging dirs (`dsh-tui_tmp_<pid>_<threadId>`) removed. */
|
|
132
|
+
tmpDirs: string[];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Recovery for the pnpm tmp-rename races (issues #225/#479): remove the
|
|
136
|
+
* profile's installed copy of this package plus the sibling `_tmp_`
|
|
137
|
+
* staging dirs a crashed swap leaves behind, so the next installer run
|
|
138
|
+
* takes the fresh-install path instead of renaming over the collision.
|
|
139
|
+
* Field-verified workaround (issue #479): `rm -rf <pkg dir>` + rerun
|
|
140
|
+
* succeeds where ten plain retries fail.
|
|
141
|
+
*
|
|
142
|
+
* A junction/symlink at the package dir is UNLINKED only — the link is
|
|
143
|
+
* removed, the target tree (a dev checkout it may point at) is never
|
|
144
|
+
* traversed or deleted. Best effort throughout: this runs inside a
|
|
145
|
+
* failure-recovery branch, so an unusable result simply falls through to
|
|
146
|
+
* the rerun and the manual repair hint.
|
|
147
|
+
*/
|
|
148
|
+
export declare function removeStalePackageInstall(profile: string): StaleInstallRemoval;
|
|
91
149
|
/**
|
|
92
150
|
* Best-effort migrate the GLOBAL launcher to the delegating shim (0.8.7):
|
|
93
151
|
* after a successful profile update, copy this package's `bin/dsh-tui.js`
|
|
@@ -106,6 +164,27 @@ export declare function isTransientUpdateFailure(stderr: string): boolean;
|
|
|
106
164
|
* @returns true when the global launcher files were replaced.
|
|
107
165
|
*/
|
|
108
166
|
export declare function migrateGlobalLauncher(): boolean;
|
|
167
|
+
/** Outcome of the install-only half of an update (no restart). */
|
|
168
|
+
export interface TuiUpdateOutcome {
|
|
169
|
+
/** 0 = the profile now runs the intended version; non-zero = failed. */
|
|
170
|
+
code: number;
|
|
171
|
+
/** Version installed before the update ran (the #307 stamp). */
|
|
172
|
+
updatedFrom: string;
|
|
173
|
+
/** Version installed after the update ran, when readable. */
|
|
174
|
+
installed?: string;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Install-only half of `/update`: run `dsh plugin add`, refuse boot-deadlock
|
|
178
|
+
* targets, verify the profile actually advanced, and migrate the global
|
|
179
|
+
* launcher. No restart — `updateTuiAndRestart` layers the session-preserving
|
|
180
|
+
* restart on top, and the `dsh-tui update` CLI stops here.
|
|
181
|
+
*
|
|
182
|
+
* @param profile - The dsh profile to update.
|
|
183
|
+
* @param targetVersion - Exact version from the preflight registry check, or
|
|
184
|
+
* undefined when that check failed and pnpm should resolve latest.
|
|
185
|
+
* @returns The update exit code plus the before/after versions.
|
|
186
|
+
*/
|
|
187
|
+
export declare function updateTui(profile: string, targetVersion?: string): Promise<TuiUpdateOutcome>;
|
|
109
188
|
/**
|
|
110
189
|
* Update the installed dsh-tui package and restart the same launcher while
|
|
111
190
|
* preserving the active session. The TUI must already be unmounted before
|
|
@@ -125,4 +204,64 @@ export declare function migrateGlobalLauncher(): boolean;
|
|
|
125
204
|
* @returns Exit codes for the update run and the replacement process.
|
|
126
205
|
*/
|
|
127
206
|
export declare function updateTuiAndRestart(sessionId: string, profile: string, targetVersion?: string): Promise<TuiUpdateResult>;
|
|
207
|
+
/**
|
|
208
|
+
* Headless `dsh-tui update`: the `/update` decision flow (preflight, deadlock
|
|
209
|
+
* refusal, mirror-lag note, `--latest` fallback) followed by the install-only
|
|
210
|
+
* half — no TUI, no restart. The bin launcher dynamic-imports this from the
|
|
211
|
+
* profile copy's compiled lib.
|
|
212
|
+
*
|
|
213
|
+
* @param profile - The dsh profile to update.
|
|
214
|
+
* @returns Process exit code: 0 on success or already-latest, 1 otherwise.
|
|
215
|
+
*/
|
|
216
|
+
export declare function cliUpdate(profile: string): Promise<number>;
|
|
217
|
+
/**
|
|
218
|
+
* Restart the running TUI in place and resume the active session — the
|
|
219
|
+
* `/update` restart path minus the pnpm step, for `/restart`. Spawns the
|
|
220
|
+
* same node process with the original argv and the dual-written resume
|
|
221
|
+
* contract, so a fresh process re-boots the same profile and attaches the
|
|
222
|
+
* same session. No installation is touched, so it works on any launch
|
|
223
|
+
* (profile, source checkout, `--config` overlay). `/update` reuses this
|
|
224
|
+
* handoff for its own restart tail (`kind: 'update'`): the keyboard-race
|
|
225
|
+
* hardening below is exactly the failure its users reported (issue #483:
|
|
226
|
+
* update restarts into a TUI that takes no input).
|
|
227
|
+
*
|
|
228
|
+
* The TUI must already be unmounted before this is called (same terminal
|
|
229
|
+
* handoff contract as `updateTuiAndRestart`): the caller runs this from the
|
|
230
|
+
* exit funnel's done callback, after finishExit detached the terminal and
|
|
231
|
+
* the readable stdin pump.
|
|
232
|
+
*
|
|
233
|
+
* This waits for the replacement's natural exit: the outer command
|
|
234
|
+
* interpreter that ran `dsh-tui` reclaims the console the moment the
|
|
235
|
+
* launch chain (cmd → wrapper → this process) unwinds, and an orphaned
|
|
236
|
+
* replacement still attached to the console then fights the interpreter's
|
|
237
|
+
* own prompt and line reader for every keypress (field evidence
|
|
238
|
+
* 2026-08-24: healthy child mounted the UI, the old process exited on a
|
|
239
|
+
* 4s survival timer, the interpreter printed its prompt over the TUI and
|
|
240
|
+
* the DA response bytes landed on the prompt line). Waiting is safe
|
|
241
|
+
* because finishExit already paused and unref'd this process's stdin —
|
|
242
|
+
* the child is the console's only key reader (issues #284/#307).
|
|
243
|
+
*
|
|
244
|
+
* The 4s survival window remains a DIAGNOSIS marker only: a replacement
|
|
245
|
+
* that dies within it never painted the TUI, and its captured stderr is
|
|
246
|
+
* reported synchronously (a raw inherit write can vanish mid-handoff). A
|
|
247
|
+
* late exit is quiet — by then the user owned a working TUI session.
|
|
248
|
+
*
|
|
249
|
+
* @param sessionId - Session to resume in the replacement process.
|
|
250
|
+
* @param options - `kind: 'update'` drops the /restart boot-diagnosis
|
|
251
|
+
* marker and tags restart.log events for the update flow; `env` adds
|
|
252
|
+
* marker variables for the replacement (e.g. DSH_TUI_UPDATED_FROM).
|
|
253
|
+
* @returns 0 when the replacement ran and exited cleanly, 127 when it
|
|
254
|
+
* failed to start, otherwise the child's own exit code.
|
|
255
|
+
*/
|
|
256
|
+
export interface TuiRestartOptions {
|
|
257
|
+
/** Extra env markers for the replacement process (/update's stamp). */
|
|
258
|
+
env?: Record<string, string>;
|
|
259
|
+
/**
|
|
260
|
+
* 'update' reuses this handoff after an install: no
|
|
261
|
+
* DSH_TUI_RESTART_CHILD marker (that flag is /restart-only boot
|
|
262
|
+
* diagnostics) and restart.log events carry the update-restart tag.
|
|
263
|
+
*/
|
|
264
|
+
kind?: 'restart' | 'update';
|
|
265
|
+
}
|
|
266
|
+
export declare function restartTui(sessionId: string, options?: TuiRestartOptions): Promise<number>;
|
|
128
267
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update.ts"],"names":[],"mappings":"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"}
|