@linxiraos/pi-tui 1.1.26 → 1.2.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/CHANGELOG.md +51 -491
- package/README.md +13 -7
- package/dist/types/active-terminal.d.ts +30 -0
- package/dist/types/app-keybindings.d.ts +7 -2
- package/dist/types/apps/cleanse-board.d.ts +1 -1
- package/dist/types/apps/debug/log-viewer.d.ts +4 -0
- package/dist/types/apps/debug/raw-sse-buffer.d.ts +2 -0
- package/dist/types/apps/git/git-tui.d.ts +5 -4
- package/dist/types/apps/git/help.d.ts +3 -1
- package/dist/types/apps/if-bench-board.d.ts +2 -2
- package/dist/types/apps/setup-model-picker.d.ts +1 -1
- package/dist/types/autocomplete.d.ts +5 -2
- package/dist/types/charts/chart-plan.d.ts +674 -0
- package/dist/types/charts/chart-svg.d.ts +59 -0
- package/dist/types/charts/table-data.d.ts +175 -0
- package/dist/types/chat/assistant-message.d.ts +11 -1
- package/dist/types/chat/chat-transcript-builder.d.ts +3 -0
- package/dist/types/chat/compaction-summary-message.d.ts +1 -0
- package/dist/types/chat/execution-shared.d.ts +6 -5
- package/dist/types/chat/fence-figure.d.ts +42 -0
- package/dist/types/chat/figure-markdown.d.ts +42 -0
- package/dist/types/chat/messages.d.ts +1 -1
- package/dist/types/chat/svg-figure.d.ts +33 -0
- package/dist/types/chat/svg-source.d.ts +49 -0
- package/dist/types/chat/table-chart.d.ts +89 -0
- package/dist/types/chat/tool-execution.d.ts +2 -0
- package/dist/types/chat/user-message.d.ts +17 -4
- package/dist/types/chrome/shared.d.ts +9 -0
- package/dist/types/chrome/status-notice.d.ts +15 -3
- package/dist/types/chrome/transcript-container.d.ts +6 -0
- package/dist/types/components/box.d.ts +1 -0
- package/dist/types/components/disclosure.d.ts +1 -0
- package/dist/types/components/editor.d.ts +23 -5
- package/dist/types/components/form.d.ts +1 -0
- package/dist/types/components/image.d.ts +26 -44
- package/dist/types/components/input.d.ts +2 -1
- package/dist/types/components/key-value-list.d.ts +1 -0
- package/dist/types/components/layout/row.d.ts +1 -0
- package/dist/types/components/layout/stack.d.ts +1 -0
- package/dist/types/components/loader.d.ts +5 -6
- package/dist/types/components/markdown.d.ts +47 -5
- package/dist/types/components/scroll-view.d.ts +1 -0
- package/dist/types/components/section.d.ts +1 -0
- package/dist/types/components/table.d.ts +1 -0
- package/dist/types/components/text.d.ts +1 -0
- package/dist/types/components/tree-view.d.ts +7 -0
- package/dist/types/components/truncated-text.d.ts +1 -0
- package/dist/types/fuzzy.d.ts +29 -1
- package/dist/types/key-hint-format.d.ts +9 -1
- package/dist/types/keybinding-matchers.d.ts +3 -0
- package/dist/types/keybindings.d.ts +1 -1
- package/dist/types/kitty-graphics.d.ts +2 -2
- package/dist/types/loop-watchdog.d.ts +8 -7
- package/dist/types/multiplexers/cmux.d.ts +16 -0
- package/dist/types/multiplexers/herdr.d.ts +26 -0
- package/dist/types/multiplexers/notify.d.ts +13 -0
- package/dist/types/multiplexers/orca.d.ts +12 -0
- package/dist/types/multiplexers/screen.d.ts +9 -0
- package/dist/types/multiplexers/tmux.d.ts +29 -0
- package/dist/types/multiplexers/types.d.ts +100 -0
- package/dist/types/multiplexers/wmux.d.ts +12 -0
- package/dist/types/multiplexers/zellij.d.ts +12 -0
- package/dist/types/native/apply.d.ts +4 -3
- package/dist/types/native/backend.d.ts +5 -4
- package/dist/types/native/blobs.d.ts +7 -3
- package/dist/types/native/encode.d.ts +8 -6
- package/dist/types/native/node.d.ts +36 -5
- package/dist/types/native/overlay.d.ts +8 -3
- package/dist/types/native/settle.d.ts +4 -3
- package/dist/types/overlays/agent-hub-projection.d.ts +6 -5
- package/dist/types/overlays/agent-hub-types.d.ts +9 -0
- package/dist/types/overlays/agent-hub.d.ts +3 -0
- package/dist/types/overlays/agent-transcript-viewer.d.ts +12 -2
- package/dist/types/overlays/agents-hub.d.ts +9 -0
- package/dist/types/overlays/annotation-overlay.d.ts +19 -2
- package/dist/types/overlays/annotation-types.d.ts +2 -0
- package/dist/types/overlays/ask-dialog.d.ts +5 -2
- package/dist/types/overlays/btw-history-panel.d.ts +13 -1
- package/dist/types/overlays/copy-selector.d.ts +1 -0
- package/dist/types/overlays/history-search.d.ts +10 -0
- package/dist/types/overlays/hook-selector.d.ts +9 -4
- package/dist/types/overlays/hub-frame.d.ts +4 -1
- package/dist/types/overlays/jobs-panel.d.ts +1 -7
- package/dist/types/overlays/model-browser.d.ts +54 -7
- package/dist/types/overlays/model-hub.d.ts +37 -0
- package/dist/types/overlays/oauth-selector.d.ts +0 -1
- package/dist/types/overlays/plan-review-overlay.d.ts +3 -2
- package/dist/types/overlays/report-panel.d.ts +68 -0
- package/dist/types/overlays/rewind-selector.d.ts +1 -0
- package/dist/types/overlays/session-observer-registry.d.ts +2 -0
- package/dist/types/overlays/session-selector.d.ts +6 -2
- package/dist/types/overlays/settings-defs.d.ts +1 -0
- package/dist/types/overlays/thinking-selector.d.ts +2 -2
- package/dist/types/overlays/usage-dashboard.d.ts +12 -8
- package/dist/types/overlays/usage-display.d.ts +3 -1
- package/dist/types/prompt/composer-cache.d.ts +0 -16
- package/dist/types/prompt/composer.d.ts +18 -3
- package/dist/types/prompt/custom-editor.d.ts +25 -13
- package/dist/types/prompt/image-source.d.ts +2 -1
- package/dist/types/prompt/interactive-context-helpers.d.ts +5 -1
- package/dist/types/prompt/model-mention-autocomplete.d.ts +1 -1
- package/dist/types/prompt/welcome.d.ts +7 -2
- package/dist/types/render/composite.d.ts +2 -0
- package/dist/types/render/output-pane.d.ts +1 -0
- package/dist/types/render/render-utils.d.ts +1 -0
- package/dist/types/render/tool-card.d.ts +6 -0
- package/dist/types/render/width-aware-text.d.ts +2 -0
- package/dist/types/setup/scenes/types.d.ts +1 -0
- package/dist/types/space-hold.d.ts +40 -25
- package/dist/types/status-line/component.d.ts +3 -0
- package/dist/types/status-line/context-usage.d.ts +7 -5
- package/dist/types/status-line/host.d.ts +4 -1
- package/dist/types/status-line/segments.d.ts +2 -0
- package/dist/types/status-line/types.d.ts +14 -3
- package/dist/types/terminal-capabilities.d.ts +41 -36
- package/dist/types/terminal-multiplexer.d.ts +127 -14
- package/dist/types/terminal.d.ts +23 -16
- package/dist/types/theme/active-symbols.d.ts +1 -1
- package/dist/types/theme/schema.d.ts +11 -2
- package/dist/types/theme/symbols.d.ts +1 -1
- package/dist/types/theme/theme-class.d.ts +7 -0
- package/dist/types/theme/theme.d.ts +1 -1
- package/dist/types/theme/tui-adapters.d.ts +3 -0
- package/dist/types/thinking.d.ts +1 -1
- package/dist/types/tmux.d.ts +11 -4
- package/dist/types/tools/bash.d.ts +7 -2
- package/dist/types/tools/daemon.d.ts +1 -1
- package/dist/types/tools/eval.d.ts +22 -3
- package/dist/types/tools/glob.d.ts +4 -0
- package/dist/types/tools/native-view.d.ts +47 -0
- package/dist/types/tools/output-meta.d.ts +11 -1
- package/dist/types/tools/renderer.d.ts +37 -2
- package/dist/types/tools/streaming-output.d.ts +20 -1
- package/dist/types/tools/task.d.ts +2 -3
- package/dist/types/tools/write.d.ts +9 -2
- package/dist/types/tools/yield.d.ts +22 -0
- package/dist/types/tui.d.ts +36 -0
- package/dist/types/utils.d.ts +6 -0
- package/dist/types/vim.d.ts +19 -5
- package/dist/types/windows-input-mode.d.ts +33 -1
- package/package.json +13 -9
- package/src/active-terminal.d.ts +30 -0
- package/src/active-terminal.ts +80 -0
- package/src/app-keybindings.d.ts +7 -2
- package/src/app-keybindings.ts +7 -2
- package/src/apps/autoresearch-dashboard.ts +7 -3
- package/src/apps/cleanse-board.ts +2 -2
- package/src/apps/cleanse-picker.ts +1 -1
- package/src/apps/debug/log-viewer.ts +188 -72
- package/src/apps/debug/raw-sse-buffer.ts +8 -0
- package/src/apps/debug/raw-sse.ts +39 -5
- package/src/apps/git/diff-pane.ts +96 -23
- package/src/apps/git/git-tui.ts +23 -16
- package/src/apps/git/help.ts +29 -20
- package/src/apps/git/sidebar.ts +8 -3
- package/src/apps/if-bench-board.ts +2 -2
- package/src/apps/ps-top.ts +2 -2
- package/src/apps/setup-model-picker.ts +1 -1
- package/src/autocomplete.d.ts +5 -2
- package/src/autocomplete.ts +67 -43
- package/src/bracketed-paste.ts +10 -3
- package/src/charts/chart-plan.d.ts +674 -0
- package/src/charts/chart-plan.ts +5081 -0
- package/src/charts/chart-svg.d.ts +59 -0
- package/src/charts/chart-svg.ts +4657 -0
- package/src/charts/table-data.d.ts +175 -0
- package/src/charts/table-data.ts +1478 -0
- package/src/chat/advisor-message.ts +11 -0
- package/src/chat/assistant-message.d.ts +11 -1
- package/src/chat/assistant-message.ts +245 -54
- package/src/chat/chat-transcript-builder.d.ts +3 -0
- package/src/chat/chat-transcript-builder.ts +9 -3
- package/src/chat/compaction-summary-message.d.ts +1 -0
- package/src/chat/compaction-summary-message.ts +8 -0
- package/src/chat/execution-shared.d.ts +6 -5
- package/src/chat/execution-shared.ts +42 -25
- package/src/chat/fence-figure.d.ts +42 -0
- package/src/chat/fence-figure.ts +80 -0
- package/src/chat/figure-markdown.d.ts +42 -0
- package/src/chat/figure-markdown.ts +174 -0
- package/src/chat/messages.d.ts +1 -1
- package/src/chat/messages.ts +1 -1
- package/src/chat/read-tool-group.ts +6 -4
- package/src/chat/skill-message.ts +6 -0
- package/src/chat/svg-figure.d.ts +33 -0
- package/src/chat/svg-figure.ts +399 -0
- package/src/chat/svg-source.d.ts +49 -0
- package/src/chat/svg-source.ts +188 -0
- package/src/chat/table-chart.d.ts +89 -0
- package/src/chat/table-chart.ts +294 -0
- package/src/chat/tool-execution.d.ts +2 -0
- package/src/chat/tool-execution.ts +86 -7
- package/src/chat/user-message.d.ts +17 -4
- package/src/chat/user-message.ts +71 -8
- package/src/chrome/shared.ts +53 -0
- package/src/chrome/status-notice.ts +25 -7
- package/src/chrome/transcript-container.d.ts +6 -0
- package/src/chrome/transcript-container.ts +162 -19
- package/src/components/box.d.ts +1 -0
- package/src/components/box.ts +5 -0
- package/src/components/disclosure.d.ts +1 -0
- package/src/components/disclosure.ts +8 -0
- package/src/components/editor.d.ts +23 -5
- package/src/components/editor.ts +316 -47
- package/src/components/form.d.ts +1 -0
- package/src/components/form.ts +8 -0
- package/src/components/image.d.ts +26 -44
- package/src/components/image.ts +115 -152
- package/src/components/input.d.ts +2 -1
- package/src/components/input.ts +17 -7
- package/src/components/key-value-list.d.ts +1 -0
- package/src/components/key-value-list.ts +4 -0
- package/src/components/layout/row.d.ts +1 -0
- package/src/components/layout/row.ts +7 -0
- package/src/components/layout/stack.d.ts +1 -0
- package/src/components/layout/stack.ts +7 -0
- package/src/components/loader.d.ts +5 -6
- package/src/components/loader.ts +10 -17
- package/src/components/markdown.d.ts +47 -5
- package/src/components/markdown.ts +786 -303
- package/src/components/scroll-view.d.ts +1 -0
- package/src/components/scroll-view.ts +5 -0
- package/src/components/section.d.ts +1 -0
- package/src/components/section.ts +5 -0
- package/src/components/settings-list.ts +2 -0
- package/src/components/table.d.ts +1 -0
- package/src/components/table.ts +4 -0
- package/src/components/text.d.ts +1 -0
- package/src/components/text.ts +7 -0
- package/src/components/tree-view.d.ts +7 -0
- package/src/components/tree-view.ts +38 -8
- package/src/components/truncated-text.d.ts +1 -0
- package/src/components/truncated-text.ts +5 -0
- package/src/desktop-notify.ts +3 -2
- package/src/fuzzy.d.ts +29 -1
- package/src/fuzzy.ts +115 -30
- package/src/hotkeys-markdown.ts +9 -2
- package/src/key-hint-format.d.ts +9 -1
- package/src/key-hint-format.ts +26 -11
- package/src/keybinding-matchers.d.ts +3 -0
- package/src/keybinding-matchers.ts +6 -2
- package/src/keybindings.d.ts +1 -1
- package/src/keybindings.ts +1 -1
- package/src/kitty-graphics.d.ts +2 -2
- package/src/kitty-graphics.ts +11 -5
- package/src/loop-watchdog.d.ts +8 -7
- package/src/loop-watchdog.ts +18 -13
- package/src/multiplexers/cmux.d.ts +16 -0
- package/src/multiplexers/cmux.ts +29 -0
- package/src/multiplexers/herdr.d.ts +26 -0
- package/src/multiplexers/herdr.ts +64 -0
- package/src/multiplexers/notify.d.ts +13 -0
- package/src/multiplexers/notify.ts +24 -0
- package/src/multiplexers/orca.d.ts +12 -0
- package/src/multiplexers/orca.ts +16 -0
- package/src/multiplexers/screen.d.ts +9 -0
- package/src/multiplexers/screen.ts +15 -0
- package/src/multiplexers/tmux.d.ts +29 -0
- package/src/multiplexers/tmux.ts +40 -0
- package/src/multiplexers/types.d.ts +100 -0
- package/src/multiplexers/types.ts +110 -0
- package/src/multiplexers/wmux.d.ts +12 -0
- package/src/multiplexers/wmux.ts +16 -0
- package/src/multiplexers/zellij.d.ts +12 -0
- package/src/multiplexers/zellij.ts +24 -0
- package/src/native/apply.d.ts +4 -3
- package/src/native/apply.ts +4 -3
- package/src/native/backend.d.ts +5 -4
- package/src/native/backend.ts +199 -22
- package/src/native/blobs.d.ts +7 -3
- package/src/native/blobs.ts +47 -12
- package/src/native/encode.d.ts +8 -6
- package/src/native/encode.ts +76 -34
- package/src/native/node.d.ts +36 -5
- package/src/native/node.ts +31 -5
- package/src/native/overlay.d.ts +8 -3
- package/src/native/overlay.ts +17 -4
- package/src/native/reconcile.ts +16 -4
- package/src/native/settle.d.ts +4 -3
- package/src/native/settle.ts +4 -3
- package/src/overlays/agent-hub-projection.d.ts +6 -5
- package/src/overlays/agent-hub-projection.ts +124 -13
- package/src/overlays/agent-hub-types.d.ts +9 -0
- package/src/overlays/agent-hub-types.ts +6 -0
- package/src/overlays/agent-hub.ts +48 -29
- package/src/overlays/agent-transcript-viewer.ts +93 -23
- package/src/overlays/agents-hub.ts +28 -8
- package/src/overlays/annotation-overlay.ts +293 -90
- package/src/overlays/annotation-types.ts +2 -0
- package/src/overlays/ask-dialog.ts +10 -17
- package/src/overlays/btw-history-panel.ts +136 -39
- package/src/overlays/copy-selector.d.ts +1 -0
- package/src/overlays/copy-selector.ts +32 -8
- package/src/overlays/extensions/extension-dashboard.ts +4 -4
- package/src/overlays/extensions/state-manager.ts +52 -12
- package/src/overlays/history-search.ts +100 -7
- package/src/overlays/hook-selector.ts +12 -5
- package/src/overlays/hub-frame.ts +19 -1
- package/src/overlays/jobs-panel.ts +33 -52
- package/src/overlays/model-browser.ts +367 -122
- package/src/overlays/model-hub.ts +435 -59
- package/src/overlays/move-overlay.ts +28 -14
- package/src/overlays/oauth-selector.ts +54 -70
- package/src/overlays/pause-screen.ts +2 -2
- package/src/overlays/plan-review-overlay.ts +208 -70
- package/src/overlays/plugin-settings.ts +3 -3
- package/src/overlays/report-panel.ts +191 -0
- package/src/overlays/rewind-selector.ts +88 -17
- package/src/overlays/session-observer-registry.d.ts +2 -0
- package/src/overlays/session-observer-registry.ts +10 -2
- package/src/overlays/session-selector.ts +64 -26
- package/src/overlays/settings-defs.ts +5 -4
- package/src/overlays/settings-selector.ts +33 -8
- package/src/overlays/snapcompact-shape-preview.ts +2 -3
- package/src/overlays/stats-notice.ts +1 -1
- package/src/overlays/thinking-selector.ts +11 -10
- package/src/overlays/tree-selector.ts +41 -20
- package/src/overlays/usage-dashboard.ts +117 -58
- package/src/overlays/usage-display.ts +10 -4
- package/src/overlays/usage-row.ts +22 -8
- package/src/prompt/attachment-chips.ts +15 -11
- package/src/prompt/composer-attachments.ts +6 -4
- package/src/prompt/composer-cache.ts +7 -86
- package/src/prompt/composer.ts +37 -26
- package/src/prompt/custom-editor.ts +282 -105
- package/src/prompt/image-source.ts +2 -1
- package/src/prompt/interactive-context-helpers.ts +32 -18
- package/src/prompt/macos-spelling.ts +7 -0
- package/src/prompt/magic-keywords.ts +11 -2
- package/src/prompt/model-mention-autocomplete.ts +14 -14
- package/src/prompt/queued-messages.ts +6 -4
- package/src/prompt/tips.txt +13 -9
- package/src/prompt/welcome.ts +64 -46
- package/src/prompt/word-completion.ts +38 -5
- package/src/render/composite.d.ts +2 -0
- package/src/render/composite.ts +64 -0
- package/src/render/output-pane.d.ts +1 -0
- package/src/render/output-pane.ts +6 -0
- package/src/render/render-utils.d.ts +1 -0
- package/src/render/render-utils.ts +16 -1
- package/src/render/tool-card.d.ts +6 -0
- package/src/render/tool-card.ts +15 -0
- package/src/render/width-aware-text.d.ts +2 -0
- package/src/render/width-aware-text.ts +5 -0
- package/src/setup/scenes/model.ts +2 -1
- package/src/setup/scenes/types.ts +1 -0
- package/src/space-hold.d.ts +40 -25
- package/src/space-hold.ts +156 -52
- package/src/status-line/component.ts +292 -78
- package/src/status-line/context-usage.ts +21 -46
- package/src/status-line/host.ts +4 -1
- package/src/status-line/segments.ts +40 -22
- package/src/status-line/types.ts +15 -3
- package/src/terminal-capabilities.d.ts +41 -36
- package/src/terminal-capabilities.ts +137 -213
- package/src/terminal-multiplexer.d.ts +127 -14
- package/src/terminal-multiplexer.ts +112 -33
- package/src/terminal.d.ts +23 -16
- package/src/terminal.ts +203 -99
- package/src/theme/active-symbols.d.ts +1 -1
- package/src/theme/active-symbols.ts +1 -1
- package/src/theme/schema-validation.ts +1 -0
- package/src/theme/schema.d.ts +11 -2
- package/src/theme/schema.ts +14 -1
- package/src/theme/session-color.ts +1 -7
- package/src/theme/symbols.d.ts +1 -1
- package/src/theme/symbols.ts +11 -4
- package/src/theme/theme-class.d.ts +7 -0
- package/src/theme/theme-class.ts +26 -1
- package/src/theme/theme-schema.json +5 -1
- package/src/theme/theme.d.ts +1 -1
- package/src/theme/theme.ts +8 -4
- package/src/theme/tui-adapters.d.ts +3 -0
- package/src/theme/tui-adapters.ts +68 -0
- package/src/thinking.d.ts +1 -1
- package/src/thinking.ts +1 -1
- package/src/tmux.d.ts +11 -4
- package/src/tmux.ts +47 -11
- package/src/tools/ast-edit.ts +59 -35
- package/src/tools/ast-grep.ts +35 -16
- package/src/tools/bash.d.ts +7 -2
- package/src/tools/bash.ts +116 -47
- package/src/tools/daemon.d.ts +1 -1
- package/src/tools/daemon.ts +1 -1
- package/src/tools/default-renderer.ts +35 -19
- package/src/tools/edit.ts +142 -120
- package/src/tools/eval-format/index.ts +28 -2
- package/src/tools/eval-format/javascript.ts +7 -5
- package/src/tools/eval.d.ts +22 -3
- package/src/tools/eval.ts +364 -208
- package/src/tools/fetch.ts +5 -6
- package/src/tools/glob.d.ts +4 -0
- package/src/tools/glob.ts +33 -65
- package/src/tools/grep.ts +81 -48
- package/src/tools/index.ts +2 -0
- package/src/tools/lsp.ts +81 -59
- package/src/tools/mcp.ts +111 -68
- package/src/tools/native-view.d.ts +47 -0
- package/src/tools/native-view.ts +102 -1
- package/src/tools/output-meta.d.ts +11 -1
- package/src/tools/output-meta.ts +23 -3
- package/src/tools/read.ts +7 -5
- package/src/tools/renderer.d.ts +37 -2
- package/src/tools/renderer.ts +42 -2
- package/src/tools/streaming-output.d.ts +20 -1
- package/src/tools/streaming-output.ts +154 -50
- package/src/tools/task.d.ts +2 -3
- package/src/tools/task.ts +115 -62
- package/src/tools/todo.ts +119 -30
- package/src/tools/wait.ts +34 -24
- package/src/tools/web-search.ts +1 -1
- package/src/tools/write.d.ts +9 -2
- package/src/tools/write.ts +147 -95
- package/src/tools/yield.d.ts +22 -0
- package/src/tools/yield.ts +225 -0
- package/src/tui.d.ts +36 -0
- package/src/tui.ts +666 -217
- package/src/utils.d.ts +6 -0
- package/src/utils.ts +19 -0
- package/src/vim.d.ts +19 -5
- package/src/vim.ts +333 -18
- package/src/windows-input-mode.d.ts +33 -1
- package/src/windows-input-mode.ts +212 -6
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { KeyId } from "../keys";
|
|
1
2
|
import type { DescribeContext, NativeNode, NativeUiEvent } from "../native/node";
|
|
2
3
|
import { type ShimmerPalette } from "../theme/shimmer";
|
|
3
4
|
import type { TUI } from "../tui";
|
|
@@ -23,16 +24,14 @@ export interface WorkingRowSpec {
|
|
|
23
24
|
readonly variant?: WorkingRowVariant;
|
|
24
25
|
/** Shimmer palette of the label (a session-accented intent). */
|
|
25
26
|
readonly palette?: ShimmerPalette;
|
|
26
|
-
/** Live tok/s, docked before the stop control. */
|
|
27
|
-
readonly rate?: number;
|
|
28
27
|
/** Key id that interrupts (`escape`); undefined hides the stop control (Esc would not cancel). */
|
|
29
|
-
readonly interruptKey?:
|
|
28
|
+
readonly interruptKey?: KeyId;
|
|
30
29
|
}
|
|
31
30
|
/**
|
|
32
31
|
* The dock's working row: `starburst` spinner (or a retry countdown ring),
|
|
33
|
-
* the
|
|
34
|
-
* control whose click sends `interrupt`. Compaction adds an
|
|
35
|
-
* `progress` before the stop control; a retry says "Cancel".
|
|
32
|
+
* the elapsed time, the `·` divider, the intent shimmering, a grow spacer,
|
|
33
|
+
* then the stop control whose click sends `interrupt`. Compaction adds an
|
|
34
|
+
* indeterminate `progress` before the stop control; a retry says "Cancel".
|
|
36
35
|
*/
|
|
37
36
|
export declare function describeWorkingRow(spec: WorkingRowSpec, cx: DescribeContext, now?: number): NativeNode;
|
|
38
37
|
type ColorFn = (str: string) => string;
|
package/src/components/loader.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { TspProps } from "@linxiraos/pi-wire";
|
|
2
|
+
import { formatTooltipKey } from "../key-hint-format";
|
|
3
|
+
import type { KeyId } from "../keys";
|
|
2
4
|
import { elapsed, kbd, keyed, node, row, span, text } from "../native/describe";
|
|
3
5
|
import { plainText } from "../native/spans";
|
|
4
6
|
import type { DescribeContext, NativeChild, NativeNode, NativeUiEvent } from "../native/node";
|
|
@@ -38,22 +40,15 @@ export interface WorkingRowSpec {
|
|
|
38
40
|
readonly variant?: WorkingRowVariant;
|
|
39
41
|
/** Shimmer palette of the label (a session-accented intent). */
|
|
40
42
|
readonly palette?: ShimmerPalette;
|
|
41
|
-
/** Live tok/s, docked before the stop control. */
|
|
42
|
-
readonly rate?: number;
|
|
43
43
|
/** Key id that interrupts (`escape`); undefined hides the stop control (Esc would not cancel). */
|
|
44
|
-
readonly interruptKey?:
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** A key id as tooltip keys: `escape` reads `esc`, the rest as bound. */
|
|
48
|
-
function titleKey(key: string): string {
|
|
49
|
-
return key === "escape" ? "esc" : key;
|
|
44
|
+
readonly interruptKey?: KeyId;
|
|
50
45
|
}
|
|
51
46
|
|
|
52
47
|
/**
|
|
53
48
|
* The dock's working row: `starburst` spinner (or a retry countdown ring),
|
|
54
|
-
* the
|
|
55
|
-
* control whose click sends `interrupt`. Compaction adds an
|
|
56
|
-
* `progress` before the stop control; a retry says "Cancel".
|
|
49
|
+
* the elapsed time, the `·` divider, the intent shimmering, a grow spacer,
|
|
50
|
+
* then the stop control whose click sends `interrupt`. Compaction adds an
|
|
51
|
+
* indeterminate `progress` before the stop control; a retry says "Cancel".
|
|
57
52
|
*/
|
|
58
53
|
export function describeWorkingRow(spec: WorkingRowSpec, cx: DescribeContext, now = Date.now()): NativeNode {
|
|
59
54
|
const variant = spec.variant;
|
|
@@ -67,13 +62,12 @@ export function describeWorkingRow(spec: WorkingRowSpec, cx: DescribeContext, no
|
|
|
67
62
|
}
|
|
68
63
|
const label = describeShimmer([{ text: spec.label, palette: spec.palette }], "label");
|
|
69
64
|
children.push(
|
|
70
|
-
node(label.k, { ...label.p, role: "zeta.working.label" } as TspProps, label.c, label.key),
|
|
71
|
-
node("text", { text: "·", role: "zeta.working.sep" }, undefined, "sep"),
|
|
72
65
|
keyed(elapsed(now - spec.startedAt), "elapsed"),
|
|
66
|
+
node("text", { text: "·", role: "zeta.working.sep" }, undefined, "sep"),
|
|
67
|
+
node(label.k, { ...label.p, role: "zeta.working.label" } as TspProps, label.c, label.key),
|
|
73
68
|
node("row", { grow: 1 }, undefined, "fill"),
|
|
74
69
|
);
|
|
75
70
|
if (variant?.kind === "compaction") children.push(node("progress", { value: null }, undefined, "progress"));
|
|
76
|
-
if (spec.rate !== undefined) children.push(node("rate", { value: spec.rate, unit: "tok/s" }, undefined, "rate"));
|
|
77
71
|
if (spec.interruptKey !== undefined) {
|
|
78
72
|
const verb = variant?.kind === "retry" ? "Cancel" : "Stop";
|
|
79
73
|
children.push(
|
|
@@ -83,10 +77,10 @@ export function describeWorkingRow(spec: WorkingRowSpec, cx: DescribeContext, no
|
|
|
83
77
|
role: "zeta.working.stop",
|
|
84
78
|
gap: "xs",
|
|
85
79
|
align: "center",
|
|
86
|
-
title: `${verb} ${
|
|
80
|
+
title: `${verb} ${formatTooltipKey(spec.interruptKey)}`,
|
|
87
81
|
actions: { click: "interrupt" },
|
|
88
82
|
},
|
|
89
|
-
[kbd(
|
|
83
|
+
[kbd(spec.interruptKey), text(verb)],
|
|
90
84
|
"stop",
|
|
91
85
|
),
|
|
92
86
|
);
|
|
@@ -285,7 +279,6 @@ export class Loader extends Text {
|
|
|
285
279
|
variant?.kind,
|
|
286
280
|
variant?.kind === "retry" ? `${variant.attempt}/${variant.max}` : "",
|
|
287
281
|
countdown,
|
|
288
|
-
spec.rate,
|
|
289
282
|
spec.interruptKey,
|
|
290
283
|
spec.palette?.mid,
|
|
291
284
|
shimmerEnabled(),
|
|
@@ -1,11 +1,27 @@
|
|
|
1
|
+
import { type TokensList } from "@linxiraos/pi-utils/marked";
|
|
1
2
|
import type { DescribeContext, NativeNode } from "../native/node";
|
|
2
3
|
import type { SymbolTheme } from "../symbols";
|
|
3
4
|
import type { Component } from "../tui";
|
|
4
|
-
/** @internal exported for tests — the grown-line
|
|
5
|
+
/** @internal exported for tests — the grown-line block-kind gate. */
|
|
5
6
|
export declare function fastLineStartHazard(grownLine: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Lex a whole document with the renderer's rules (math, custom rules,
|
|
9
|
+
* strikethrough). Callers that split a document along its blocks (table
|
|
10
|
+
* charts) lex through this so they see the blocks Markdown renders.
|
|
11
|
+
*/
|
|
12
|
+
export declare function lexDocument(text: string): TokensList;
|
|
13
|
+
/**
|
|
14
|
+
* `source` as a fenced code block in `lang`: the fence is one backtick longer
|
|
15
|
+
* than any backtick run in the source (at least three), so the block always
|
|
16
|
+
* closes where intended. `open` leaves it unclosed, the source verbatim, for
|
|
17
|
+
* a body that is still arriving.
|
|
18
|
+
*/
|
|
19
|
+
export declare function fencedCode(lang: string, source: string, options?: {
|
|
20
|
+
open?: boolean;
|
|
21
|
+
}): string;
|
|
6
22
|
/** A hyperlink as the renderer sees it: inline `[text](href)`, `<autolink>`, bare GFM URL, or reference link. */
|
|
7
23
|
export interface MarkdownLink {
|
|
8
|
-
/**
|
|
24
|
+
/** Flattened visible label with whitespace collapsed to one row; falls back to `href` when empty. */
|
|
9
25
|
text: string;
|
|
10
26
|
/** Destination exactly as marked resolved it (references resolved, no normalization). */
|
|
11
27
|
href: string;
|
|
@@ -17,6 +33,17 @@ export interface MarkdownLink {
|
|
|
17
33
|
* Duplicate hrefs are kept; callers decide how to fold them.
|
|
18
34
|
*/
|
|
19
35
|
export declare function extractMarkdownLinks(text: string): MarkdownLink[];
|
|
36
|
+
/**
|
|
37
|
+
* Rewrite the destinations of inline links and link reference definitions in
|
|
38
|
+
* `text` to `resolve(href)`, leaving everything else byte-for-byte intact.
|
|
39
|
+
* Hosts that render the Markdown source themselves (a native terminal's `md`
|
|
40
|
+
* node) resolve relative destinations against their own idea of the working
|
|
41
|
+
* directory; handing them the session-resolved target keeps links pointing at
|
|
42
|
+
* what the author meant. Links inside code, images, autolinks and reference
|
|
43
|
+
* uses (`[x][ref]`, rewritten through their definition) are untouched; a link
|
|
44
|
+
* whose source cannot be located exactly is left as written.
|
|
45
|
+
*/
|
|
46
|
+
export declare function rewriteMarkdownLinkDestinations(text: string, resolve: (href: string) => string | undefined): string;
|
|
20
47
|
/** Drop all L2 cache entries. Call on theme change to prevent stale styled output. */
|
|
21
48
|
export declare function clearRenderCache(): void;
|
|
22
49
|
/**
|
|
@@ -26,6 +53,13 @@ export declare function clearRenderCache(): void;
|
|
|
26
53
|
export interface DefaultTextStyle {
|
|
27
54
|
/** Foreground color function */
|
|
28
55
|
color?: (text: string) => string;
|
|
56
|
+
/**
|
|
57
|
+
* The `color` foreground is prose-level: semantically-themed markdown spans
|
|
58
|
+
* (headings, links) keep their own `md*` theme colors instead of being
|
|
59
|
+
* painted over by it, while plain text runs still use `color`. Unset keeps
|
|
60
|
+
* the historical behavior where `color` paints every run.
|
|
61
|
+
*/
|
|
62
|
+
proseFg?: boolean;
|
|
29
63
|
/** Background color function */
|
|
30
64
|
bgColor?: (text: string) => string;
|
|
31
65
|
/** Bold text */
|
|
@@ -82,7 +116,12 @@ export interface MarkdownTheme {
|
|
|
82
116
|
* Return null to fall back to fenced code rendering.
|
|
83
117
|
*/
|
|
84
118
|
resolveMermaidAscii?: (source: string, maxWidth?: number) => string | null;
|
|
85
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Glyphs for quote borders, rules, tables and color swatches. Optional so themes
|
|
121
|
+
* built to the upstream pi-tui `MarkdownTheme` shape (which has no `symbols`)
|
|
122
|
+
* still render; omitted symbols fall back to the active theme's set.
|
|
123
|
+
*/
|
|
124
|
+
symbols?: SymbolTheme;
|
|
86
125
|
}
|
|
87
126
|
export declare class Markdown implements Component {
|
|
88
127
|
#private;
|
|
@@ -92,6 +131,7 @@ export declare class Markdown implements Component {
|
|
|
92
131
|
debugState(): Record<string, unknown>;
|
|
93
132
|
setText(text: string): boolean;
|
|
94
133
|
invalidate(): void;
|
|
134
|
+
releaseRenderCaches(): void;
|
|
95
135
|
/**
|
|
96
136
|
* The unrendered source as an `md` node, `stream` while the streaming
|
|
97
137
|
* (transient) cache is on. Append-only growth yields a fresh node of the
|
|
@@ -101,8 +141,10 @@ export declare class Markdown implements Component {
|
|
|
101
141
|
describe(_cx: DescribeContext): NativeNode;
|
|
102
142
|
/**
|
|
103
143
|
* Width-independent source prefix of the last render ending at a frozen
|
|
104
|
-
* Markdown block boundary
|
|
105
|
-
*
|
|
144
|
+
* Markdown block boundary that no append can move: it stops in front of a
|
|
145
|
+
* display-math opener whose block an append could still close. Only
|
|
146
|
+
* meaningful while streaming (transient render cache on); grows
|
|
147
|
+
* monotonically under append-only `setText`.
|
|
106
148
|
*/
|
|
107
149
|
getLastRenderStableText(): string;
|
|
108
150
|
get transientRenderCache(): boolean;
|