@deepseek-harness-tui/dsh-tui 0.5.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/LICENSE +21 -0
- package/README.md +235 -0
- package/bin/dsh-tui.js +95 -0
- package/cordis.patch.yml +218 -0
- package/cordis.yml +185 -0
- package/lib/invariant.js +28 -0
- package/lib/types/activityPrefs.d.ts +29 -0
- package/lib/types/activityPrefs.d.ts.map +1 -0
- package/lib/types/activityPrefs.js +60 -0
- package/lib/types/bootstrap/state.d.ts +13 -0
- package/lib/types/bootstrap/state.d.ts.map +1 -0
- package/lib/types/bootstrap/state.js +12 -0
- package/lib/types/cc/cliHighlight.d.ts +20 -0
- package/lib/types/cc/cliHighlight.d.ts.map +1 -0
- package/lib/types/cc/cliHighlight.js +53 -0
- package/lib/types/cc/figures.d.ts +59 -0
- package/lib/types/cc/figures.d.ts.map +1 -0
- package/lib/types/cc/figures.js +69 -0
- package/lib/types/cc/format.d.ts +26 -0
- package/lib/types/cc/format.d.ts.map +1 -0
- package/lib/types/cc/format.js +55 -0
- package/lib/types/cc/hash.d.ts +25 -0
- package/lib/types/cc/hash.d.ts.map +1 -0
- package/lib/types/cc/hash.js +41 -0
- package/lib/types/cc/hyperlink.d.ts +21 -0
- package/lib/types/cc/hyperlink.d.ts.map +1 -0
- package/lib/types/cc/hyperlink.js +31 -0
- package/lib/types/cc/markdown.d.ts +43 -0
- package/lib/types/cc/markdown.d.ts.map +1 -0
- package/lib/types/cc/markdown.js +345 -0
- package/lib/types/cc/spinnerVerbs.d.ts +3 -0
- package/lib/types/cc/spinnerVerbs.d.ts.map +1 -0
- package/lib/types/cc/spinnerVerbs.js +190 -0
- package/lib/types/cc/terminal.d.ts +15 -0
- package/lib/types/cc/terminal.d.ts.map +1 -0
- package/lib/types/cc/terminal.js +84 -0
- package/lib/types/channel.d.ts +672 -0
- package/lib/types/channel.d.ts.map +1 -0
- package/lib/types/channel.js +2427 -0
- package/lib/types/childStderr.d.ts +63 -0
- package/lib/types/childStderr.d.ts.map +1 -0
- package/lib/types/childStderr.js +161 -0
- package/lib/types/commands.d.ts +55 -0
- package/lib/types/commands.d.ts.map +1 -0
- package/lib/types/commands.js +101 -0
- package/lib/types/components/ActivityLine.d.ts +29 -0
- package/lib/types/components/ActivityLine.d.ts.map +1 -0
- package/lib/types/components/ActivityLine.js +47 -0
- package/lib/types/components/ActivityPicker.d.ts +13 -0
- package/lib/types/components/ActivityPicker.d.ts.map +1 -0
- package/lib/types/components/ActivityPicker.js +24 -0
- package/lib/types/components/CommandSuggestions.d.ts +14 -0
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -0
- package/lib/types/components/CommandSuggestions.js +33 -0
- package/lib/types/components/FileSuggestions.d.ts +12 -0
- package/lib/types/components/FileSuggestions.d.ts.map +1 -0
- package/lib/types/components/FileSuggestions.js +26 -0
- package/lib/types/components/GoalTodoPanel.d.ts +13 -0
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -0
- package/lib/types/components/GoalTodoPanel.js +57 -0
- package/lib/types/components/HelpMenu.d.ts +12 -0
- package/lib/types/components/HelpMenu.d.ts.map +1 -0
- package/lib/types/components/HelpMenu.js +12 -0
- package/lib/types/components/HistorySearchDialog.d.ts +16 -0
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -0
- package/lib/types/components/HistorySearchDialog.js +31 -0
- package/lib/types/components/InterruptedByUser.d.ts +7 -0
- package/lib/types/components/InterruptedByUser.d.ts.map +1 -0
- package/lib/types/components/InterruptedByUser.js +9 -0
- package/lib/types/components/LoadedContextPanel.d.ts +20 -0
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -0
- package/lib/types/components/LoadedContextPanel.js +30 -0
- package/lib/types/components/LogoV2.d.ts +23 -0
- package/lib/types/components/LogoV2.d.ts.map +1 -0
- package/lib/types/components/LogoV2.js +95 -0
- package/lib/types/components/Markdown.d.ts +24 -0
- package/lib/types/components/Markdown.d.ts.map +1 -0
- package/lib/types/components/Markdown.js +106 -0
- package/lib/types/components/MarkdownTable.d.ts +17 -0
- package/lib/types/components/MarkdownTable.d.ts.map +1 -0
- package/lib/types/components/MarkdownTable.js +272 -0
- package/lib/types/components/MessageList.d.ts +41 -0
- package/lib/types/components/MessageList.d.ts.map +1 -0
- package/lib/types/components/MessageList.js +303 -0
- package/lib/types/components/ModelPicker.d.ts +14 -0
- package/lib/types/components/ModelPicker.d.ts.map +1 -0
- package/lib/types/components/ModelPicker.js +15 -0
- package/lib/types/components/PresetPicker.d.ts +17 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -0
- package/lib/types/components/PresetPicker.js +25 -0
- package/lib/types/components/PromptInput.d.ts +67 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -0
- package/lib/types/components/PromptInput.js +778 -0
- package/lib/types/components/ResumePicker.d.ts +15 -0
- package/lib/types/components/ResumePicker.d.ts.map +1 -0
- package/lib/types/components/ResumePicker.js +34 -0
- package/lib/types/components/RewindPicker.d.ts +14 -0
- package/lib/types/components/RewindPicker.d.ts.map +1 -0
- package/lib/types/components/RewindPicker.js +23 -0
- package/lib/types/components/SearchBox.d.ts +20 -0
- package/lib/types/components/SearchBox.d.ts.map +1 -0
- package/lib/types/components/SearchBox.js +33 -0
- package/lib/types/components/Select.d.ts +22 -0
- package/lib/types/components/Select.d.ts.map +1 -0
- package/lib/types/components/Select.js +19 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts +19 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -0
- package/lib/types/components/Spinner/GlimmerMessage.js +78 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +31 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +162 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts +16 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerGlyph.js +36 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts +6 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerMode.js +1 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts +41 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerUtils.js +104 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts +16 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -0
- package/lib/types/components/Spinner/useStalledAnimation.js +71 -0
- package/lib/types/components/StreamingMarkdown.d.ts +12 -0
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -0
- package/lib/types/components/StreamingMarkdown.js +39 -0
- package/lib/types/components/ThemePicker.d.ts +22 -0
- package/lib/types/components/ThemePicker.d.ts.map +1 -0
- package/lib/types/components/ThemePicker.js +51 -0
- package/lib/types/components/ThinkingToggle.d.ts +17 -0
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -0
- package/lib/types/components/ThinkingToggle.js +30 -0
- package/lib/types/components/ToolUseLoader.d.ts +13 -0
- package/lib/types/components/ToolUseLoader.d.ts.map +1 -0
- package/lib/types/components/ToolUseLoader.js +17 -0
- package/lib/types/components/Whale.d.ts +22 -0
- package/lib/types/components/Whale.d.ts.map +1 -0
- package/lib/types/components/Whale.js +78 -0
- package/lib/types/components/WorkingSpinner.d.ts +26 -0
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -0
- package/lib/types/components/WorkingSpinner.js +68 -0
- package/lib/types/components/activityFrames.d.ts +31 -0
- package/lib/types/components/activityFrames.d.ts.map +1 -0
- package/lib/types/components/activityFrames.js +83 -0
- package/lib/types/components/bigfont.d.ts +28 -0
- package/lib/types/components/bigfont.d.ts.map +1 -0
- package/lib/types/components/bigfont.js +91 -0
- package/lib/types/components/design-system/Byline.d.ts +14 -0
- package/lib/types/components/design-system/Byline.d.ts.map +1 -0
- package/lib/types/components/design-system/Byline.js +17 -0
- package/lib/types/components/design-system/Divider.d.ts +40 -0
- package/lib/types/components/design-system/Divider.d.ts.map +1 -0
- package/lib/types/components/design-system/Divider.js +24 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +19 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts.map +1 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.js +14 -0
- package/lib/types/components/design-system/ListItem.d.ts +36 -0
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -0
- package/lib/types/components/design-system/ListItem.js +48 -0
- package/lib/types/components/design-system/LoadingState.d.ts +19 -0
- package/lib/types/components/design-system/LoadingState.d.ts.map +1 -0
- package/lib/types/components/design-system/LoadingState.js +22 -0
- package/lib/types/components/design-system/Pane.d.ts +17 -0
- package/lib/types/components/design-system/Pane.d.ts.map +1 -0
- package/lib/types/components/design-system/Pane.js +15 -0
- package/lib/types/components/design-system/ProgressBar.d.ts +22 -0
- package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -0
- package/lib/types/components/design-system/ProgressBar.js +27 -0
- package/lib/types/components/design-system/StatusIcon.d.ts +15 -0
- package/lib/types/components/design-system/StatusIcon.d.ts.map +1 -0
- package/lib/types/components/design-system/StatusIcon.js +20 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts +11 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemeProvider.js +135 -0
- package/lib/types/components/design-system/ThemedBox.d.ts +37 -0
- package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedBox.js +26 -0
- package/lib/types/components/design-system/ThemedText.d.ts +56 -0
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedText.js +45 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts +18 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantTextMessage.js +15 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +23 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantThinkingMessage.js +23 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +23 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantToolUseMessage.js +220 -0
- package/lib/types/components/messages/MessageMetadata.d.ts +15 -0
- package/lib/types/components/messages/MessageMetadata.d.ts.map +1 -0
- package/lib/types/components/messages/MessageMetadata.js +20 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts +19 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -0
- package/lib/types/components/messages/UserPromptMessage.js +15 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +39 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -0
- package/lib/types/components/questions/AskUserQuestionPanel.js +228 -0
- package/lib/types/components/shimmer.d.ts +35 -0
- package/lib/types/components/shimmer.d.ts.map +1 -0
- package/lib/types/components/shimmer.js +43 -0
- package/lib/types/components/whaleFrames.d.ts +25 -0
- package/lib/types/components/whaleFrames.d.ts.map +1 -0
- package/lib/types/components/whaleFrames.js +419 -0
- package/lib/types/customTheme.d.ts +104 -0
- package/lib/types/customTheme.d.ts.map +1 -0
- package/lib/types/customTheme.js +268 -0
- package/lib/types/effortPrefs.d.ts +22 -0
- package/lib/types/effortPrefs.d.ts.map +1 -0
- package/lib/types/effortPrefs.js +45 -0
- package/lib/types/history.d.ts +24 -0
- package/lib/types/history.d.ts.map +1 -0
- package/lib/types/history.js +75 -0
- package/lib/types/hooks/useBlink.d.ts +11 -0
- package/lib/types/hooks/useBlink.d.ts.map +1 -0
- package/lib/types/hooks/useBlink.js +20 -0
- package/lib/types/i18n.d.ts +926 -0
- package/lib/types/i18n.d.ts.map +1 -0
- package/lib/types/i18n.js +356 -0
- package/lib/types/index.d.ts +70 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +31 -0
- package/lib/types/ink/Ansi.d.ts +11 -0
- package/lib/types/ink/Ansi.d.ts.map +1 -0
- package/lib/types/ink/Ansi.js +269 -0
- package/lib/types/ink/bidi.d.ts +18 -0
- package/lib/types/ink/bidi.d.ts.map +1 -0
- package/lib/types/ink/bidi.js +119 -0
- package/lib/types/ink/clearTerminal.d.ts +22 -0
- package/lib/types/ink/clearTerminal.d.ts.map +1 -0
- package/lib/types/ink/clearTerminal.js +72 -0
- package/lib/types/ink/colorize.d.ts +33 -0
- package/lib/types/ink/colorize.d.ts.map +1 -0
- package/lib/types/ink/colorize.js +213 -0
- package/lib/types/ink/components/AlternateScreen.d.ts +22 -0
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -0
- package/lib/types/ink/components/AlternateScreen.js +74 -0
- package/lib/types/ink/components/App.d.ts +73 -0
- package/lib/types/ink/components/App.d.ts.map +1 -0
- package/lib/types/ink/components/App.js +597 -0
- package/lib/types/ink/components/AppContext.d.ts +15 -0
- package/lib/types/ink/components/AppContext.d.ts.map +1 -0
- package/lib/types/ink/components/AppContext.js +11 -0
- package/lib/types/ink/components/Box.d.ts +49 -0
- package/lib/types/ink/components/Box.d.ts.map +1 -0
- package/lib/types/ink/components/Box.js +153 -0
- package/lib/types/ink/components/Button.d.ts +37 -0
- package/lib/types/ink/components/Button.d.ts.map +1 -0
- package/lib/types/ink/components/Button.js +166 -0
- package/lib/types/ink/components/ClockContext.d.ts +10 -0
- package/lib/types/ink/components/ClockContext.d.ts.map +1 -0
- package/lib/types/ink/components/ClockContext.js +108 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +30 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -0
- package/lib/types/ink/components/CursorDeclarationContext.js +6 -0
- package/lib/types/ink/components/ErrorOverview.d.ts +7 -0
- package/lib/types/ink/components/ErrorOverview.d.ts.map +1 -0
- package/lib/types/ink/components/ErrorOverview.js +49 -0
- package/lib/types/ink/components/Link.d.ts +8 -0
- package/lib/types/ink/components/Link.d.ts.map +1 -0
- package/lib/types/ink/components/Link.js +33 -0
- package/lib/types/ink/components/Newline.d.ts +13 -0
- package/lib/types/ink/components/Newline.d.ts.map +1 -0
- package/lib/types/ink/components/Newline.js +29 -0
- package/lib/types/ink/components/NoSelect.d.ts +20 -0
- package/lib/types/ink/components/NoSelect.d.ts.map +1 -0
- package/lib/types/ink/components/NoSelect.js +56 -0
- package/lib/types/ink/components/RawAnsi.d.ts +17 -0
- package/lib/types/ink/components/RawAnsi.d.ts.map +1 -0
- package/lib/types/ink/components/RawAnsi.js +45 -0
- package/lib/types/ink/components/ScrollBox.d.ts +78 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -0
- package/lib/types/ink/components/ScrollBox.js +174 -0
- package/lib/types/ink/components/Spacer.d.ts +6 -0
- package/lib/types/ink/components/Spacer.d.ts.map +1 -0
- package/lib/types/ink/components/Spacer.js +19 -0
- package/lib/types/ink/components/StdinContext.d.ts +32 -0
- package/lib/types/ink/components/StdinContext.d.ts.map +1 -0
- package/lib/types/ink/components/StdinContext.js +16 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts +11 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalFocusContext.js +45 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts +6 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalSizeContext.js +3 -0
- package/lib/types/ink/components/Text.d.ts +56 -0
- package/lib/types/ink/components/Text.d.ts.map +1 -0
- package/lib/types/ink/components/Text.js +194 -0
- package/lib/types/ink/constants.d.ts +3 -0
- package/lib/types/ink/constants.d.ts.map +1 -0
- package/lib/types/ink/constants.js +2 -0
- package/lib/types/ink/cursor.d.ts +11 -0
- package/lib/types/ink/cursor.d.ts.map +1 -0
- package/lib/types/ink/cursor.js +1 -0
- package/lib/types/ink/devtools.d.ts +7 -0
- package/lib/types/ink/devtools.d.ts.map +1 -0
- package/lib/types/ink/devtools.js +1 -0
- package/lib/types/ink/dom.d.ts +178 -0
- package/lib/types/ink/dom.d.ts.map +1 -0
- package/lib/types/ink/dom.js +424 -0
- package/lib/types/ink/events/click-event.d.ts +32 -0
- package/lib/types/ink/events/click-event.d.ts.map +1 -0
- package/lib/types/ink/events/click-event.js +36 -0
- package/lib/types/ink/events/dispatcher.d.ts +63 -0
- package/lib/types/ink/events/dispatcher.d.ts.map +1 -0
- package/lib/types/ink/events/dispatcher.js +194 -0
- package/lib/types/ink/events/emitter.d.ts +20 -0
- package/lib/types/ink/events/emitter.d.ts.map +1 -0
- package/lib/types/ink/events/emitter.js +43 -0
- package/lib/types/ink/events/event-handlers.d.ts +47 -0
- package/lib/types/ink/events/event-handlers.d.ts.map +1 -0
- package/lib/types/ink/events/event-handlers.js +30 -0
- package/lib/types/ink/events/event.d.ts +19 -0
- package/lib/types/ink/events/event.d.ts.map +1 -0
- package/lib/types/ink/events/event.js +22 -0
- package/lib/types/ink/events/focus-event.d.ts +19 -0
- package/lib/types/ink/events/focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/focus-event.js +21 -0
- package/lib/types/ink/events/input-event.d.ts +53 -0
- package/lib/types/ink/events/input-event.d.ts.map +1 -0
- package/lib/types/ink/events/input-event.js +180 -0
- package/lib/types/ink/events/keyboard-event.d.ts +40 -0
- package/lib/types/ink/events/keyboard-event.d.ts.map +1 -0
- package/lib/types/ink/events/keyboard-event.js +65 -0
- package/lib/types/ink/events/paste-event.d.ts +11 -0
- package/lib/types/ink/events/paste-event.d.ts.map +1 -0
- package/lib/types/ink/events/paste-event.js +13 -0
- package/lib/types/ink/events/resize-event.d.ts +13 -0
- package/lib/types/ink/events/resize-event.d.ts.map +1 -0
- package/lib/types/ink/events/resize-event.js +16 -0
- package/lib/types/ink/events/terminal-event.d.ts +112 -0
- package/lib/types/ink/events/terminal-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-event.js +131 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts +21 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-focus-event.js +18 -0
- package/lib/types/ink/focus.d.ts +74 -0
- package/lib/types/ink/focus.d.ts.map +1 -0
- package/lib/types/ink/focus.js +188 -0
- package/lib/types/ink/frame.d.ts +119 -0
- package/lib/types/ink/frame.d.ts.map +1 -0
- package/lib/types/ink/frame.js +43 -0
- package/lib/types/ink/get-max-width.d.ts +20 -0
- package/lib/types/ink/get-max-width.d.ts.map +1 -0
- package/lib/types/ink/get-max-width.js +25 -0
- package/lib/types/ink/hit-test.d.ts +47 -0
- package/lib/types/ink/hit-test.d.ts.map +1 -0
- package/lib/types/ink/hit-test.js +126 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts +27 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-animation-frame.js +48 -0
- package/lib/types/ink/hooks/use-app.d.ts +8 -0
- package/lib/types/ink/hooks/use-app.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-app.js +8 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +22 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-copy-on-select.js +40 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +31 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-declared-cursor.js +65 -0
- package/lib/types/ink/hooks/use-input.d.ts +41 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-input.js +73 -0
- package/lib/types/ink/hooks/use-interval.d.ts +23 -0
- package/lib/types/ink/hooks/use-interval.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-interval.js +58 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts +34 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-search-highlight.js +35 -0
- package/lib/types/ink/hooks/use-selection.d.ts +44 -0
- package/lib/types/ink/hooks/use-selection.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-selection.js +64 -0
- package/lib/types/ink/hooks/use-stdin.d.ts +8 -0
- package/lib/types/ink/hooks/use-stdin.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-stdin.js +8 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts +18 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-tab-status.js +58 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts +11 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-focus.js +15 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts +6 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-size.js +12 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts +14 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-title.js +30 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts +32 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-viewport.js +79 -0
- package/lib/types/ink/ink.d.ts +370 -0
- package/lib/types/ink/ink.d.ts.map +1 -0
- package/lib/types/ink/ink.js +1665 -0
- package/lib/types/ink/instances.d.ts +10 -0
- package/lib/types/ink/instances.d.ts.map +1 -0
- package/lib/types/ink/instances.js +13 -0
- package/lib/types/ink/layout/engine.d.ts +7 -0
- package/lib/types/ink/layout/engine.d.ts.map +1 -0
- package/lib/types/ink/layout/engine.js +8 -0
- package/lib/types/ink/layout/geometry.d.ts +86 -0
- package/lib/types/ink/layout/geometry.d.ts.map +1 -0
- package/lib/types/ink/layout/geometry.js +95 -0
- package/lib/types/ink/layout/node.d.ts +151 -0
- package/lib/types/ink/layout/node.d.ts.map +1 -0
- package/lib/types/ink/layout/node.js +72 -0
- package/lib/types/ink/layout/yoga.d.ts +69 -0
- package/lib/types/ink/layout/yoga.d.ts.map +1 -0
- package/lib/types/ink/layout/yoga.js +249 -0
- package/lib/types/ink/line-width-cache.d.ts +9 -0
- package/lib/types/ink/line-width-cache.d.ts.map +1 -0
- package/lib/types/ink/line-width-cache.js +45 -0
- package/lib/types/ink/log-update.d.ts +57 -0
- package/lib/types/ink/log-update.d.ts.map +1 -0
- package/lib/types/ink/log-update.js +710 -0
- package/lib/types/ink/measure-element.d.ts +19 -0
- package/lib/types/ink/measure-element.d.ts.map +1 -0
- package/lib/types/ink/measure-element.js +10 -0
- package/lib/types/ink/measure-text.d.ts +13 -0
- package/lib/types/ink/measure-text.d.ts.map +1 -0
- package/lib/types/ink/measure-text.js +38 -0
- package/lib/types/ink/node-cache.d.ts +33 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -0
- package/lib/types/ink/node-cache.js +42 -0
- package/lib/types/ink/optimizer.d.ts +18 -0
- package/lib/types/ink/optimizer.d.ts.map +1 -0
- package/lib/types/ink/optimizer.js +83 -0
- package/lib/types/ink/output.d.ts +200 -0
- package/lib/types/ink/output.d.ts.map +1 -0
- package/lib/types/ink/output.js +663 -0
- package/lib/types/ink/parse-keypress.d.ts +132 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -0
- package/lib/types/ink/parse-keypress.js +707 -0
- package/lib/types/ink/reconciler.d.ts +43 -0
- package/lib/types/ink/reconciler.d.ts.map +1 -0
- package/lib/types/ink/reconciler.js +413 -0
- package/lib/types/ink/render-border.d.ts +36 -0
- package/lib/types/ink/render-border.d.ts.map +1 -0
- package/lib/types/ink/render-border.js +143 -0
- package/lib/types/ink/render-node-to-output.d.ts +93 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -0
- package/lib/types/ink/render-node-to-output.js +1290 -0
- package/lib/types/ink/render-to-screen.d.ts +65 -0
- package/lib/types/ink/render-to-screen.d.ts.map +1 -0
- package/lib/types/ink/render-to-screen.js +189 -0
- package/lib/types/ink/renderer.d.ts +24 -0
- package/lib/types/ink/renderer.d.ts.map +1 -0
- package/lib/types/ink/renderer.js +136 -0
- package/lib/types/ink/root.d.ts +91 -0
- package/lib/types/ink/root.d.ts.map +1 -0
- package/lib/types/ink/root.js +93 -0
- package/lib/types/ink/screen.d.ts +443 -0
- package/lib/types/ink/screen.d.ts.map +1 -0
- package/lib/types/ink/screen.js +1295 -0
- package/lib/types/ink/searchHighlight.d.ts +25 -0
- package/lib/types/ink/searchHighlight.d.ts.map +1 -0
- package/lib/types/ink/searchHighlight.js +82 -0
- package/lib/types/ink/selection.d.ts +323 -0
- package/lib/types/ink/selection.d.ts.map +1 -0
- package/lib/types/ink/selection.js +881 -0
- package/lib/types/ink/squash-text-nodes.d.ts +30 -0
- package/lib/types/ink/squash-text-nodes.d.ts.map +1 -0
- package/lib/types/ink/squash-text-nodes.js +63 -0
- package/lib/types/ink/stringWidth.d.ts +11 -0
- package/lib/types/ink/stringWidth.d.ts.map +1 -0
- package/lib/types/ink/stringWidth.js +209 -0
- package/lib/types/ink/styles.d.ts +324 -0
- package/lib/types/ink/styles.d.ts.map +1 -0
- package/lib/types/ink/styles.js +307 -0
- package/lib/types/ink/supports-hyperlinks.d.ts +20 -0
- package/lib/types/ink/supports-hyperlinks.d.ts.map +1 -0
- package/lib/types/ink/supports-hyperlinks.js +44 -0
- package/lib/types/ink/tabstops.d.ts +9 -0
- package/lib/types/ink/tabstops.d.ts.map +1 -0
- package/lib/types/ink/tabstops.js +46 -0
- package/lib/types/ink/terminal-focus-state.d.ts +35 -0
- package/lib/types/ink/terminal-focus-state.d.ts.map +1 -0
- package/lib/types/ink/terminal-focus-state.js +57 -0
- package/lib/types/ink/terminal-querier.d.ts +161 -0
- package/lib/types/ink/terminal-querier.d.ts.map +1 -0
- package/lib/types/ink/terminal-querier.js +204 -0
- package/lib/types/ink/terminal.d.ts +80 -0
- package/lib/types/ink/terminal.d.ts.map +1 -0
- package/lib/types/ink/terminal.js +268 -0
- package/lib/types/ink/termio/ansi.d.ts +75 -0
- package/lib/types/ink/termio/ansi.d.ts.map +1 -0
- package/lib/types/ink/termio/ansi.js +79 -0
- package/lib/types/ink/termio/csi.d.ts +253 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -0
- package/lib/types/ink/termio/csi.js +347 -0
- package/lib/types/ink/termio/dec.d.ts +61 -0
- package/lib/types/ink/termio/dec.d.ts.map +1 -0
- package/lib/types/ink/termio/dec.js +76 -0
- package/lib/types/ink/termio/esc.d.ts +15 -0
- package/lib/types/ink/termio/esc.d.ts.map +1 -0
- package/lib/types/ink/termio/esc.js +57 -0
- package/lib/types/ink/termio/osc.d.ts +208 -0
- package/lib/types/ink/termio/osc.d.ts.map +1 -0
- package/lib/types/ink/termio/osc.js +466 -0
- package/lib/types/ink/termio/parser.d.ts +46 -0
- package/lib/types/ink/termio/parser.d.ts.map +1 -0
- package/lib/types/ink/termio/parser.js +366 -0
- package/lib/types/ink/termio/sgr.d.ts +17 -0
- package/lib/types/ink/termio/sgr.d.ts.map +1 -0
- package/lib/types/ink/termio/sgr.js +300 -0
- package/lib/types/ink/termio/tokenize.d.ts +50 -0
- package/lib/types/ink/termio/tokenize.d.ts.map +1 -0
- package/lib/types/ink/termio/tokenize.js +266 -0
- package/lib/types/ink/termio/types.d.ts +211 -0
- package/lib/types/ink/termio/types.d.ts.map +1 -0
- package/lib/types/ink/termio/types.js +68 -0
- package/lib/types/ink/termio.d.ts +25 -0
- package/lib/types/ink/termio.d.ts.map +1 -0
- package/lib/types/ink/termio.js +24 -0
- package/lib/types/ink/truncateToWidth.d.ts +7 -0
- package/lib/types/ink/truncateToWidth.d.ts.map +1 -0
- package/lib/types/ink/truncateToWidth.js +18 -0
- package/lib/types/ink/useTerminalNotification.d.ts +45 -0
- package/lib/types/ink/useTerminalNotification.d.ts.map +1 -0
- package/lib/types/ink/useTerminalNotification.js +70 -0
- package/lib/types/ink/warn.d.ts +7 -0
- package/lib/types/ink/warn.d.ts.map +1 -0
- package/lib/types/ink/warn.js +15 -0
- package/lib/types/ink/widest-line.d.ts +7 -0
- package/lib/types/ink/widest-line.d.ts.map +1 -0
- package/lib/types/ink/widest-line.js +19 -0
- package/lib/types/ink/wrap-text.d.ts +10 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -0
- package/lib/types/ink/wrap-text.js +61 -0
- package/lib/types/ink/wrapAnsi.d.ts +18 -0
- package/lib/types/ink/wrapAnsi.d.ts.map +1 -0
- package/lib/types/ink/wrapAnsi.js +16 -0
- package/lib/types/invariant.d.ts +20 -0
- package/lib/types/invariant.d.ts.map +1 -0
- package/lib/types/invariant.js +26 -0
- package/lib/types/modelPrefs.d.ts +37 -0
- package/lib/types/modelPrefs.d.ts.map +1 -0
- package/lib/types/modelPrefs.js +66 -0
- package/lib/types/modelRoute.d.ts +79 -0
- package/lib/types/modelRoute.d.ts.map +1 -0
- package/lib/types/modelRoute.js +96 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts +183 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/enums.js +150 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +788 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/index.js +2571 -0
- package/lib/types/packaged-skills.d.ts +10 -0
- package/lib/types/packaged-skills.d.ts.map +1 -0
- package/lib/types/packaged-skills.js +63 -0
- package/lib/types/plugin.d.ts +33 -0
- package/lib/types/plugin.d.ts.map +1 -0
- package/lib/types/plugin.js +454 -0
- package/lib/types/presetPrefs.d.ts +29 -0
- package/lib/types/presetPrefs.d.ts.map +1 -0
- package/lib/types/presetPrefs.js +61 -0
- package/lib/types/presets.d.ts +110 -0
- package/lib/types/presets.d.ts.map +1 -0
- package/lib/types/presets.js +114 -0
- package/lib/types/questions.d.ts +97 -0
- package/lib/types/questions.d.ts.map +1 -0
- package/lib/types/questions.js +201 -0
- package/lib/types/screens/Chat.d.ts +23 -0
- package/lib/types/screens/Chat.d.ts.map +1 -0
- package/lib/types/screens/Chat.js +1263 -0
- package/lib/types/screens/StatusLine.d.ts +16 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -0
- package/lib/types/screens/StatusLine.js +105 -0
- package/lib/types/screens/StatusMetrics.d.ts +87 -0
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -0
- package/lib/types/screens/StatusMetrics.js +252 -0
- package/lib/types/sessionHistory.d.ts +32 -0
- package/lib/types/sessionHistory.d.ts.map +1 -0
- package/lib/types/sessionHistory.js +87 -0
- package/lib/types/theme.d.ts +115 -0
- package/lib/types/theme.d.ts.map +1 -0
- package/lib/types/theme.js +300 -0
- package/lib/types/themePrefs.d.ts +28 -0
- package/lib/types/themePrefs.d.ts.map +1 -0
- package/lib/types/themePrefs.js +59 -0
- package/lib/types/ui.d.ts +28 -0
- package/lib/types/ui.d.ts.map +1 -0
- package/lib/types/ui.js +25 -0
- package/lib/types/update.d.ts +76 -0
- package/lib/types/update.d.ts.map +1 -0
- package/lib/types/update.js +203 -0
- package/lib/types/utils/clipboard.d.ts +43 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -0
- package/lib/types/utils/clipboard.js +82 -0
- package/lib/types/utils/debug.d.ts +8 -0
- package/lib/types/utils/debug.d.ts.map +1 -0
- package/lib/types/utils/debug.js +12 -0
- package/lib/types/utils/earlyInput.d.ts +7 -0
- package/lib/types/utils/earlyInput.d.ts.map +1 -0
- package/lib/types/utils/earlyInput.js +6 -0
- package/lib/types/utils/env.d.ts +10 -0
- package/lib/types/utils/env.d.ts.map +1 -0
- package/lib/types/utils/env.js +9 -0
- package/lib/types/utils/envUtils.d.ts +8 -0
- package/lib/types/utils/envUtils.d.ts.map +1 -0
- package/lib/types/utils/envUtils.js +13 -0
- package/lib/types/utils/execFileNoThrow.d.ts +34 -0
- package/lib/types/utils/execFileNoThrow.d.ts.map +1 -0
- package/lib/types/utils/execFileNoThrow.js +31 -0
- package/lib/types/utils/fullscreen.d.ts +8 -0
- package/lib/types/utils/fullscreen.d.ts.map +1 -0
- package/lib/types/utils/fullscreen.js +10 -0
- package/lib/types/utils/intl.d.ts +7 -0
- package/lib/types/utils/intl.d.ts.map +1 -0
- package/lib/types/utils/intl.js +9 -0
- package/lib/types/utils/loaded-context.d.ts +20 -0
- package/lib/types/utils/loaded-context.d.ts.map +1 -0
- package/lib/types/utils/loaded-context.js +36 -0
- package/lib/types/utils/log.d.ts +7 -0
- package/lib/types/utils/log.d.ts.map +1 -0
- package/lib/types/utils/log.js +9 -0
- package/lib/types/utils/mentions.d.ts +30 -0
- package/lib/types/utils/mentions.d.ts.map +1 -0
- package/lib/types/utils/mentions.js +72 -0
- package/lib/types/utils/narration.d.ts +11 -0
- package/lib/types/utils/narration.d.ts.map +1 -0
- package/lib/types/utils/narration.js +16 -0
- package/lib/types/utils/semver.d.ts +9 -0
- package/lib/types/utils/semver.d.ts.map +1 -0
- package/lib/types/utils/semver.js +24 -0
- package/lib/types/utils/sliceAnsi.d.ts +12 -0
- package/lib/types/utils/sliceAnsi.d.ts.map +1 -0
- package/lib/types/utils/sliceAnsi.js +79 -0
- package/lib/types/working-activity.d.ts +19 -0
- package/lib/types/working-activity.d.ts.map +1 -0
- package/lib/types/working-activity.js +18 -0
- package/package.json +141 -0
- package/skills/audit/SKILL.md +24 -0
- package/skills/bug/SKILL.md +27 -0
- package/skills/pr-comments/SKILL.md +20 -0
- package/skills/practice/SKILL.md +22 -0
- package/skills/release-notes/SKILL.md +25 -0
- package/skills/review/SKILL.md +25 -0
- package/skills/vuln-check/SKILL.md +25 -0
package/cordis.yml
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# dsh-tui interactive front door over the agent-spine bundle.
|
|
2
|
+
# Run with: dsh --config cordis.yml (或 npm 安装后走 dsh plugin 机制)
|
|
3
|
+
# Requires DEEPSEEK_API_KEY; a terminal TTY is mandatory.
|
|
4
|
+
|
|
5
|
+
# The user-interaction service: hosts `ctx.userQuestions`, the seam behind
|
|
6
|
+
# the model-facing ask_user_question tool. dsh-tui registers its questionnaire
|
|
7
|
+
# provider on it; the service must live at the root so the agent loop's tool
|
|
8
|
+
# execution can reach it.
|
|
9
|
+
- id: user-questions
|
|
10
|
+
name: '@deepseek-ai/dsh-user-questions'
|
|
11
|
+
|
|
12
|
+
- id: dsh-tui
|
|
13
|
+
name: '@deepseek-harness-tui/dsh-tui'
|
|
14
|
+
config:
|
|
15
|
+
provider: deepseek-official
|
|
16
|
+
# Alt-screen fullscreen (CC 同款): 应用内鼠标选区(选择即复制, OSC 52 +
|
|
17
|
+
# wl-copy/xclip/xsel 兜底)、滚轮滚动、双击选词/三击选行。false 则退回
|
|
18
|
+
# inline 渲染, 鼠标交给终端模拟器原生选择。
|
|
19
|
+
fullscreen: true
|
|
20
|
+
# Reasoning effort applied to every request, validated against the live
|
|
21
|
+
# route's adapter levels (deepseek: off/high/max) — an unlisted level is
|
|
22
|
+
# ignored and the adapter default applies. Wins over the persisted
|
|
23
|
+
# Shift+Tab choice (~/.dsh-cc/effort.json); also seeds the startup
|
|
24
|
+
# header/statusline until the first request header reports the live value.
|
|
25
|
+
effort: max
|
|
26
|
+
# feeds the chosen session id through this env var.
|
|
27
|
+
sessionId: !!js process.env.DSH_CC_RESUME_SESSION ?? undefined
|
|
28
|
+
|
|
29
|
+
# The DeepSeek adapter. Shipped default: full thinking at max effort.
|
|
30
|
+
# rc.6 schema key is `apiKeyEnv` (a credential-ref env var NAME, default
|
|
31
|
+
# DEEPSEEK_API_KEY), not `apiKey`; the old snapshot's `apiKey` key is
|
|
32
|
+
# dropped by the loader and would never take effect.
|
|
33
|
+
- id: llm-deepseek
|
|
34
|
+
name: '@deepseek-ai/dsh-llm-deepseek'
|
|
35
|
+
config:
|
|
36
|
+
apiKeyEnv: 'DEEPSEEK_API_KEY'
|
|
37
|
+
baseURL: !!js process.env.DEEPSEEK_BASE_URL
|
|
38
|
+
thinking: enabled
|
|
39
|
+
reasoningEffort: max
|
|
40
|
+
|
|
41
|
+
# Managed child-process groups for the bash executor.
|
|
42
|
+
- id: subprocess
|
|
43
|
+
name: '@deepseek-ai/dsh-subprocess-local'
|
|
44
|
+
|
|
45
|
+
- id: bash
|
|
46
|
+
name: '@deepseek-ai/dsh-bash-local'
|
|
47
|
+
config:
|
|
48
|
+
cwd: !!js process.cwd()
|
|
49
|
+
timeoutMs: 60000
|
|
50
|
+
|
|
51
|
+
# Filesystem service: `@` completion lists the session cwd through it, and
|
|
52
|
+
# the model-facing fs tools resolve relative paths from the process cwd.
|
|
53
|
+
- id: fs
|
|
54
|
+
name: '@deepseek-ai/dsh-fs-local'
|
|
55
|
+
config:
|
|
56
|
+
cwd: !!js process.cwd()
|
|
57
|
+
|
|
58
|
+
# Read/write/edit policy loads before the model-facing filesystem tools so
|
|
59
|
+
# writes and edits require an observed file (DSH's own fs policy gate).
|
|
60
|
+
- id: fs-policy
|
|
61
|
+
name: '@deepseek-ai/dsh-fs-observation-policy'
|
|
62
|
+
|
|
63
|
+
- id: tool-fs
|
|
64
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
65
|
+
|
|
66
|
+
# The todo_write tool replaces the logged whole list (DSH's todo tool).
|
|
67
|
+
# allowParallelInProgress is REQUIRED (no schema default) — a bare mount
|
|
68
|
+
# fails validation. True matches the official dsh-base bundle value.
|
|
69
|
+
- id: tool-todo
|
|
70
|
+
name: '@deepseek-ai/dsh-tool-todo'
|
|
71
|
+
config:
|
|
72
|
+
allowParallelInProgress: true
|
|
73
|
+
|
|
74
|
+
# Subagents: the registry service, then the spawn/fork backends and the
|
|
75
|
+
# delegation tools (max depth 1 keeps the TUI's tool cards shallow). The
|
|
76
|
+
# core `dsh-subagent` service MUST be mounted before any provider.
|
|
77
|
+
- id: subagent
|
|
78
|
+
name: '@deepseek-ai/dsh-subagent'
|
|
79
|
+
|
|
80
|
+
- id: subagent-spawn
|
|
81
|
+
name: '@deepseek-ai/dsh-subagent-spawn-in-process'
|
|
82
|
+
config:
|
|
83
|
+
providerName: spawn
|
|
84
|
+
|
|
85
|
+
- id: subagent-fork
|
|
86
|
+
name: '@deepseek-ai/dsh-subagent-fork-in-process'
|
|
87
|
+
config:
|
|
88
|
+
providerName: fork
|
|
89
|
+
|
|
90
|
+
- id: tool-subagent
|
|
91
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
92
|
+
config:
|
|
93
|
+
provider: spawn
|
|
94
|
+
toolName: subagent
|
|
95
|
+
backgroundMode: continuable
|
|
96
|
+
maxDepth: 1
|
|
97
|
+
|
|
98
|
+
- id: tool-subagent-fork
|
|
99
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
100
|
+
config:
|
|
101
|
+
provider: fork
|
|
102
|
+
toolName: subagent_fork
|
|
103
|
+
backgroundMode: continuable
|
|
104
|
+
maxDepth: 1
|
|
105
|
+
|
|
106
|
+
- id: agent-spine
|
|
107
|
+
name: '@deepseek-ai/dsh-agent-spine-demo'
|
|
108
|
+
config:
|
|
109
|
+
persona: !!js process.env.CC_TUI_PERSONA ?? 'You are a coding agent.'
|
|
110
|
+
# Workspace context (AGENTS.md injection) at the standard 64KB cap;
|
|
111
|
+
# task tools stay at their DSH defaults (on).
|
|
112
|
+
workspaceContext:
|
|
113
|
+
maxBytes: 65536
|
|
114
|
+
# Skills on: the spine mounts the local skill provider (discovers
|
|
115
|
+
# SKILL.md catalogs under ~/.dsh, ~/.agents and project roots) plus the
|
|
116
|
+
# model-facing skill catalog/load tools.
|
|
117
|
+
skills:
|
|
118
|
+
enabled: true
|
|
119
|
+
# Persisted goal stack: mounts the goal domain service + the model-facing
|
|
120
|
+
# goal tool; /goal (command-goal below) needs the service present.
|
|
121
|
+
goals: {}
|
|
122
|
+
|
|
123
|
+
# Human-command registry: plan-mode's /plan and command-goal's /goal register
|
|
124
|
+
# here; the TUI merges them into its slash menu and dispatches through the
|
|
125
|
+
# registry (logs command/run + command/done). Must mount before the commands.
|
|
126
|
+
- id: commands
|
|
127
|
+
name: '@deepseek-ai/dsh-commands'
|
|
128
|
+
|
|
129
|
+
# Plan mode: the plan:policy prompt section, the /plan command and the
|
|
130
|
+
# model-facing plan/exit tools (DSH's plan seam). `section` is REQUIRED and
|
|
131
|
+
# non-empty — a bare mount fails validation and rolls the whole tree back.
|
|
132
|
+
- id: plan-mode
|
|
133
|
+
name: '@deepseek-ai/dsh-plan-mode'
|
|
134
|
+
config:
|
|
135
|
+
section: |
|
|
136
|
+
You are in plan mode. Explore and design before presenting the
|
|
137
|
+
complete plan through exit_plan_mode.
|
|
138
|
+
|
|
139
|
+
# /goal — set or view the goal for a long-running task (needs the goal
|
|
140
|
+
# domain service mounted by agent-spine's `goals` config above).
|
|
141
|
+
- id: command-goal
|
|
142
|
+
name: '@deepseek-ai/dsh-command-goal'
|
|
143
|
+
|
|
144
|
+
# Live working line for the status bar: thinking copy / running tool / turn
|
|
145
|
+
# summary. dsh-tui consumes its log-only activity/status events; the
|
|
146
|
+
# plugin's own TUI prompt slot is skipped without an official dsh-tui.
|
|
147
|
+
# Mounted through @deepseek-harness-tui/dsh-tui's `./working-activity`
|
|
148
|
+
# re-export (not the bare `dsh-working-activity` name) so the row resolves
|
|
149
|
+
# from install layouts that never link transitive dependencies into the
|
|
150
|
+
# boot anchor's node_modules — pnpm's isolated profile layout, issue #60.
|
|
151
|
+
# publishIntervalMs 500: live-phase snapshots republish every 500ms so the
|
|
152
|
+
# dsh-tui status-line elapsed timers tick smoothly (default 2000ms).
|
|
153
|
+
- id: working-activity
|
|
154
|
+
name: '@deepseek-harness-tui/dsh-tui/working-activity'
|
|
155
|
+
config:
|
|
156
|
+
publishIntervalMs: 500
|
|
157
|
+
|
|
158
|
+
# Durable session log (DSH's own persistence seam): /resume and rewind both
|
|
159
|
+
# rely on this backend writing every session/event. Root defaults under the
|
|
160
|
+
# user home so sessions survive across terminals (Windows: USERPROFILE).
|
|
161
|
+
- id: sessions
|
|
162
|
+
name: '@deepseek-ai/dsh-session-persistence-jsonl'
|
|
163
|
+
config:
|
|
164
|
+
root: !!js process.env.DSH_CC_SESSION_ROOT ?? (process.env.USERPROFILE ?? process.env.HOME) + '/.dsh-cc/sessions'
|
|
165
|
+
|
|
166
|
+
# Read-only session lineage — the subagent service's /agents listing reads it.
|
|
167
|
+
- id: session-query
|
|
168
|
+
name: '@deepseek-ai/dsh-session-query'
|
|
169
|
+
|
|
170
|
+
- id: session-checkpoints
|
|
171
|
+
name: '@deepseek-ai/dsh-session-checkpoint-policy'
|
|
172
|
+
|
|
173
|
+
# Token accounting + manual session compaction (/compact).
|
|
174
|
+
- id: token-meter
|
|
175
|
+
name: '@deepseek-ai/dsh-token-meter'
|
|
176
|
+
|
|
177
|
+
- id: compact
|
|
178
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
179
|
+
config:
|
|
180
|
+
# DeepSeek advertises a 1M context window, so the 80% default threshold
|
|
181
|
+
# would never make manual /compact useful. Default 20% (200k tokens)
|
|
182
|
+
# with a 5% retained tail; both are overridable for tests and must keep
|
|
183
|
+
# retainRatio < thresholdRatio (BasicCompactConfig validates this).
|
|
184
|
+
thresholdRatio: !!js parseFloat(process.env.CC_TUI_COMPACT_RATIO ?? '0.2')
|
|
185
|
+
retainRatio: !!js parseFloat(process.env.CC_TUI_COMPACT_RETAIN ?? '0.05')
|
package/lib/invariant.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region lib/types/invariant.js
|
|
2
|
+
/**
|
|
3
|
+
* Package-owned invariant companion for `@deepseek-harness-tui/dsh-tui`.
|
|
4
|
+
*
|
|
5
|
+
* The vendored Ink core under `src/ink` is third-party code written against
|
|
6
|
+
* looser compiler flags; the relaxed `tsconfig` options exist only for that
|
|
7
|
+
* subtree and must not spread to new code.
|
|
8
|
+
* @module @deepseek-harness-tui/dsh-tui/invariant
|
|
9
|
+
*/
|
|
10
|
+
const PACKAGE_NAME = "@deepseek-harness-tui/dsh-tui";
|
|
11
|
+
/** Cordis companion plugin name. */
|
|
12
|
+
const name = "dsh-tui-invariant";
|
|
13
|
+
/** Service required before the companion can reserve package ownership. */
|
|
14
|
+
const inject = ["invariants"];
|
|
15
|
+
/**
|
|
16
|
+
* No runtime invariant: this interactive TUI front door owns no independent
|
|
17
|
+
* lifecycle stream; state relations are owned by the agent/session seams it
|
|
18
|
+
* renders.
|
|
19
|
+
*/
|
|
20
|
+
const install = () => {};
|
|
21
|
+
/**
|
|
22
|
+
* Register this package's invariant companion.
|
|
23
|
+
* @param ctx - Cordis context carrying the invariant service.
|
|
24
|
+
* @returns the installed registration's disposer after setup succeeds.
|
|
25
|
+
*/
|
|
26
|
+
const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
|
|
27
|
+
//#endregion
|
|
28
|
+
export { apply, inject, name };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persisted working-activity indicator preference, mirroring the pi
|
|
3
|
+
* working-activity extension's `~/.pi/agent/working-activity.json`
|
|
4
|
+
* (`frames` key). dsh-tui keeps its own copy at
|
|
5
|
+
* `~/.dsh-cc/working-activity.json` so the `/activity` choice survives
|
|
6
|
+
* restarts. The file is best-effort: a missing or corrupt file (or an
|
|
7
|
+
* unknown preset left behind by an older version) just falls back to the
|
|
8
|
+
* default preset.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Parse a persisted `{ frames }` value; anything else yields undefined.
|
|
12
|
+
* @param text - Raw file contents.
|
|
13
|
+
* @returns The preset name when valid, else undefined.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseActivityFrames(text: string): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* The persisted indicator preset name, or undefined when unset or invalid.
|
|
18
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
19
|
+
* @returns The persisted preset name, if any.
|
|
20
|
+
*/
|
|
21
|
+
export declare function readActivityFrames(dir?: string): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Persist the chosen indicator preset (best effort).
|
|
24
|
+
* @param name - Preset name to persist.
|
|
25
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
26
|
+
* @returns True when the file was written, false on failure.
|
|
27
|
+
*/
|
|
28
|
+
export declare function writeActivityFrames(name: string, dir?: string): boolean;
|
|
29
|
+
//# sourceMappingURL=activityPrefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activityPrefs.d.ts","sourceRoot":"","sources":["../../src/activityPrefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASpE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAkB,GAAG,MAAM,GAAG,SAAS,CAM9E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAQlF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persisted working-activity indicator preference, mirroring the pi
|
|
3
|
+
* working-activity extension's `~/.pi/agent/working-activity.json`
|
|
4
|
+
* (`frames` key). dsh-tui keeps its own copy at
|
|
5
|
+
* `~/.dsh-cc/working-activity.json` so the `/activity` choice survives
|
|
6
|
+
* restarts. The file is best-effort: a missing or corrupt file (or an
|
|
7
|
+
* unknown preset left behind by an older version) just falls back to the
|
|
8
|
+
* default preset.
|
|
9
|
+
*/
|
|
10
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
11
|
+
import { homedir } from 'node:os';
|
|
12
|
+
import { join } from 'node:path';
|
|
13
|
+
import { isPresetName } from './components/activityFrames.js';
|
|
14
|
+
const PREFS_DIR = join(homedir(), '.dsh-cc');
|
|
15
|
+
/**
|
|
16
|
+
* Parse a persisted `{ frames }` value; anything else yields undefined.
|
|
17
|
+
* @param text - Raw file contents.
|
|
18
|
+
* @returns The preset name when valid, else undefined.
|
|
19
|
+
*/
|
|
20
|
+
export function parseActivityFrames(text) {
|
|
21
|
+
try {
|
|
22
|
+
const parsed = JSON.parse(text);
|
|
23
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
24
|
+
return undefined;
|
|
25
|
+
const frames = parsed.frames;
|
|
26
|
+
return typeof frames === 'string' && isPresetName(frames) ? frames : undefined;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The persisted indicator preset name, or undefined when unset or invalid.
|
|
34
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
35
|
+
* @returns The persisted preset name, if any.
|
|
36
|
+
*/
|
|
37
|
+
export function readActivityFrames(dir = PREFS_DIR) {
|
|
38
|
+
try {
|
|
39
|
+
return parseActivityFrames(readFileSync(join(dir, 'working-activity.json'), 'utf8'));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Persist the chosen indicator preset (best effort).
|
|
47
|
+
* @param name - Preset name to persist.
|
|
48
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
49
|
+
* @returns True when the file was written, false on failure.
|
|
50
|
+
*/
|
|
51
|
+
export function writeActivityFrames(name, dir = PREFS_DIR) {
|
|
52
|
+
try {
|
|
53
|
+
mkdirSync(dir, { recursive: true });
|
|
54
|
+
writeFileSync(join(dir, 'working-activity.json'), JSON.stringify({ frames: name }, null, 2));
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction-time telemetry stubs consumed by the ported Ink core
|
|
3
|
+
* (ink/ink.tsx, ink/components/App.tsx, ink/components/ScrollBox.tsx). The
|
|
4
|
+
* original functions fed Claude Code's session-activity tracking; dsh-tui
|
|
5
|
+
* does not track interaction time.
|
|
6
|
+
*/
|
|
7
|
+
/** No-op interaction-time flush stub; dsh-tui does not track interaction time. */
|
|
8
|
+
export declare function flushInteractionTime(): void;
|
|
9
|
+
/** No-op interaction-time update stub; dsh-tui does not track interaction time. */
|
|
10
|
+
export declare function updateLastInteractionTime(): void;
|
|
11
|
+
/** No-op scroll-activity stub; dsh-tui does not track interaction time. */
|
|
12
|
+
export declare function markScrollActivity(): void;
|
|
13
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,IAAI,CAAG;AAE/C,mFAAmF;AACnF,wBAAgB,yBAAyB,IAAI,IAAI,CAAG;AAEpD,2EAA2E;AAC3E,wBAAgB,kBAAkB,IAAI,IAAI,CAAG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction-time telemetry stubs consumed by the ported Ink core
|
|
3
|
+
* (ink/ink.tsx, ink/components/App.tsx, ink/components/ScrollBox.tsx). The
|
|
4
|
+
* original functions fed Claude Code's session-activity tracking; dsh-tui
|
|
5
|
+
* does not track interaction time.
|
|
6
|
+
*/
|
|
7
|
+
/** No-op interaction-time flush stub; dsh-tui does not track interaction time. */
|
|
8
|
+
export function flushInteractionTime() { }
|
|
9
|
+
/** No-op interaction-time update stub; dsh-tui does not track interaction time. */
|
|
10
|
+
export function updateLastInteractionTime() { }
|
|
11
|
+
/** No-op scroll-activity stub; dsh-tui does not track interaction time. */
|
|
12
|
+
export function markScrollActivity() { }
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The cli-highlight surface dsh-tui consumes: the syntax highlighter and the language support check. */
|
|
2
|
+
export type CliHighlight = {
|
|
3
|
+
highlight: typeof import('cli-highlight').highlight;
|
|
4
|
+
supportsLanguage: typeof import('cli-highlight').supportsLanguage;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Return the shared cli-highlight load promise, starting the lazy load on first call.
|
|
8
|
+
* @returns A promise of the loaded cli-highlight surface, or null when the dynamic import fails.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getCliHighlightPromise(): Promise<CliHighlight | null>;
|
|
11
|
+
/**
|
|
12
|
+
* eg. "foo/bar.ts" → "TypeScript". Awaits the shared cli-highlight load,
|
|
13
|
+
* then reads highlight.js's language registry. All callers are telemetry
|
|
14
|
+
* (OTel counter attributes, permission-dialog unary events) — none block
|
|
15
|
+
* on this, they fire-and-forget or the consumer already handles Promise<string>.
|
|
16
|
+
* @param file_path - Source file path whose extension names the language.
|
|
17
|
+
* @returns The language display name, or 'unknown' when the extension is empty or unregistered.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getLanguageName(file_path: string): Promise<string>;
|
|
20
|
+
//# sourceMappingURL=cliHighlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliHighlight.d.ts","sourceRoot":"","sources":["../../../src/cc/cliHighlight.ts"],"names":[],"mappings":"AASA,yGAAyG;AACzG,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,cAAc,eAAe,EAAE,SAAS,CAAA;IACnD,gBAAgB,EAAE,cAAc,eAAe,EAAE,gBAAgB,CAAA;CAClE,CAAA;AA2BD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAGrE;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// highlight.js's type defs carry `/// <reference lib="dom" />`. SSETransport,
|
|
2
|
+
// mcp/client, ssh, dumpPrompts use DOM types (TextDecodeOptions, RequestInfo)
|
|
3
|
+
// that only typecheck because this file's `typeof import('highlight.js')` pulls
|
|
4
|
+
// lib.dom in. tsconfig has lib: ["ESNext"] only — fixing the actual DOM-type
|
|
5
|
+
// deps is a separate sweep; this ref preserves the status quo.
|
|
6
|
+
/// <reference lib="dom" />
|
|
7
|
+
import { extname } from 'path';
|
|
8
|
+
// One promise shared by Fallback.tsx, markdown.ts, events.ts, getLanguageName.
|
|
9
|
+
// The highlight.js import piggybacks: cli-highlight has already pulled it into
|
|
10
|
+
// the module cache, so the second import() is a cache hit — no extra bytes
|
|
11
|
+
// faulted in.
|
|
12
|
+
let cliHighlightPromise;
|
|
13
|
+
// highlight.js types vary by version; the language registry lookup is only
|
|
14
|
+
// used by optional telemetry paths, so keep a loose signature.
|
|
15
|
+
let loadedGetLanguage;
|
|
16
|
+
async function loadCliHighlight() {
|
|
17
|
+
try {
|
|
18
|
+
const cliHighlight = await import('cli-highlight');
|
|
19
|
+
// cache hit — cli-highlight already loaded highlight.js
|
|
20
|
+
const highlightJs = await import('highlight.js');
|
|
21
|
+
loadedGetLanguage = highlightJs.getLanguage;
|
|
22
|
+
return {
|
|
23
|
+
highlight: cliHighlight.highlight,
|
|
24
|
+
supportsLanguage: cliHighlight.supportsLanguage,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Return the shared cli-highlight load promise, starting the lazy load on first call.
|
|
33
|
+
* @returns A promise of the loaded cli-highlight surface, or null when the dynamic import fails.
|
|
34
|
+
*/
|
|
35
|
+
export function getCliHighlightPromise() {
|
|
36
|
+
cliHighlightPromise ??= loadCliHighlight();
|
|
37
|
+
return cliHighlightPromise;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* eg. "foo/bar.ts" → "TypeScript". Awaits the shared cli-highlight load,
|
|
41
|
+
* then reads highlight.js's language registry. All callers are telemetry
|
|
42
|
+
* (OTel counter attributes, permission-dialog unary events) — none block
|
|
43
|
+
* on this, they fire-and-forget or the consumer already handles Promise<string>.
|
|
44
|
+
* @param file_path - Source file path whose extension names the language.
|
|
45
|
+
* @returns The language display name, or 'unknown' when the extension is empty or unregistered.
|
|
46
|
+
*/
|
|
47
|
+
export async function getLanguageName(file_path) {
|
|
48
|
+
await getCliHighlightPromise();
|
|
49
|
+
const ext = extname(file_path).slice(1);
|
|
50
|
+
if (!ext)
|
|
51
|
+
return 'unknown';
|
|
52
|
+
return loadedGetLanguage?.(ext)?.name ?? 'unknown';
|
|
53
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI glyph constants, ported from the leaked Claude Code source
|
|
3
|
+
* (`src/constants/figures.ts`). The macOS/Windows variants from the original
|
|
4
|
+
* are kept; the plugin renders on whatever platform the user runs.
|
|
5
|
+
*/
|
|
6
|
+
export declare const BLACK_CIRCLE: string;
|
|
7
|
+
/** The prompt pointer glyph (`❯`), figures.pointer. */
|
|
8
|
+
export declare const POINTER = "\u276F";
|
|
9
|
+
/** Checkmark (`✓`), figures.tick. */
|
|
10
|
+
export declare const TICK = "\u2713";
|
|
11
|
+
/** Bullet dot (`∙`), figures.bulletOperator. */
|
|
12
|
+
export declare const BULLET_OPERATOR = "\u2219";
|
|
13
|
+
/** Teardrop asterisk (`✻`), figures.teardropAsterisk. */
|
|
14
|
+
export declare const TEARDROP_ASTERISK = "\u273B";
|
|
15
|
+
/** Up arrow (`↑`). */
|
|
16
|
+
export declare const UP_ARROW = "\u2191";
|
|
17
|
+
/** Down arrow (`↓`). */
|
|
18
|
+
export declare const DOWN_ARROW = "\u2193";
|
|
19
|
+
/** Lightning bolt (`↯`), figures.lightningBolt. */
|
|
20
|
+
export declare const LIGHTNING_BOLT = "\u21AF";
|
|
21
|
+
/** Low-effort indicator: open circle (`○`). */
|
|
22
|
+
export declare const EFFORT_LOW = "\u25CB";
|
|
23
|
+
/** Medium-effort indicator: half circle (`◐`). */
|
|
24
|
+
export declare const EFFORT_MEDIUM = "\u25D0";
|
|
25
|
+
/** High-effort indicator: filled circle (`●`). */
|
|
26
|
+
export declare const EFFORT_HIGH = "\u25CF";
|
|
27
|
+
/** Max-effort indicator: bullseye (`◉`). */
|
|
28
|
+
export declare const EFFORT_MAX = "\u25C9";
|
|
29
|
+
/** Play control icon (`▶`). */
|
|
30
|
+
export declare const PLAY_ICON = "\u25B6";
|
|
31
|
+
/** Pause control icon (`⏸`). */
|
|
32
|
+
export declare const PAUSE_ICON = "\u23F8";
|
|
33
|
+
/** Refresh arrow (`↻`), MCP subscription indicator. */
|
|
34
|
+
export declare const REFRESH_ARROW = "\u21BB";
|
|
35
|
+
/** Left arrow (`←`), channel indicator. */
|
|
36
|
+
export declare const CHANNEL_ARROW = "\u2190";
|
|
37
|
+
/** Right arrow (`→`), injected-message indicator. */
|
|
38
|
+
export declare const INJECTED_ARROW = "\u2192";
|
|
39
|
+
/** Fork glyph (`⑂`), fork indicator. */
|
|
40
|
+
export declare const FORK_GLYPH = "\u2442";
|
|
41
|
+
/** Open diamond (`◇`), review status indicator. */
|
|
42
|
+
export declare const DIAMOND_OPEN = "\u25C7";
|
|
43
|
+
/** Filled diamond (`◆`), review status indicator. */
|
|
44
|
+
export declare const DIAMOND_FILLED = "\u25C6";
|
|
45
|
+
/** Reference mark (`※`), reference indicator. */
|
|
46
|
+
export declare const REFERENCE_MARK = "\u203B";
|
|
47
|
+
/** Flag icon (`⚑`), issue indicator. */
|
|
48
|
+
export declare const FLAG_ICON = "\u2691";
|
|
49
|
+
/** Blockquote bar (`▎`), left one-quarter block. */
|
|
50
|
+
export declare const BLOCKQUOTE_BAR = "\u258E";
|
|
51
|
+
/** Heavy horizontal rule (`━`). */
|
|
52
|
+
export declare const HEAVY_HORIZONTAL = "\u2501";
|
|
53
|
+
/** Bridge status spinner frames (`·|·`, `·/·`, `·—·`, `·\·`). */
|
|
54
|
+
export declare const BRIDGE_SPINNER_FRAMES: string[];
|
|
55
|
+
/** Bridge ready indicator (`·✔︎·`). */
|
|
56
|
+
export declare const BRIDGE_READY_INDICATOR = "\u00B7\u2714\uFE0E\u00B7";
|
|
57
|
+
/** Bridge failed indicator (`×`). */
|
|
58
|
+
export declare const BRIDGE_FAILED_INDICATOR = "\u00D7";
|
|
59
|
+
//# sourceMappingURL=figures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../../../src/cc/figures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,YAAY,QAA4C,CAAA;AACrE,uDAAuD;AACvD,eAAO,MAAM,OAAO,WAAM,CAAA;AAC1B,qCAAqC;AACrC,eAAO,MAAM,IAAI,WAAM,CAAA;AACvB,gDAAgD;AAChD,eAAO,MAAM,eAAe,WAAM,CAAA;AAClC,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,WAAM,CAAA;AACpC,sBAAsB;AACtB,eAAO,MAAM,QAAQ,WAAW,CAAA;AAChC,wBAAwB;AACxB,eAAO,MAAM,UAAU,WAAW,CAAA;AAClC,mDAAmD;AACnD,eAAO,MAAM,cAAc,WAAM,CAAA;AACjC,+CAA+C;AAC/C,eAAO,MAAM,UAAU,WAAM,CAAA;AAC7B,kDAAkD;AAClD,eAAO,MAAM,aAAa,WAAM,CAAA;AAChC,kDAAkD;AAClD,eAAO,MAAM,WAAW,WAAM,CAAA;AAC9B,4CAA4C;AAC5C,eAAO,MAAM,UAAU,WAAM,CAAA;AAG7B,+BAA+B;AAC/B,eAAO,MAAM,SAAS,WAAW,CAAA;AACjC,gCAAgC;AAChC,eAAO,MAAM,UAAU,WAAW,CAAA;AAGlC,uDAAuD;AACvD,eAAO,MAAM,aAAa,WAAW,CAAA;AACrC,2CAA2C;AAC3C,eAAO,MAAM,aAAa,WAAW,CAAA;AACrC,qDAAqD;AACrD,eAAO,MAAM,cAAc,WAAW,CAAA;AACtC,wCAAwC;AACxC,eAAO,MAAM,UAAU,WAAW,CAAA;AAGlC,mDAAmD;AACnD,eAAO,MAAM,YAAY,WAAW,CAAA;AACpC,qDAAqD;AACrD,eAAO,MAAM,cAAc,WAAW,CAAA;AACtC,iDAAiD;AACjD,eAAO,MAAM,cAAc,WAAW,CAAA;AAGtC,wCAAwC;AACxC,eAAO,MAAM,SAAS,WAAW,CAAA;AAGjC,oDAAoD;AACpD,eAAO,MAAM,cAAc,WAAW,CAAA;AACtC,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,WAAW,CAAA;AAGxC,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,UAKjC,CAAA;AACD,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,6BAA6B,CAAA;AAChE,qCAAqC;AACrC,eAAO,MAAM,uBAAuB,WAAW,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI glyph constants, ported from the leaked Claude Code source
|
|
3
|
+
* (`src/constants/figures.ts`). The macOS/Windows variants from the original
|
|
4
|
+
* are kept; the plugin renders on whatever platform the user runs.
|
|
5
|
+
*/
|
|
6
|
+
export const BLACK_CIRCLE = process.platform === 'darwin' ? '⏺' : '●';
|
|
7
|
+
/** The prompt pointer glyph (`❯`), figures.pointer. */
|
|
8
|
+
export const POINTER = '❯';
|
|
9
|
+
/** Checkmark (`✓`), figures.tick. */
|
|
10
|
+
export const TICK = '✓';
|
|
11
|
+
/** Bullet dot (`∙`), figures.bulletOperator. */
|
|
12
|
+
export const BULLET_OPERATOR = '∙';
|
|
13
|
+
/** Teardrop asterisk (`✻`), figures.teardropAsterisk. */
|
|
14
|
+
export const TEARDROP_ASTERISK = '✻';
|
|
15
|
+
/** Up arrow (`↑`). */
|
|
16
|
+
export const UP_ARROW = '\u2191'; // ↑
|
|
17
|
+
/** Down arrow (`↓`). */
|
|
18
|
+
export const DOWN_ARROW = '\u2193'; // ↓
|
|
19
|
+
/** Lightning bolt (`↯`), figures.lightningBolt. */
|
|
20
|
+
export const LIGHTNING_BOLT = '↯';
|
|
21
|
+
/** Low-effort indicator: open circle (`○`). */
|
|
22
|
+
export const EFFORT_LOW = '○';
|
|
23
|
+
/** Medium-effort indicator: half circle (`◐`). */
|
|
24
|
+
export const EFFORT_MEDIUM = '◐';
|
|
25
|
+
/** High-effort indicator: filled circle (`●`). */
|
|
26
|
+
export const EFFORT_HIGH = '●';
|
|
27
|
+
/** Max-effort indicator: bullseye (`◉`). */
|
|
28
|
+
export const EFFORT_MAX = '◉';
|
|
29
|
+
// Media/trigger status indicators
|
|
30
|
+
/** Play control icon (`▶`). */
|
|
31
|
+
export const PLAY_ICON = '\u25b6'; // ▶
|
|
32
|
+
/** Pause control icon (`⏸`). */
|
|
33
|
+
export const PAUSE_ICON = '\u23f8'; // ⏸
|
|
34
|
+
// MCP subscription indicators
|
|
35
|
+
/** Refresh arrow (`↻`), MCP subscription indicator. */
|
|
36
|
+
export const REFRESH_ARROW = '\u21bb'; // ↻
|
|
37
|
+
/** Left arrow (`←`), channel indicator. */
|
|
38
|
+
export const CHANNEL_ARROW = '\u2190'; // ←
|
|
39
|
+
/** Right arrow (`→`), injected-message indicator. */
|
|
40
|
+
export const INJECTED_ARROW = '\u2192'; // →
|
|
41
|
+
/** Fork glyph (`⑂`), fork indicator. */
|
|
42
|
+
export const FORK_GLYPH = '\u2442'; // ⑂
|
|
43
|
+
// Review status indicators
|
|
44
|
+
/** Open diamond (`◇`), review status indicator. */
|
|
45
|
+
export const DIAMOND_OPEN = '\u25c7'; // ◇
|
|
46
|
+
/** Filled diamond (`◆`), review status indicator. */
|
|
47
|
+
export const DIAMOND_FILLED = '\u25c6'; // ◆
|
|
48
|
+
/** Reference mark (`※`), reference indicator. */
|
|
49
|
+
export const REFERENCE_MARK = '\u203b'; // ※
|
|
50
|
+
// Issue flag indicator
|
|
51
|
+
/** Flag icon (`⚑`), issue indicator. */
|
|
52
|
+
export const FLAG_ICON = '\u2691'; // ⚑
|
|
53
|
+
// Blockquote indicator
|
|
54
|
+
/** Blockquote bar (`▎`), left one-quarter block. */
|
|
55
|
+
export const BLOCKQUOTE_BAR = '\u258e'; // ▎
|
|
56
|
+
/** Heavy horizontal rule (`━`). */
|
|
57
|
+
export const HEAVY_HORIZONTAL = '\u2501'; // ━
|
|
58
|
+
// Bridge status indicators
|
|
59
|
+
/** Bridge status spinner frames (`·|·`, `·/·`, `·—·`, `·\·`). */
|
|
60
|
+
export const BRIDGE_SPINNER_FRAMES = [
|
|
61
|
+
'\u00b7|\u00b7',
|
|
62
|
+
'\u00b7/\u00b7',
|
|
63
|
+
'\u00b7\u2014\u00b7',
|
|
64
|
+
'\u00b7\\\u00b7',
|
|
65
|
+
];
|
|
66
|
+
/** Bridge ready indicator (`·✔︎·`). */
|
|
67
|
+
export const BRIDGE_READY_INDICATOR = '\u00b7\u2714\ufe0e\u00b7';
|
|
68
|
+
/** Bridge failed indicator (`×`). */
|
|
69
|
+
export const BRIDGE_FAILED_INDICATOR = '\u00d7';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token/byte display formatters, ported from the leaked Claude Code source
|
|
3
|
+
* (src/utils/format.ts) minus the app-level formatter registry.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Format a number for display, switching to compact notation at 1000.
|
|
7
|
+
* @param number - The value to format.
|
|
8
|
+
* @returns The formatted number, lowercased (e.g. `1.2k`).
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatNumber(number: number): string;
|
|
11
|
+
/**
|
|
12
|
+
* Format a token count, dropping a trailing `.0` from compact values.
|
|
13
|
+
* @param count - The token count to format.
|
|
14
|
+
* @returns The formatted count (e.g. `988`, `3.4k`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatTokens(count: number): string;
|
|
17
|
+
/**
|
|
18
|
+
* Compact duration like `12s`, `3m 4s`, `1h 2m` (ported from the leak).
|
|
19
|
+
* @param durationMs - Duration in milliseconds; negative values clamp to zero.
|
|
20
|
+
* @param options - Formatting options; `mostSignificantOnly` stops after the first non-zero unit.
|
|
21
|
+
* @returns The space-joined duration string with `h`/`m`/`s` units.
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatDuration(durationMs: number, options?: {
|
|
24
|
+
mostSignificantOnly?: boolean;
|
|
25
|
+
}): string;
|
|
26
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cc/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9C,MAAM,CAoBR"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token/byte display formatters, ported from the leaked Claude Code source
|
|
3
|
+
* (src/utils/format.ts) minus the app-level formatter registry.
|
|
4
|
+
*/
|
|
5
|
+
function numberFormatter(compact) {
|
|
6
|
+
return new Intl.NumberFormat('en', {
|
|
7
|
+
notation: compact ? 'compact' : 'standard',
|
|
8
|
+
maximumFractionDigits: 1,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Format a number for display, switching to compact notation at 1000.
|
|
13
|
+
* @param number - The value to format.
|
|
14
|
+
* @returns The formatted number, lowercased (e.g. `1.2k`).
|
|
15
|
+
*/
|
|
16
|
+
export function formatNumber(number) {
|
|
17
|
+
const compact = number >= 1000;
|
|
18
|
+
return numberFormatter(compact).format(number).toLowerCase();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Format a token count, dropping a trailing `.0` from compact values.
|
|
22
|
+
* @param count - The token count to format.
|
|
23
|
+
* @returns The formatted count (e.g. `988`, `3.4k`).
|
|
24
|
+
*/
|
|
25
|
+
export function formatTokens(count) {
|
|
26
|
+
return formatNumber(count).replace('.0', '');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Compact duration like `12s`, `3m 4s`, `1h 2m` (ported from the leak).
|
|
30
|
+
* @param durationMs - Duration in milliseconds; negative values clamp to zero.
|
|
31
|
+
* @param options - Formatting options; `mostSignificantOnly` stops after the first non-zero unit.
|
|
32
|
+
* @returns The space-joined duration string with `h`/`m`/`s` units.
|
|
33
|
+
*/
|
|
34
|
+
export function formatDuration(durationMs, options = {}) {
|
|
35
|
+
const { mostSignificantOnly = false } = options;
|
|
36
|
+
const totalSeconds = Math.max(0, Math.floor(durationMs / 1000));
|
|
37
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
38
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
39
|
+
const seconds = totalSeconds % 60;
|
|
40
|
+
const parts = [];
|
|
41
|
+
if (hours > 0) {
|
|
42
|
+
parts.push(`${hours}h`);
|
|
43
|
+
if (mostSignificantOnly)
|
|
44
|
+
return parts.join(' ');
|
|
45
|
+
}
|
|
46
|
+
if (minutes > 0) {
|
|
47
|
+
parts.push(`${minutes}m`);
|
|
48
|
+
if (mostSignificantOnly && hours === 0)
|
|
49
|
+
return parts.join(' ');
|
|
50
|
+
}
|
|
51
|
+
if (seconds > 0 || parts.length === 0) {
|
|
52
|
+
parts.push(`${seconds}s`);
|
|
53
|
+
}
|
|
54
|
+
return parts.join(' ');
|
|
55
|
+
}
|