@deepseek-harness-tui/dsh-tui 0.6.0 → 0.7.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.
- package/README.md +74 -21
- package/bin/dsh-tui.js +115 -25
- package/cordis.patch.yml +69 -17
- package/cordis.yml +50 -12
- package/lib/types/activityPrefs.d.ts +1 -1
- package/lib/types/activityPrefs.js +3 -3
- package/lib/types/cc/figures.d.ts +27 -20
- package/lib/types/cc/figures.d.ts.map +1 -1
- package/lib/types/cc/figures.js +43 -34
- package/lib/types/cc/format.d.ts +18 -9
- package/lib/types/cc/format.d.ts.map +1 -1
- package/lib/types/cc/format.js +26 -18
- package/lib/types/cc/markdown.d.ts +31 -16
- package/lib/types/cc/markdown.d.ts.map +1 -1
- package/lib/types/cc/markdown.js +283 -260
- package/lib/types/cc/terminal.d.ts +10 -7
- package/lib/types/cc/terminal.d.ts.map +1 -1
- package/lib/types/cc/terminal.js +62 -50
- package/lib/types/command-trees.d.ts +3 -0
- package/lib/types/command-trees.d.ts.map +1 -0
- package/lib/types/command-trees.js +4 -0
- package/lib/types/commands.d.ts +37 -1
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +68 -3
- package/lib/types/components/ActivityLine.d.ts +1 -1
- package/lib/types/components/ActivityLine.d.ts.map +1 -1
- package/lib/types/components/ActivityPicker.d.ts.map +1 -1
- package/lib/types/components/ActivityPicker.js +3 -4
- package/lib/types/components/BtwPanel.d.ts +16 -0
- package/lib/types/components/BtwPanel.d.ts.map +1 -0
- package/lib/types/components/BtwPanel.js +47 -0
- package/lib/types/components/CommandSuggestions.d.ts +4 -2
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +2 -2
- package/lib/types/components/EffortSlider.d.ts +15 -0
- package/lib/types/components/EffortSlider.d.ts.map +1 -0
- package/lib/types/components/EffortSlider.js +17 -0
- package/lib/types/components/GoalTodoPanel.d.ts +1 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.d.ts +5 -2
- package/lib/types/components/HelpMenu.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.js +8 -3
- package/lib/types/components/HistorySearchDialog.d.ts +1 -1
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
- package/lib/types/components/HistorySearchDialog.js +21 -10
- package/lib/types/components/InterruptedByUser.d.ts +2 -2
- package/lib/types/components/InterruptedByUser.d.ts.map +1 -1
- package/lib/types/components/InterruptedByUser.js +4 -3
- package/lib/types/components/LoadedContextPanel.d.ts +1 -1
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +2 -1
- package/lib/types/components/Markdown.d.ts +11 -11
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +63 -57
- package/lib/types/components/MarkdownTable.d.ts +1 -1
- package/lib/types/components/MarkdownTable.js +2 -2
- package/lib/types/components/MessageList.d.ts +10 -2
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +17 -10
- package/lib/types/components/ModelPicker.d.ts +4 -1
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +16 -4
- package/lib/types/components/OverlayAbove.d.ts +20 -0
- package/lib/types/components/OverlayAbove.d.ts.map +1 -0
- package/lib/types/components/OverlayAbove.js +18 -0
- package/lib/types/components/PresetPicker.d.ts +1 -1
- package/lib/types/components/PresetPicker.d.ts.map +1 -1
- package/lib/types/components/PresetPicker.js +2 -3
- package/lib/types/components/PromptInput.d.ts +5 -4
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +186 -39
- package/lib/types/components/ResumePicker.d.ts +15 -4
- package/lib/types/components/ResumePicker.d.ts.map +1 -1
- package/lib/types/components/ResumePicker.js +25 -9
- package/lib/types/components/RewindPicker.d.ts +1 -1
- package/lib/types/components/RewindPicker.d.ts.map +1 -1
- package/lib/types/components/RewindPicker.js +14 -5
- package/lib/types/components/SearchBox.d.ts +1 -1
- package/lib/types/components/SearchBox.js +1 -1
- package/lib/types/components/Spinner/GlimmerMessage.d.ts +1 -2
- package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -1
- package/lib/types/components/Spinner/GlimmerMessage.js +1 -2
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +1 -1
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +2 -2
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts +1 -1
- package/lib/types/components/Spinner/SpinnerGlyph.js +1 -1
- package/lib/types/components/Spinner/spinnerUtils.d.ts +13 -18
- package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -1
- package/lib/types/components/Spinner/spinnerUtils.js +67 -71
- package/lib/types/components/Spinner/useStalledAnimation.d.ts +1 -2
- package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -1
- package/lib/types/components/Spinner/useStalledAnimation.js +1 -2
- package/lib/types/components/StreamingMarkdown.d.ts +1 -1
- package/lib/types/components/StreamingMarkdown.js +1 -1
- package/lib/types/components/ThemePicker.d.ts +13 -9
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +21 -15
- package/lib/types/components/ThinkingToggle.d.ts +1 -1
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -1
- package/lib/types/components/ThinkingToggle.js +8 -8
- package/lib/types/components/ToolUseLoader.d.ts +1 -1
- package/lib/types/components/ToolUseLoader.js +1 -1
- package/lib/types/components/WorkingSpinner.d.ts +2 -2
- package/lib/types/components/WorkingSpinner.js +2 -2
- package/lib/types/components/WorkspaceFlowPicker.d.ts +15 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceFlowPicker.js +19 -0
- package/lib/types/components/WorkspacePicker.d.ts +9 -0
- package/lib/types/components/WorkspacePicker.d.ts.map +1 -0
- package/lib/types/components/WorkspacePicker.js +13 -0
- package/lib/types/components/approvals/ApprovalPanel.d.ts +1 -1
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +2 -1
- package/lib/types/components/design-system/Byline.d.ts +1 -1
- package/lib/types/components/design-system/Byline.js +1 -1
- package/lib/types/components/design-system/Divider.d.ts +1 -1
- package/lib/types/components/design-system/Divider.js +1 -1
- package/lib/types/components/design-system/HintLine.d.ts +12 -0
- package/lib/types/components/design-system/HintLine.d.ts.map +1 -0
- package/lib/types/components/design-system/HintLine.js +15 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +1 -1
- package/lib/types/components/design-system/KeyboardShortcutHint.js +1 -1
- package/lib/types/components/design-system/ListItem.d.ts +2 -2
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +35 -3
- package/lib/types/components/design-system/LoadingState.d.ts +1 -2
- package/lib/types/components/design-system/LoadingState.d.ts.map +1 -1
- package/lib/types/components/design-system/LoadingState.js +1 -2
- package/lib/types/components/design-system/Pane.d.ts +2 -2
- package/lib/types/components/design-system/Pane.js +2 -2
- package/lib/types/components/design-system/ProgressBar.d.ts +1 -2
- package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -1
- package/lib/types/components/design-system/ProgressBar.js +1 -2
- package/lib/types/components/design-system/StatusIcon.d.ts +2 -2
- package/lib/types/components/design-system/StatusIcon.js +2 -2
- package/lib/types/components/design-system/ThemeProvider.d.ts +1 -1
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +87 -26
- package/lib/types/components/design-system/ThemedBox.d.ts +1 -1
- package/lib/types/components/design-system/ThemedBox.js +1 -1
- package/lib/types/components/design-system/ThemedText.d.ts +2 -2
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/listWindow.d.ts +26 -0
- package/lib/types/components/listWindow.d.ts.map +1 -0
- package/lib/types/components/listWindow.js +47 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts +1 -2
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantTextMessage.js +1 -2
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +2 -2
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +6 -6
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +12 -4
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +9 -5
- package/lib/types/components/messages/MessageMetadata.d.ts +1 -1
- package/lib/types/components/messages/MessageMetadata.js +1 -1
- package/lib/types/components/messages/UserPromptMessage.d.ts +1 -1
- package/lib/types/components/messages/UserPromptMessage.js +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +5 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +11 -9
- package/lib/types/components/questions/PlanReviewPanel.d.ts +1 -1
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +3 -2
- package/lib/types/components/trajectory/HotspotView.d.ts +14 -0
- package/lib/types/components/trajectory/HotspotView.d.ts.map +1 -0
- package/lib/types/components/trajectory/HotspotView.js +83 -0
- package/lib/types/components/trajectory/Inspector.d.ts +31 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -0
- package/lib/types/components/trajectory/Inspector.js +67 -0
- package/lib/types/components/trajectory/Ledger.d.ts +20 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -0
- package/lib/types/components/trajectory/Ledger.js +112 -0
- package/lib/types/components/trajectory/MiniWake.d.ts +24 -0
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -0
- package/lib/types/components/trajectory/MiniWake.js +99 -0
- package/lib/types/components/trajectory/WaveBand.d.ts +33 -0
- package/lib/types/components/trajectory/WaveBand.d.ts.map +1 -0
- package/lib/types/components/trajectory/WaveBand.js +145 -0
- package/lib/types/customTheme.d.ts +6 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +15 -12
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -0
- package/lib/types/{channel.d.ts → dsh-adapter/channel.d.ts} +184 -43
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -0
- package/lib/types/{channel.js → dsh-adapter/channel.js} +972 -201
- package/lib/types/dsh-adapter/childStderr.d.ts.map +1 -0
- package/lib/types/{childStderr.js → dsh-adapter/childStderr.js} +1 -1
- package/lib/types/dsh-adapter/command-trees.d.ts +27 -0
- package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-trees.js +42 -0
- package/lib/types/dsh-adapter/compat/index.d.ts +22 -0
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -0
- package/lib/types/{compat → dsh-adapter/compat}/index.js +7 -4
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +86 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/sessionLog.js +347 -0
- package/lib/types/dsh-adapter/contract.d.ts +20 -0
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/contract.js +109 -0
- package/lib/types/dsh-adapter/index.d.ts +80 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/index.js +45 -0
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -0
- package/lib/types/dsh-adapter/packaged-skills.d.ts.map +1 -0
- package/lib/types/{plugin.d.ts → dsh-adapter/plugin.d.ts} +17 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -0
- package/lib/types/{plugin.js → dsh-adapter/plugin.js} +280 -80
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +91 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerWizard.js +332 -0
- package/lib/types/{questions.d.ts → dsh-adapter/questions.d.ts} +7 -2
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -0
- package/lib/types/{questions.js → dsh-adapter/questions.js} +15 -7
- package/lib/types/dsh-adapter/sideQuestion.d.ts +38 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sideQuestion.js +69 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +46 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.js +207 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +177 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/guards.js +235 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +16 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/index.js +15 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +40 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.js +160 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +128 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/projection.js +653 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +232 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/types.js +70 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts +45 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/wave.js +210 -0
- package/lib/types/dsh-adapter/types.d.ts +23 -0
- package/lib/types/dsh-adapter/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/types.js +1 -0
- package/lib/types/dsh-adapter/workspace.d.ts +22 -0
- package/lib/types/dsh-adapter/workspace.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspace.js +16 -0
- package/lib/types/dsh-adapter/workspaces.d.ts +118 -0
- package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspaces.js +290 -0
- package/lib/types/effortPrefs.d.ts +1 -1
- package/lib/types/effortPrefs.js +3 -3
- package/lib/types/history.js +2 -2
- package/lib/types/hooks/useBlink.d.ts +1 -1
- package/lib/types/hooks/useBlink.js +1 -1
- package/lib/types/i18n.d.ts +977 -36
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +307 -30
- package/lib/types/index.d.ts +1 -69
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +3 -31
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +33 -19
- package/lib/types/ink/dom.d.ts +15 -0
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +32 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +8 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts +1 -1
- package/lib/types/ink/hooks/use-terminal-size.js +1 -1
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +109 -28
- package/lib/types/ink/input-suppression.d.ts +20 -0
- package/lib/types/ink/input-suppression.d.ts.map +1 -0
- package/lib/types/ink/input-suppression.js +26 -0
- package/lib/types/ink/log-update.js +21 -6
- package/lib/types/ink/parse-keypress.d.ts +31 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +442 -8
- package/lib/types/ink/terminal-querier.d.ts +5 -1
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +27 -3
- package/lib/types/ink/terminal.d.ts +18 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +32 -4
- package/lib/types/ink/termio/csi.d.ts +10 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -1
- package/lib/types/ink/termio/csi.js +20 -0
- package/lib/types/ink/termio/tokenize.js +10 -0
- package/lib/types/modelPrefs.d.ts +1 -1
- package/lib/types/modelPrefs.js +3 -3
- package/lib/types/presetPrefs.d.ts +1 -1
- package/lib/types/presetPrefs.js +3 -3
- package/lib/types/screens/Chat.d.ts +20 -4
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +655 -55
- package/lib/types/screens/StatusLine.d.ts +17 -2
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +12 -4
- package/lib/types/screens/TrajectoryScene.d.ts +16 -0
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -0
- package/lib/types/screens/TrajectoryScene.js +305 -0
- package/lib/types/sessionHistory.d.ts +9 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +56 -16
- package/lib/types/sessionModes.d.ts +29 -0
- package/lib/types/sessionModes.d.ts.map +1 -0
- package/lib/types/sessionModes.js +45 -0
- package/lib/types/theme.d.ts +27 -3
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +48 -4
- package/lib/types/themePrefs.d.ts +3 -3
- package/lib/types/themePrefs.js +5 -5
- package/lib/types/trajectory/format.d.ts +100 -0
- package/lib/types/trajectory/format.d.ts.map +1 -0
- package/lib/types/trajectory/format.js +213 -0
- package/lib/types/trajectory/motion.d.ts +99 -0
- package/lib/types/trajectory/motion.d.ts.map +1 -0
- package/lib/types/trajectory/motion.js +143 -0
- package/lib/types/trajectory/query.d.ts +83 -0
- package/lib/types/trajectory/query.d.ts.map +1 -0
- package/lib/types/trajectory/query.js +187 -0
- package/lib/types/trajectoryPrefs.d.ts +36 -0
- package/lib/types/trajectoryPrefs.d.ts.map +1 -0
- package/lib/types/trajectoryPrefs.js +65 -0
- package/lib/types/update.d.ts +3 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +18 -7
- package/lib/types/utils/clipboard.d.ts +101 -29
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +533 -55
- package/lib/types/utils/debug.d.ts +1 -1
- package/lib/types/utils/debug.js +2 -2
- package/lib/types/utils/execFileNoThrow.d.ts.map +1 -1
- package/lib/types/utils/execFileNoThrow.js +16 -6
- package/lib/types/utils/externalEditor.d.ts +115 -0
- package/lib/types/utils/externalEditor.d.ts.map +1 -0
- package/lib/types/utils/externalEditor.js +270 -0
- package/lib/types/utils/fullscreen.d.ts +2 -2
- package/lib/types/utils/fullscreen.js +3 -3
- package/lib/types/utils/loaded-context.d.ts +1 -1
- package/lib/types/utils/loaded-context.d.ts.map +1 -1
- package/lib/types/utils/modifiers.d.ts +24 -0
- package/lib/types/utils/modifiers.d.ts.map +1 -1
- package/lib/types/utils/modifiers.js +27 -0
- package/lib/types/utils/paths.d.ts +45 -0
- package/lib/types/utils/paths.d.ts.map +1 -0
- package/lib/types/utils/paths.js +69 -0
- package/lib/types/utils/shellQuote.d.ts +14 -0
- package/lib/types/utils/shellQuote.d.ts.map +1 -0
- package/lib/types/utils/shellQuote.js +39 -0
- package/lib/types/utils/workspaceRoot.d.ts +21 -0
- package/lib/types/utils/workspaceRoot.d.ts.map +1 -0
- package/lib/types/utils/workspaceRoot.js +47 -0
- package/lib/types/workspaces.d.ts +3 -0
- package/lib/types/workspaces.d.ts.map +1 -0
- package/lib/types/workspaces.js +4 -0
- package/package.json +26 -8
- package/lib/types/approvals.d.ts.map +0 -1
- package/lib/types/channel.d.ts.map +0 -1
- package/lib/types/childStderr.d.ts.map +0 -1
- package/lib/types/compat/index.d.ts +0 -20
- package/lib/types/compat/index.d.ts.map +0 -1
- package/lib/types/compat/sessionLog.d.ts +0 -40
- package/lib/types/compat/sessionLog.d.ts.map +0 -1
- package/lib/types/compat/sessionLog.js +0 -226
- package/lib/types/invariant.d.ts.map +0 -1
- package/lib/types/packaged-skills.d.ts.map +0 -1
- package/lib/types/plugin.d.ts.map +0 -1
- package/lib/types/presets.d.ts.map +0 -1
- package/lib/types/questions.d.ts.map +0 -1
- /package/lib/types/{approvals.d.ts → dsh-adapter/approvals.d.ts} +0 -0
- /package/lib/types/{approvals.js → dsh-adapter/approvals.js} +0 -0
- /package/lib/types/{childStderr.d.ts → dsh-adapter/childStderr.d.ts} +0 -0
- /package/lib/types/{invariant.d.ts → dsh-adapter/invariant.d.ts} +0 -0
- /package/lib/types/{invariant.js → dsh-adapter/invariant.js} +0 -0
- /package/lib/types/{packaged-skills.d.ts → dsh-adapter/packaged-skills.d.ts} +0 -0
- /package/lib/types/{packaged-skills.js → dsh-adapter/packaged-skills.js} +0 -0
- /package/lib/types/{presets.d.ts → dsh-adapter/presets.d.ts} +0 -0
- /package/lib/types/{presets.js → dsh-adapter/presets.js} +0 -0
|
@@ -105,13 +105,15 @@ export declare function xtversion(): TerminalQuery<XtversionResponse>;
|
|
|
105
105
|
*/
|
|
106
106
|
export declare class TerminalQuerier {
|
|
107
107
|
private stdout;
|
|
108
|
+
private setRawMode?;
|
|
108
109
|
/**
|
|
109
110
|
* Interleaved queue of queries and sentinels in send order. Terminals
|
|
110
111
|
* respond in order, so each flush() barrier only drains queries queued
|
|
111
112
|
* before it — concurrent batches from independent callers stay isolated.
|
|
112
113
|
*/
|
|
113
114
|
private queue;
|
|
114
|
-
constructor(stdout: NodeJS.WriteStream);
|
|
115
|
+
constructor(stdout: NodeJS.WriteStream, setRawMode?: ((enabled: boolean) => void) | undefined);
|
|
116
|
+
private holdRawMode;
|
|
115
117
|
/**
|
|
116
118
|
* Send a query and wait for its response.
|
|
117
119
|
*
|
|
@@ -136,6 +138,8 @@ export declare class TerminalQuerier {
|
|
|
136
138
|
* Safe to call with no pending queries — still waits for a round-trip.
|
|
137
139
|
*/
|
|
138
140
|
flush(): Promise<void>;
|
|
141
|
+
/** Resolve and release all pending queries when their owning app unmounts. */
|
|
142
|
+
dispose(): void;
|
|
139
143
|
/**
|
|
140
144
|
* Dispatch a response parsed from stdin. Called by App.tsx's
|
|
141
145
|
* processKeysInBatch for every `kind: 'response'` item.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-querier.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal-querier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAI3D;;4CAE4C;AAC5C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACzE,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAA;CACvC,CAAA;AAED,KAAK,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AACnE,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAAA;AACzE,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAA;AAC9E,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAA;AAIzE;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAKlE;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;GAGG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAKjE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAK5D;
|
|
1
|
+
{"version":3,"file":"terminal-querier.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal-querier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAI3D;;4CAE4C;AAC5C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACzE,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAA;CACvC,CAAA;AAED,KAAK,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AACnE,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAAA;AACzE,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAA;AAC9E,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAA;AAIzE;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAKlE;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;GAGG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAKjE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAK5D;AAgBD;;;GAGG;AACH,qBAAa,eAAe;IASxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;IATrB;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAgB;gBAGnB,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,UAAU,CAAC,GAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,aAAA;IAGjD,OAAO,CAAC,WAAW;IAKnB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,gBAAgB,EAC7B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYzB;;;;;;;;OAQG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,8EAA8E;IAC9E,OAAO,IAAI,IAAI;IAQf;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI;CAqBtC"}
|
|
@@ -115,14 +115,20 @@ const SENTINEL = csi('c');
|
|
|
115
115
|
*/
|
|
116
116
|
export class TerminalQuerier {
|
|
117
117
|
stdout;
|
|
118
|
+
setRawMode;
|
|
118
119
|
/**
|
|
119
120
|
* Interleaved queue of queries and sentinels in send order. Terminals
|
|
120
121
|
* respond in order, so each flush() barrier only drains queries queued
|
|
121
122
|
* before it — concurrent batches from independent callers stay isolated.
|
|
122
123
|
*/
|
|
123
124
|
queue = [];
|
|
124
|
-
constructor(stdout) {
|
|
125
|
+
constructor(stdout, setRawMode) {
|
|
125
126
|
this.stdout = stdout;
|
|
127
|
+
this.setRawMode = setRawMode;
|
|
128
|
+
}
|
|
129
|
+
holdRawMode() {
|
|
130
|
+
this.setRawMode?.(true);
|
|
131
|
+
return () => this.setRawMode?.(false);
|
|
126
132
|
}
|
|
127
133
|
/**
|
|
128
134
|
* Send a query and wait for its response.
|
|
@@ -143,6 +149,7 @@ export class TerminalQuerier {
|
|
|
143
149
|
kind: 'query',
|
|
144
150
|
match: query.match,
|
|
145
151
|
resolve: r => resolve(r),
|
|
152
|
+
releaseRawMode: this.holdRawMode(),
|
|
146
153
|
});
|
|
147
154
|
this.stdout.write(query.request);
|
|
148
155
|
});
|
|
@@ -158,10 +165,24 @@ export class TerminalQuerier {
|
|
|
158
165
|
*/
|
|
159
166
|
flush() {
|
|
160
167
|
return new Promise(resolve => {
|
|
161
|
-
this.queue.push({
|
|
168
|
+
this.queue.push({
|
|
169
|
+
kind: 'sentinel',
|
|
170
|
+
resolve,
|
|
171
|
+
releaseRawMode: this.holdRawMode(),
|
|
172
|
+
});
|
|
162
173
|
this.stdout.write(SENTINEL);
|
|
163
174
|
});
|
|
164
175
|
}
|
|
176
|
+
/** Resolve and release all pending queries when their owning app unmounts. */
|
|
177
|
+
dispose() {
|
|
178
|
+
for (const pending of this.queue.splice(0)) {
|
|
179
|
+
if (pending.kind === 'query')
|
|
180
|
+
pending.resolve(undefined);
|
|
181
|
+
else
|
|
182
|
+
pending.resolve();
|
|
183
|
+
pending.releaseRawMode();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
165
186
|
/**
|
|
166
187
|
* Dispatch a response parsed from stdin. Called by App.tsx's
|
|
167
188
|
* processKeysInBatch for every `kind: 'response'` item.
|
|
@@ -185,8 +206,10 @@ export class TerminalQuerier {
|
|
|
185
206
|
const idx = this.queue.findIndex(p => p.kind === 'query' && p.match(r));
|
|
186
207
|
if (idx !== -1) {
|
|
187
208
|
const [q] = this.queue.splice(idx, 1);
|
|
188
|
-
if (q?.kind === 'query')
|
|
209
|
+
if (q?.kind === 'query') {
|
|
189
210
|
q.resolve(r);
|
|
211
|
+
q.releaseRawMode();
|
|
212
|
+
}
|
|
190
213
|
return;
|
|
191
214
|
}
|
|
192
215
|
if (r.type === 'da1') {
|
|
@@ -198,6 +221,7 @@ export class TerminalQuerier {
|
|
|
198
221
|
p.resolve(undefined);
|
|
199
222
|
else
|
|
200
223
|
p.resolve();
|
|
224
|
+
p.releaseRawMode();
|
|
201
225
|
}
|
|
202
226
|
}
|
|
203
227
|
}
|
|
@@ -42,9 +42,27 @@ export declare function isXtermJs(): boolean;
|
|
|
42
42
|
/**
|
|
43
43
|
* True if this terminal correctly handles extended key reporting
|
|
44
44
|
* (Kitty keyboard protocol + xterm modifyOtherKeys).
|
|
45
|
+
* WT_SESSION catches Windows Terminal regardless of TERM_PROGRAM (which WT
|
|
46
|
+
* doesn't set and SSH doesn't forward) — its modifyOtherKeys implementation
|
|
47
|
+
* covers navigation keys. It does NOT cover Enter (microsoft/terminal#530);
|
|
48
|
+
* Shift+Enter on native Windows needs win32-input-mode instead — see
|
|
49
|
+
* supportsWin32InputMode (issue #147).
|
|
45
50
|
* @returns true when the terminal is on the extended-keys allowlist.
|
|
46
51
|
*/
|
|
47
52
|
export declare function supportsExtendedKeys(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* True when win32-input-mode (DECSET 9001, `CSI ? 9001 h`) should drive
|
|
55
|
+
* keyboard input. This is a ConPTY feature — both Windows Terminal and
|
|
56
|
+
* classic conhost switch into it when the app emits the sequence, so a
|
|
57
|
+
* platform check alone covers both. In this mode every key arrives as a
|
|
58
|
+
* full INPUT_RECORD (`CSI Vk;Sc;Uc;Kd;Cs;Rc _`), the only encoding that
|
|
59
|
+
* preserves Enter's Shift/Ctrl bits on Windows (issue #147). It replaces
|
|
60
|
+
* the kitty/modifyOtherKeys push — callers must treat them as mutually
|
|
61
|
+
* exclusive. Non-ConPTY Windows terminals (mintty via winpty) ignore the
|
|
62
|
+
* unknown private mode and fall back to classic VT input unchanged.
|
|
63
|
+
* @returns true on native Windows (never in WSL — platform is linux there).
|
|
64
|
+
*/
|
|
65
|
+
export declare function supportsWin32InputMode(): boolean;
|
|
48
66
|
/**
|
|
49
67
|
* True if the terminal scrolls the viewport when it receives cursor-up
|
|
50
68
|
* sequences that reach above the visible area. On Windows, conhost's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAKtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAKtC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,eAAe,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAuCtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAgDvD;AAcD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAGnC;
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAKtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAKtC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,eAAe,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAuCtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAgDvD;AAcD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,SAAkC,CAAA;AAuBpE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAA;IAChB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,eAAe,UAAQ,GACtB,IAAI,CAqEN"}
|
|
@@ -138,22 +138,50 @@ export function isXtermJs() {
|
|
|
138
138
|
// in xterm.js-based terminals like VS Code). tmux is allowlisted because it
|
|
139
139
|
// accepts modifyOtherKeys and doesn't forward the kitty sequence to the outer
|
|
140
140
|
// terminal.
|
|
141
|
+
// env.terminal is lowercased (utils/env.ts) and falls back to TERM when
|
|
142
|
+
// TERM_PROGRAM is unset — kitty doesn't set TERM_PROGRAM, so its TERM
|
|
143
|
+
// (xterm-kitty) is listed too. Warp sets TERM_PROGRAM=WarpTerminal and
|
|
144
|
+
// implements the kitty keyboard protocol (issue #110).
|
|
141
145
|
const EXTENDED_KEYS_TERMINALS = [
|
|
142
|
-
'
|
|
146
|
+
'iterm.app',
|
|
143
147
|
'kitty',
|
|
144
|
-
'
|
|
148
|
+
'xterm-kitty',
|
|
149
|
+
'wezterm',
|
|
145
150
|
'ghostty',
|
|
146
151
|
'tmux',
|
|
152
|
+
'warpterminal',
|
|
147
153
|
'windows-terminal',
|
|
148
154
|
];
|
|
149
155
|
/**
|
|
150
156
|
* True if this terminal correctly handles extended key reporting
|
|
151
157
|
* (Kitty keyboard protocol + xterm modifyOtherKeys).
|
|
158
|
+
* WT_SESSION catches Windows Terminal regardless of TERM_PROGRAM (which WT
|
|
159
|
+
* doesn't set and SSH doesn't forward) — its modifyOtherKeys implementation
|
|
160
|
+
* covers navigation keys. It does NOT cover Enter (microsoft/terminal#530);
|
|
161
|
+
* Shift+Enter on native Windows needs win32-input-mode instead — see
|
|
162
|
+
* supportsWin32InputMode (issue #147).
|
|
152
163
|
* @returns true when the terminal is on the extended-keys allowlist.
|
|
153
164
|
*/
|
|
154
165
|
export function supportsExtendedKeys() {
|
|
166
|
+
if (process.env.WT_SESSION)
|
|
167
|
+
return true;
|
|
155
168
|
return EXTENDED_KEYS_TERMINALS.includes(env.terminal ?? '');
|
|
156
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* True when win32-input-mode (DECSET 9001, `CSI ? 9001 h`) should drive
|
|
172
|
+
* keyboard input. This is a ConPTY feature — both Windows Terminal and
|
|
173
|
+
* classic conhost switch into it when the app emits the sequence, so a
|
|
174
|
+
* platform check alone covers both. In this mode every key arrives as a
|
|
175
|
+
* full INPUT_RECORD (`CSI Vk;Sc;Uc;Kd;Cs;Rc _`), the only encoding that
|
|
176
|
+
* preserves Enter's Shift/Ctrl bits on Windows (issue #147). It replaces
|
|
177
|
+
* the kitty/modifyOtherKeys push — callers must treat them as mutually
|
|
178
|
+
* exclusive. Non-ConPTY Windows terminals (mintty via winpty) ignore the
|
|
179
|
+
* unknown private mode and fall back to classic VT input unchanged.
|
|
180
|
+
* @returns true on native Windows (never in WSL — platform is linux there).
|
|
181
|
+
*/
|
|
182
|
+
export function supportsWin32InputMode() {
|
|
183
|
+
return process.platform === 'win32';
|
|
184
|
+
}
|
|
157
185
|
/**
|
|
158
186
|
* True if the terminal scrolls the viewport when it receives cursor-up
|
|
159
187
|
* sequences that reach above the visible area. On Windows, conhost's
|
|
@@ -173,7 +201,7 @@ export function hasCursorUpViewportYankBug() {
|
|
|
173
201
|
*/
|
|
174
202
|
export const SYNC_OUTPUT_SUPPORTED = isSynchronizedOutputSupported();
|
|
175
203
|
/**
|
|
176
|
-
* Render forensics: when
|
|
204
|
+
* Render forensics: when DSH_TUI_RENDER_LOG names a file path, every painted
|
|
177
205
|
* frame's raw ANSI bytes append to it (one JSON-escaped line per frame,
|
|
178
206
|
* prefixed with a timestamp header). Real-terminal rendering corruption
|
|
179
207
|
* (missing rows, stale attributes) cannot be reproduced in headless xterm
|
|
@@ -181,7 +209,7 @@ export const SYNC_OUTPUT_SUPPORTED = isSynchronizedOutputSupported();
|
|
|
181
209
|
* the corrupt frame can be diffed against the expected screen. Opt-in and
|
|
182
210
|
* zero-cost when unset: the env read happens once at module load.
|
|
183
211
|
*/
|
|
184
|
-
const RENDER_LOG_PATH = process.env.
|
|
212
|
+
const RENDER_LOG_PATH = process.env.DSH_TUI_RENDER_LOG ?? '';
|
|
185
213
|
function dumpFrame(buffer) {
|
|
186
214
|
if (RENDER_LOG_PATH === '')
|
|
187
215
|
return;
|
|
@@ -250,4 +250,14 @@ export declare const ENABLE_MODIFY_OTHER_KEYS: string;
|
|
|
250
250
|
* Disable xterm modifyOtherKeys (reset to default).
|
|
251
251
|
*/
|
|
252
252
|
export declare const DISABLE_MODIFY_OTHER_KEYS: string;
|
|
253
|
+
/**
|
|
254
|
+
* Enable win32-input-mode.
|
|
255
|
+
* CSI ? 9001 h — every key arrives as CSI Vk;Sc;Uc;Kd;Cs;Rc _
|
|
256
|
+
*/
|
|
257
|
+
export declare const ENABLE_WIN32_INPUT_MODE: string;
|
|
258
|
+
/**
|
|
259
|
+
* Disable win32-input-mode (restore classic VT input).
|
|
260
|
+
* CSI ? 9001 l
|
|
261
|
+
*/
|
|
262
|
+
export declare const DISABLE_WIN32_INPUT_MODE: string;
|
|
253
263
|
//# sourceMappingURL=csi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csi.d.ts","sourceRoot":"","sources":["../../../../src/ink/termio/csi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"csi.d.ts","sourceRoot":"","sources":["../../../../src/ink/termio/csi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,kDAAkD;AAClD,eAAO,MAAM,UAAU,QAA0C,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAMxD;AAED;;GAEG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CN,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,aAAa,oDAAqD,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,iBAAiB,sCAAuC,CAAA;AAErE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAQ1E,CAAA;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAI,GAAG,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAI,GAAG,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAI,GAAG,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAI,GAAG,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,sCAAsC;AACtC,eAAO,MAAM,WAAW,QAAW,CAAA;AAEnC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,2CAA2C;AAC3C,eAAO,MAAM,WAAW,QAAW,CAAA;AAEnC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAevD;AAID,mCAAmC;AACnC,eAAO,MAAM,WAAW,QAAW,CAAA;AAEnC,sCAAsC;AACtC,eAAO,MAAM,cAAc,QAAW,CAAA;AAItC;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wCAAwC;AACxC,eAAO,MAAM,UAAU,QAAc,CAAA;AAErC;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,QAAc,CAAA;AAEvC,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,QAAc,CAAA;AAE3C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5C;AAED;;;0DAG0D;AAC1D,eAAO,MAAM,SAAS,QAAc,CAAA;AAIpC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAI,GAAG,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAI,GAAG,MAAM,CAExC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,QAAW,CAAA;AAM3C,yDAAyD;AACzD,eAAO,MAAM,WAAW,QAAc,CAAA;AAEtC,wDAAwD;AACxD,eAAO,MAAM,SAAS,QAAc,CAAA;AAMpC,mDAAmD;AACnD,eAAO,MAAM,QAAQ,QAAW,CAAA;AAEhC,mDAAmD;AACnD,eAAO,MAAM,SAAS,QAAW,CAAA;AAMjC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAe,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAa,CAAA;AAanD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAgB,CAAA;AAEpD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAgB,CAAA"}
|
|
@@ -345,3 +345,23 @@ export const ENABLE_MODIFY_OTHER_KEYS = csi('>4;2m');
|
|
|
345
345
|
* Disable xterm modifyOtherKeys (reset to default).
|
|
346
346
|
*/
|
|
347
347
|
export const DISABLE_MODIFY_OTHER_KEYS = csi('>4m');
|
|
348
|
+
// win32-input-mode (ConPTY, DECSET 9001)
|
|
349
|
+
// Windows-only keyboard protocol: the terminal reports every key as a full
|
|
350
|
+
// INPUT_RECORD (CSI Vk;Sc;Uc;Kd;Cs;Rc _), which is the ONLY way Enter's
|
|
351
|
+
// modifier bits survive on Windows — Windows Terminal/conhost implement
|
|
352
|
+
// kitty/modifyOtherKeys but never attach modifiers to Enter
|
|
353
|
+
// (microsoft/terminal#530), so Shift+Enter is indistinguishable from Enter
|
|
354
|
+
// over classic VT sequences. Supported by both Windows Terminal and classic
|
|
355
|
+
// conhost (anything fronting ConPTY); terminals that don't know the private
|
|
356
|
+
// mode (mintty/winpty) ignore it.
|
|
357
|
+
// See: doc/specs/#4999 - Improved keyboard handling in Conpty (microsoft/terminal)
|
|
358
|
+
/**
|
|
359
|
+
* Enable win32-input-mode.
|
|
360
|
+
* CSI ? 9001 h — every key arrives as CSI Vk;Sc;Uc;Kd;Cs;Rc _
|
|
361
|
+
*/
|
|
362
|
+
export const ENABLE_WIN32_INPUT_MODE = csi('?9001h');
|
|
363
|
+
/**
|
|
364
|
+
* Disable win32-input-mode (restore classic VT input).
|
|
365
|
+
* CSI ? 9001 l
|
|
366
|
+
*/
|
|
367
|
+
export const DISABLE_WIN32_INPUT_MODE = csi('?9001l');
|
|
@@ -118,6 +118,16 @@ function tokenize(input, initialState, initialBuffer, flush, x10Mouse) {
|
|
|
118
118
|
i++;
|
|
119
119
|
emitSequence(data.slice(seqStart, i));
|
|
120
120
|
}
|
|
121
|
+
else if (code === C0.CR || code === C0.LF) {
|
|
122
|
+
// Meta+Enter: ESC CR / ESC LF is how Option+Enter arrives from
|
|
123
|
+
// terminals without extended key reporting ("Use Option as Meta").
|
|
124
|
+
// CR/LF aren't ESC final bytes, but emitting the pair as a
|
|
125
|
+
// sequence lets the keypress parser recognize it — otherwise it
|
|
126
|
+
// merges with following text ('\x1b\rabc') and the CR submits
|
|
127
|
+
// the prompt instead of inserting a newline (#110).
|
|
128
|
+
i++;
|
|
129
|
+
emitSequence(data.slice(seqStart, i));
|
|
130
|
+
}
|
|
121
131
|
else if (code === C0.ESC) {
|
|
122
132
|
// Double escape - emit first, start new
|
|
123
133
|
emitSequence(data.slice(seqStart, i));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persisted model-route preference (`/model` picker choice), kept at
|
|
3
|
-
* `~/.dsh-
|
|
3
|
+
* `~/.dsh-tui/model.json` (`provider` + `model` keys) so the choice survives
|
|
4
4
|
* restarts — same pattern as agent-preset.json. The file is best-effort: a
|
|
5
5
|
* missing/corrupt file or an incomplete route simply falls back to the
|
|
6
6
|
* harness default. Explicit `provider`/`model` keys in cordis.yml win over
|
package/lib/types/modelPrefs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persisted model-route preference (`/model` picker choice), kept at
|
|
3
|
-
* `~/.dsh-
|
|
3
|
+
* `~/.dsh-tui/model.json` (`provider` + `model` keys) so the choice survives
|
|
4
4
|
* restarts — same pattern as agent-preset.json. The file is best-effort: a
|
|
5
5
|
* missing/corrupt file or an incomplete route simply falls back to the
|
|
6
6
|
* harness default. Explicit `provider`/`model` keys in cordis.yml win over
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* atomic resolution itself lives in modelRoute.ts (issue #67).
|
|
10
10
|
*/
|
|
11
11
|
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
12
|
-
import { homedir } from 'node:os';
|
|
13
12
|
import { join } from 'node:path';
|
|
14
|
-
|
|
13
|
+
import { DATA_DIR } from './utils/paths.js';
|
|
14
|
+
const PREFS_DIR = DATA_DIR;
|
|
15
15
|
/**
|
|
16
16
|
* Parse a persisted `{ provider, model }` value; anything else yields
|
|
17
17
|
* undefined.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persisted agent-preset preference (`/preset` picker choice), kept at
|
|
3
|
-
* `~/.dsh-
|
|
3
|
+
* `~/.dsh-tui/agent-preset.json` (`preset` key) so the choice survives
|
|
4
4
|
* restarts — same pattern as working-activity.json. The file is best-effort:
|
|
5
5
|
* a missing/corrupt file or an id the roster no longer supplies simply falls
|
|
6
6
|
* back to the roster default (`standard`). An explicit `preset` key in
|
package/lib/types/presetPrefs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persisted agent-preset preference (`/preset` picker choice), kept at
|
|
3
|
-
* `~/.dsh-
|
|
3
|
+
* `~/.dsh-tui/agent-preset.json` (`preset` key) so the choice survives
|
|
4
4
|
* restarts — same pattern as working-activity.json. The file is best-effort:
|
|
5
5
|
* a missing/corrupt file or an id the roster no longer supplies simply falls
|
|
6
6
|
* back to the roster default (`standard`). An explicit `preset` key in
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* preference, matching activityFrames).
|
|
9
9
|
*/
|
|
10
10
|
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
11
|
-
import { homedir } from 'node:os';
|
|
12
11
|
import { join } from 'node:path';
|
|
13
|
-
|
|
12
|
+
import { DATA_DIR } from './utils/paths.js';
|
|
13
|
+
const PREFS_DIR = DATA_DIR;
|
|
14
14
|
/** Ids a preset directory may use (dsh-agent-presets' own boundary). */
|
|
15
15
|
const PRESET_ID = /^[a-z0-9][a-z0-9-]*$/;
|
|
16
16
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { Channel } from '../channel.js';
|
|
3
|
-
import type { QuestionStore } from '../questions.js';
|
|
4
|
-
import { ApprovalStore } from '../approvals.js';
|
|
5
|
-
export declare function Chat({ channel, questionStore, approvalStore, onExit, onUpdate, }: {
|
|
2
|
+
import type { Channel } from '../dsh-adapter/channel.js';
|
|
3
|
+
import type { QuestionStore } from '../dsh-adapter/questions.js';
|
|
4
|
+
import { ApprovalStore } from '../dsh-adapter/approvals.js';
|
|
5
|
+
export declare function Chat({ channel, questionStore, approvalStore, onExit, onUpdate, fullscreen, trajectorySeen: trajectorySeenProp, }: {
|
|
6
6
|
channel: Channel;
|
|
7
7
|
questionStore: QuestionStore;
|
|
8
8
|
/**
|
|
@@ -14,5 +14,21 @@ export declare function Chat({ channel, questionStore, approvalStore, onExit, on
|
|
|
14
14
|
onExit: () => void;
|
|
15
15
|
/** Update the installed package and restart the current TUI process. */
|
|
16
16
|
onUpdate?: () => void;
|
|
17
|
+
/**
|
|
18
|
+
* True when the host already wrapped this tree in `<AlternateScreen>`
|
|
19
|
+
* (`fullscreen: true`). The trajectory scene needs this: entering the alt
|
|
20
|
+
* screen a second time is harmless, but the inner unmount's DEC 1049 exit
|
|
21
|
+
* would drop the whole app back to the main screen.
|
|
22
|
+
*/
|
|
23
|
+
fullscreen?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the trajectory has been opened before on this machine.
|
|
26
|
+
*
|
|
27
|
+
* A prop rather than a filesystem read inside the component: a render
|
|
28
|
+
* initializer touching disk is the wrong layer, and hosts that already know
|
|
29
|
+
* (or tests that need determinism) can simply say. Falls back to the
|
|
30
|
+
* persisted flag when the host does not supply one.
|
|
31
|
+
*/
|
|
32
|
+
trajectorySeen?: boolean;
|
|
17
33
|
}): React.JSX.Element;
|
|
18
34
|
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/screens/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/screens/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,OAAO,EAAuC,MAAM,2BAA2B,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AA2H3D,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,aAAa,EACb,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAkB,EAClB,cAAc,EAAE,kBAAkB,GACnC,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,qBA65DA"}
|