@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
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DOMElement } from './dom.js';
|
|
2
|
+
type Output = {
|
|
3
|
+
/**
|
|
4
|
+
* Element width.
|
|
5
|
+
*/
|
|
6
|
+
width: number;
|
|
7
|
+
/**
|
|
8
|
+
* Element height.
|
|
9
|
+
*/
|
|
10
|
+
height: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Measure the rendered dimensions of a Box element.
|
|
14
|
+
* @param node - the DOM element to measure.
|
|
15
|
+
* @returns the element's computed width and height, or zeros before layout.
|
|
16
|
+
*/
|
|
17
|
+
declare const measureElement: (node: DOMElement) => Output;
|
|
18
|
+
export default measureElement;
|
|
19
|
+
//# sourceMappingURL=measure-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measure-element.d.ts","sourceRoot":"","sources":["../../../src/ink/measure-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,KAAK,MAAM,GAAG;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,QAAA,MAAM,cAAc,GAAI,MAAM,UAAU,KAAG,MAGzC,CAAA;AAEF,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Measure the rendered dimensions of a Box element.
|
|
3
|
+
* @param node - the DOM element to measure.
|
|
4
|
+
* @returns the element's computed width and height, or zeros before layout.
|
|
5
|
+
*/
|
|
6
|
+
const measureElement = (node) => ({
|
|
7
|
+
width: node.yogaNode?.getComputedWidth() ?? 0,
|
|
8
|
+
height: node.yogaNode?.getComputedHeight() ?? 0,
|
|
9
|
+
});
|
|
10
|
+
export default measureElement;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type Output = {
|
|
2
|
+
width: number;
|
|
3
|
+
height: number;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Measure wrapped text dimensions in a single pass.
|
|
7
|
+
* @param text - the text to measure.
|
|
8
|
+
* @param maxWidth - the wrap width in columns; non-positive or infinite disables wrapping.
|
|
9
|
+
* @returns the widest line width and the number of visual lines.
|
|
10
|
+
*/
|
|
11
|
+
declare function measureText(text: string, maxWidth: number): Output;
|
|
12
|
+
export default measureText;
|
|
13
|
+
//# sourceMappingURL=measure-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measure-text.d.ts","sourceRoot":"","sources":["../../../src/ink/measure-text.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;GAKG;AACH,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkC3D;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { lineWidth } from './line-width-cache.js';
|
|
2
|
+
/**
|
|
3
|
+
* Measure wrapped text dimensions in a single pass.
|
|
4
|
+
* @param text - the text to measure.
|
|
5
|
+
* @param maxWidth - the wrap width in columns; non-positive or infinite disables wrapping.
|
|
6
|
+
* @returns the widest line width and the number of visual lines.
|
|
7
|
+
*/
|
|
8
|
+
function measureText(text, maxWidth) {
|
|
9
|
+
if (text.length === 0) {
|
|
10
|
+
return {
|
|
11
|
+
width: 0,
|
|
12
|
+
height: 0,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// Infinite or non-positive width means no wrapping — each line is one visual line.
|
|
16
|
+
// Must check before the loop since Math.ceil(w / Infinity) = 0.
|
|
17
|
+
const noWrap = maxWidth <= 0 || !Number.isFinite(maxWidth);
|
|
18
|
+
let height = 0;
|
|
19
|
+
let width = 0;
|
|
20
|
+
let start = 0;
|
|
21
|
+
while (start <= text.length) {
|
|
22
|
+
const end = text.indexOf('\n', start);
|
|
23
|
+
const line = end === -1 ? text.substring(start) : text.substring(start, end);
|
|
24
|
+
const w = lineWidth(line);
|
|
25
|
+
width = Math.max(width, w);
|
|
26
|
+
if (noWrap) {
|
|
27
|
+
height++;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
height += w === 0 ? 1 : Math.ceil(w / maxWidth);
|
|
31
|
+
}
|
|
32
|
+
if (end === -1)
|
|
33
|
+
break;
|
|
34
|
+
start = end + 1;
|
|
35
|
+
}
|
|
36
|
+
return { width, height };
|
|
37
|
+
}
|
|
38
|
+
export default measureText;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DOMElement } from './dom.js';
|
|
2
|
+
import type { Rectangle } from './layout/geometry.js';
|
|
3
|
+
/**
|
|
4
|
+
* Cached layout bounds for each rendered node (used for blit + clearing).
|
|
5
|
+
* `top` is the yoga-local getComputedTop() — stored so ScrollBox viewport
|
|
6
|
+
* culling can skip yoga reads for clean children whose position hasn't
|
|
7
|
+
* shifted (O(dirty) instead of O(mounted) first-pass).
|
|
8
|
+
*/
|
|
9
|
+
export type CachedLayout = {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
top?: number;
|
|
15
|
+
};
|
|
16
|
+
/** Layout bounds cached per rendered node, used for blitting and clearing. */
|
|
17
|
+
export declare const nodeCache: WeakMap<DOMElement, CachedLayout>;
|
|
18
|
+
/** Rects of removed children that need clearing on next render */
|
|
19
|
+
export declare const pendingClears: WeakMap<DOMElement, Rectangle[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Register a removed child's rect for clearing on the next render, and
|
|
22
|
+
* flag the next frame when the removed node was absolutely positioned.
|
|
23
|
+
* @param parent - the parent whose removed child rect to record.
|
|
24
|
+
* @param rect - the removed child's last known bounds.
|
|
25
|
+
* @param isAbsolute - whether the removed child was absolutely positioned; disables blit next frame.
|
|
26
|
+
*/
|
|
27
|
+
export declare function addPendingClear(parent: DOMElement, rect: Rectangle, isAbsolute: boolean): void;
|
|
28
|
+
/**
|
|
29
|
+
* Read and clear the absolute-removal flag set by addPendingClear.
|
|
30
|
+
* @returns whether an absolutely positioned node was removed since the last render.
|
|
31
|
+
*/
|
|
32
|
+
export declare function consumeAbsoluteRemovedFlag(): boolean;
|
|
33
|
+
//# sourceMappingURL=node-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-cache.d.ts","sourceRoot":"","sources":["../../../src/ink/node-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,SAAS,mCAA0C,CAAA;AAEhE,kEAAkE;AAClE,eAAO,MAAM,aAAa,kCAAyC,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAIpD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Layout bounds cached per rendered node, used for blitting and clearing. */
|
|
2
|
+
export const nodeCache = new WeakMap();
|
|
3
|
+
/** Rects of removed children that need clearing on next render */
|
|
4
|
+
export const pendingClears = new WeakMap();
|
|
5
|
+
/**
|
|
6
|
+
* Set when a pendingClear is added for an absolute-positioned node.
|
|
7
|
+
* Signals renderer to disable blit for the next frame: the removed node
|
|
8
|
+
* may have painted over non-siblings (e.g. an overlay over a ScrollBox
|
|
9
|
+
* earlier in tree order), so their blits from prevScreen would restore
|
|
10
|
+
* the overlay's pixels. Normal-flow removals are already handled by
|
|
11
|
+
* hasRemovedChild at the parent level; only absolute positioning paints
|
|
12
|
+
* cross-subtree. Reset at the start of each render.
|
|
13
|
+
*/
|
|
14
|
+
let absoluteNodeRemoved = false;
|
|
15
|
+
/**
|
|
16
|
+
* Register a removed child's rect for clearing on the next render, and
|
|
17
|
+
* flag the next frame when the removed node was absolutely positioned.
|
|
18
|
+
* @param parent - the parent whose removed child rect to record.
|
|
19
|
+
* @param rect - the removed child's last known bounds.
|
|
20
|
+
* @param isAbsolute - whether the removed child was absolutely positioned; disables blit next frame.
|
|
21
|
+
*/
|
|
22
|
+
export function addPendingClear(parent, rect, isAbsolute) {
|
|
23
|
+
const existing = pendingClears.get(parent);
|
|
24
|
+
if (existing) {
|
|
25
|
+
existing.push(rect);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
pendingClears.set(parent, [rect]);
|
|
29
|
+
}
|
|
30
|
+
if (isAbsolute) {
|
|
31
|
+
absoluteNodeRemoved = true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Read and clear the absolute-removal flag set by addPendingClear.
|
|
36
|
+
* @returns whether an absolutely positioned node was removed since the last render.
|
|
37
|
+
*/
|
|
38
|
+
export function consumeAbsoluteRemovedFlag() {
|
|
39
|
+
const had = absoluteNodeRemoved;
|
|
40
|
+
absoluteNodeRemoved = false;
|
|
41
|
+
return had;
|
|
42
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Diff } from './frame.js';
|
|
2
|
+
/**
|
|
3
|
+
* Optimize a diff by applying all optimization rules in a single pass.
|
|
4
|
+
* This reduces the number of patches that need to be written to the terminal.
|
|
5
|
+
*
|
|
6
|
+
* Rules applied:
|
|
7
|
+
* - Remove empty stdout patches
|
|
8
|
+
* - Merge consecutive cursorMove patches
|
|
9
|
+
* - Remove no-op cursorMove (0,0) patches
|
|
10
|
+
* - Concat adjacent style patches (transition diffs — can't drop either)
|
|
11
|
+
* - Dedupe consecutive hyperlinks with same URI
|
|
12
|
+
* - Cancel cursor hide/show pairs
|
|
13
|
+
* - Remove clear patches with count 0
|
|
14
|
+
* @param diff - the patch list produced by the frame diff.
|
|
15
|
+
* @returns the optimized patch list, with no-ops removed and adjacent patches merged.
|
|
16
|
+
*/
|
|
17
|
+
export declare function optimize(diff: Diff): Diff;
|
|
18
|
+
//# sourceMappingURL=optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/ink/optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CA6EzC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optimize a diff by applying all optimization rules in a single pass.
|
|
3
|
+
* This reduces the number of patches that need to be written to the terminal.
|
|
4
|
+
*
|
|
5
|
+
* Rules applied:
|
|
6
|
+
* - Remove empty stdout patches
|
|
7
|
+
* - Merge consecutive cursorMove patches
|
|
8
|
+
* - Remove no-op cursorMove (0,0) patches
|
|
9
|
+
* - Concat adjacent style patches (transition diffs — can't drop either)
|
|
10
|
+
* - Dedupe consecutive hyperlinks with same URI
|
|
11
|
+
* - Cancel cursor hide/show pairs
|
|
12
|
+
* - Remove clear patches with count 0
|
|
13
|
+
* @param diff - the patch list produced by the frame diff.
|
|
14
|
+
* @returns the optimized patch list, with no-ops removed and adjacent patches merged.
|
|
15
|
+
*/
|
|
16
|
+
export function optimize(diff) {
|
|
17
|
+
if (diff.length <= 1) {
|
|
18
|
+
return diff;
|
|
19
|
+
}
|
|
20
|
+
const result = [];
|
|
21
|
+
let len = 0;
|
|
22
|
+
for (const patch of diff) {
|
|
23
|
+
const type = patch.type;
|
|
24
|
+
// Skip no-ops
|
|
25
|
+
if (type === 'stdout') {
|
|
26
|
+
if (patch.content === '')
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
else if (type === 'cursorMove') {
|
|
30
|
+
if (patch.x === 0 && patch.y === 0)
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
else if (type === 'clear') {
|
|
34
|
+
if (patch.count === 0)
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
// Try to merge with previous patch
|
|
38
|
+
if (len > 0) {
|
|
39
|
+
const lastIdx = len - 1;
|
|
40
|
+
const last = result[lastIdx];
|
|
41
|
+
const lastType = last.type;
|
|
42
|
+
// Merge consecutive cursorMove
|
|
43
|
+
if (type === 'cursorMove' && lastType === 'cursorMove') {
|
|
44
|
+
result[lastIdx] = {
|
|
45
|
+
type: 'cursorMove',
|
|
46
|
+
x: last.x + patch.x,
|
|
47
|
+
y: last.y + patch.y,
|
|
48
|
+
};
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Collapse consecutive cursorTo (only the last one matters)
|
|
52
|
+
if (type === 'cursorTo' && lastType === 'cursorTo') {
|
|
53
|
+
result[lastIdx] = patch;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Concat adjacent style patches. styleStr is a transition diff
|
|
57
|
+
// (computed by diffAnsiCodes(from, to)), not a setter — dropping
|
|
58
|
+
// the first is only sound if its undo-codes are a subset of the
|
|
59
|
+
// second's, which is NOT guaranteed. e.g. [\e[49m, \e[2m]: dropping
|
|
60
|
+
// the bg reset leaks it into the next \e[2J/\e[2K via BCE.
|
|
61
|
+
if (type === 'styleStr' && lastType === 'styleStr') {
|
|
62
|
+
result[lastIdx] = { type: 'styleStr', str: last.str + patch.str };
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
// Dedupe hyperlinks
|
|
66
|
+
if (type === 'hyperlink' &&
|
|
67
|
+
lastType === 'hyperlink' &&
|
|
68
|
+
patch.uri === last.uri) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
// Cancel cursor hide/show pairs
|
|
72
|
+
if ((type === 'cursorShow' && lastType === 'cursorHide') ||
|
|
73
|
+
(type === 'cursorHide' && lastType === 'cursorShow')) {
|
|
74
|
+
result.pop();
|
|
75
|
+
len--;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
result.push(patch);
|
|
80
|
+
len++;
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { type Rectangle } from './layout/geometry.js';
|
|
2
|
+
import { type Screen, type StylePool } from './screen.js';
|
|
3
|
+
/**
|
|
4
|
+
* A grapheme cluster with precomputed terminal width, styleId, and hyperlink.
|
|
5
|
+
* Built once per unique line (cached via charCache), so the per-char hot loop
|
|
6
|
+
* is just property reads + setCellAt — no stringWidth, no style interning,
|
|
7
|
+
* no hyperlink extraction per frame.
|
|
8
|
+
*
|
|
9
|
+
* styleId is safe to cache: StylePool is session-lived (never reset).
|
|
10
|
+
* hyperlink is stored as a string (not interned ID) since hyperlinkPool
|
|
11
|
+
* resets every 5 min; setCellAt interns it per-frame (cheap Map.get).
|
|
12
|
+
*/
|
|
13
|
+
type ClusteredChar = {
|
|
14
|
+
value: string;
|
|
15
|
+
width: number;
|
|
16
|
+
styleId: number;
|
|
17
|
+
hyperlink: string | undefined;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Bounded cache of line → clustered characters. Enforces all three guards
|
|
21
|
+
* (line-length threshold, entry count, byte budget) at insertion time, so
|
|
22
|
+
* no caller can accidentally grow it unboundedly.
|
|
23
|
+
*/
|
|
24
|
+
export declare class CharCache {
|
|
25
|
+
private map;
|
|
26
|
+
private chars;
|
|
27
|
+
/**
|
|
28
|
+
* Return the cached clustered characters for a line, if present.
|
|
29
|
+
* @param line - the line to look up.
|
|
30
|
+
* @returns the cached characters, or undefined on a miss.
|
|
31
|
+
*/
|
|
32
|
+
get(line: string): ClusteredChar[] | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Cache clustered characters for a line, enforcing the cache bounds.
|
|
35
|
+
* @param line - the line key.
|
|
36
|
+
* @param characters - the clustered characters to cache.
|
|
37
|
+
*/
|
|
38
|
+
set(line: string, characters: ClusteredChar[]): void;
|
|
39
|
+
/** Retained-key character total, exposed for diagnostics/tests. */
|
|
40
|
+
get retainedChars(): number;
|
|
41
|
+
/** Number of cached line entries. */
|
|
42
|
+
get size(): number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Collects write/blit/clear/clip operations from the render tree, then
|
|
46
|
+
* applies them to a Screen buffer in get(). The Screen is what gets
|
|
47
|
+
* diffed against the previous frame to produce terminal updates.
|
|
48
|
+
*/
|
|
49
|
+
type Options = {
|
|
50
|
+
width: number;
|
|
51
|
+
height: number;
|
|
52
|
+
stylePool: StylePool;
|
|
53
|
+
/**
|
|
54
|
+
* Screen to render into. Will be reset before use.
|
|
55
|
+
* For double-buffering, pass a reusable screen. Otherwise create a new one.
|
|
56
|
+
*/
|
|
57
|
+
screen: Screen;
|
|
58
|
+
};
|
|
59
|
+
/** A queued paint operation: write, clip, unclip, blit, clear, noSelect, or shift. */
|
|
60
|
+
export type Operation = WriteOperation | ClipOperation | UnclipOperation | BlitOperation | ClearOperation | NoSelectOperation | ShiftOperation;
|
|
61
|
+
type WriteOperation = {
|
|
62
|
+
type: 'write';
|
|
63
|
+
x: number;
|
|
64
|
+
y: number;
|
|
65
|
+
text: string;
|
|
66
|
+
/**
|
|
67
|
+
* Per-line soft-wrap flags, parallel to text.split('\n'). softWrap[i]=true
|
|
68
|
+
* means line i is a continuation of line i-1 (the `\n` before it was
|
|
69
|
+
* inserted by word-wrap, not in the source). Index 0 is always false.
|
|
70
|
+
* Undefined means the producer didn't track wrapping (e.g. fills,
|
|
71
|
+
* raw-ansi) — the screen's per-row bitmap is left untouched.
|
|
72
|
+
*/
|
|
73
|
+
softWrap?: boolean[];
|
|
74
|
+
};
|
|
75
|
+
type ClipOperation = {
|
|
76
|
+
type: 'clip';
|
|
77
|
+
clip: Clip;
|
|
78
|
+
};
|
|
79
|
+
/** A rectangular clip region; undefined on an axis means unbounded. */
|
|
80
|
+
export type Clip = {
|
|
81
|
+
x1: number | undefined;
|
|
82
|
+
x2: number | undefined;
|
|
83
|
+
y1: number | undefined;
|
|
84
|
+
y2: number | undefined;
|
|
85
|
+
};
|
|
86
|
+
type UnclipOperation = {
|
|
87
|
+
type: 'unclip';
|
|
88
|
+
};
|
|
89
|
+
type BlitOperation = {
|
|
90
|
+
type: 'blit';
|
|
91
|
+
src: Screen;
|
|
92
|
+
x: number;
|
|
93
|
+
y: number;
|
|
94
|
+
width: number;
|
|
95
|
+
height: number;
|
|
96
|
+
};
|
|
97
|
+
type ShiftOperation = {
|
|
98
|
+
type: 'shift';
|
|
99
|
+
top: number;
|
|
100
|
+
bottom: number;
|
|
101
|
+
n: number;
|
|
102
|
+
};
|
|
103
|
+
type ClearOperation = {
|
|
104
|
+
type: 'clear';
|
|
105
|
+
region: Rectangle;
|
|
106
|
+
/**
|
|
107
|
+
* Set when the clear is for an absolute-positioned node's old bounds.
|
|
108
|
+
* Absolute nodes overlay normal-flow siblings, so their stale paint is
|
|
109
|
+
* what an earlier sibling's clean-subtree blit wrongly restores from
|
|
110
|
+
* prevScreen. Normal-flow siblings' clears don't have this problem —
|
|
111
|
+
* their old position can't have been painted on top of a sibling.
|
|
112
|
+
*/
|
|
113
|
+
fromAbsolute?: boolean;
|
|
114
|
+
};
|
|
115
|
+
type NoSelectOperation = {
|
|
116
|
+
type: 'noSelect';
|
|
117
|
+
region: Rectangle;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Collects write/blit/clear/clip operations from the render tree, then
|
|
121
|
+
* applies them to a Screen buffer in get(). The Screen is what gets
|
|
122
|
+
* diffed against the previous frame to produce terminal updates.
|
|
123
|
+
*/
|
|
124
|
+
export default class Output {
|
|
125
|
+
/** Screen width in columns. */
|
|
126
|
+
width: number;
|
|
127
|
+
/** Screen height in rows. */
|
|
128
|
+
height: number;
|
|
129
|
+
private readonly stylePool;
|
|
130
|
+
private screen;
|
|
131
|
+
private readonly operations;
|
|
132
|
+
private charCache;
|
|
133
|
+
constructor(options: Options);
|
|
134
|
+
/**
|
|
135
|
+
* Reuse this Output for a new frame. Zeroes the screen buffer, clears
|
|
136
|
+
* the operation list (backing storage is retained), and caps charCache
|
|
137
|
+
* growth. Preserving charCache across frames is the main win — most
|
|
138
|
+
* lines don't change between renders, so tokenize + grapheme clustering
|
|
139
|
+
* becomes a cache hit.
|
|
140
|
+
* @param width - the new screen width in columns.
|
|
141
|
+
* @param height - the new screen height in rows.
|
|
142
|
+
* @param screen - the screen buffer to render into.
|
|
143
|
+
*/
|
|
144
|
+
reset(width: number, height: number, screen: Screen): void;
|
|
145
|
+
/**
|
|
146
|
+
* Copy cells from a source screen region (blit = block image transfer).
|
|
147
|
+
* @param src - the source screen.
|
|
148
|
+
* @param x - the destination left column.
|
|
149
|
+
* @param y - the destination top row.
|
|
150
|
+
* @param width - the region width in columns.
|
|
151
|
+
* @param height - the region height in rows.
|
|
152
|
+
*/
|
|
153
|
+
blit(src: Screen, x: number, y: number, width: number, height: number): void;
|
|
154
|
+
/**
|
|
155
|
+
* Shift full-width rows within [top, bottom] by n. n > 0 = up. Mirrors
|
|
156
|
+
* what DECSTBM + SU/SD does to the terminal. Paired with blit() to reuse
|
|
157
|
+
* prevScreen content during pure scroll, avoiding full child re-render.
|
|
158
|
+
* @param top - the first row of the shift region.
|
|
159
|
+
* @param bottom - the last row of the shift region.
|
|
160
|
+
* @param n - the shift amount; positive moves content up.
|
|
161
|
+
*/
|
|
162
|
+
shift(top: number, bottom: number, n: number): void;
|
|
163
|
+
/**
|
|
164
|
+
* Clear a region by writing empty cells. Used when a node shrinks to
|
|
165
|
+
* ensure stale content from the previous frame is removed.
|
|
166
|
+
* @param region - the region to clear.
|
|
167
|
+
* @param fromAbsolute - whether the clear is for an absolute-positioned node's old bounds.
|
|
168
|
+
*/
|
|
169
|
+
clear(region: Rectangle, fromAbsolute?: boolean): void;
|
|
170
|
+
/**
|
|
171
|
+
* Mark a region as non-selectable (excluded from fullscreen text
|
|
172
|
+
* selection copy + highlight). Used by <NoSelect> to fence off
|
|
173
|
+
* gutters (line numbers, diff sigils). Applied AFTER blit/write so
|
|
174
|
+
* the mark wins regardless of what's blitted into the region.
|
|
175
|
+
* @param region - the region to mark.
|
|
176
|
+
*/
|
|
177
|
+
noSelect(region: Rectangle): void;
|
|
178
|
+
/**
|
|
179
|
+
* Queue a text write at a position, split across lines on newlines.
|
|
180
|
+
* @param x - the left column.
|
|
181
|
+
* @param y - the top row.
|
|
182
|
+
* @param text - the text to write.
|
|
183
|
+
* @param softWrap - per-line soft-wrap flags parallel to text.split('\n').
|
|
184
|
+
*/
|
|
185
|
+
write(x: number, y: number, text: string, softWrap?: boolean[]): void;
|
|
186
|
+
/**
|
|
187
|
+
* Push a clip region; subsequent writes are restricted to it.
|
|
188
|
+
* @param clip - the clip region to apply.
|
|
189
|
+
*/
|
|
190
|
+
clip(clip: Clip): void;
|
|
191
|
+
/** Pop the most recent clip region. */
|
|
192
|
+
unclip(): void;
|
|
193
|
+
/**
|
|
194
|
+
* Apply all queued operations to the screen buffer and return it.
|
|
195
|
+
* @returns the rendered screen, diffable against the previous frame.
|
|
196
|
+
*/
|
|
197
|
+
get(): Screen;
|
|
198
|
+
}
|
|
199
|
+
export {};
|
|
200
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/ink/output.ts"],"names":[],"mappings":"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"}
|