@oh-my-pi/pi-tui 18.4.2 → 18.4.4
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 +56 -0
- package/dist/types/apps/cleanse-board.d.ts +17 -0
- package/dist/types/apps/git/help.d.ts +16 -0
- package/dist/types/apps/git/sidebar.d.ts +18 -0
- package/dist/types/apps/live-visualizer.d.ts +10 -0
- package/dist/types/apps/ps-top.d.ts +15 -0
- package/dist/types/apps/standalone-picker.d.ts +3 -0
- package/dist/types/autocomplete.d.ts +8 -0
- package/dist/types/chat/advisor-message.d.ts +12 -2
- package/dist/types/chat/assistant-message.d.ts +20 -0
- package/dist/types/chat/bash-execution.d.ts +9 -0
- package/dist/types/chat/chat-transcript-builder.d.ts +6 -1
- package/dist/types/chat/collab-prompt-message.d.ts +4 -0
- package/dist/types/chat/compaction-summary-message.d.ts +15 -0
- package/dist/types/chat/eval-execution.d.ts +8 -0
- package/dist/types/chat/execution-shared.d.ts +58 -0
- package/dist/types/chat/late-diagnostics-message.d.ts +15 -1
- package/dist/types/chat/read-tool-group.d.ts +15 -0
- package/dist/types/chat/skill-message.d.ts +9 -0
- package/dist/types/chat/stripped-tool-calls-placeholder.d.ts +3 -0
- package/dist/types/chat/thinking-display.d.ts +2 -0
- package/dist/types/chat/todo-reminder.d.ts +4 -1
- package/dist/types/chat/tool-execution.d.ts +25 -1
- package/dist/types/chat/transcript-actions.d.ts +37 -0
- package/dist/types/chat/transcript-entry.d.ts +3 -1
- package/dist/types/chat/user-message.d.ts +25 -0
- package/dist/types/chrome/collab-qrcode.d.ts +7 -0
- package/dist/types/chrome/context-thresholds.d.ts +11 -0
- package/dist/types/chrome/countdown-timer.d.ts +9 -3
- package/dist/types/chrome/diff.d.ts +12 -0
- package/dist/types/chrome/dynamic-border.d.ts +3 -0
- package/dist/types/chrome/format.d.ts +6 -0
- package/dist/types/chrome/message-divider.d.ts +13 -0
- package/dist/types/chrome/message-frame.d.ts +10 -0
- package/dist/types/chrome/message-notice.d.ts +23 -0
- package/dist/types/chrome/overlay-box.d.ts +11 -2
- package/dist/types/chrome/qrcode.d.ts +7 -0
- package/dist/types/chrome/segment-track.d.ts +7 -0
- package/dist/types/chrome/selector-helpers.d.ts +0 -6
- package/dist/types/chrome/status-notice.d.ts +14 -0
- package/dist/types/chrome/streaming-panel.d.ts +3 -0
- package/dist/types/chrome/tool-activity.d.ts +3 -0
- package/dist/types/chrome/transcript-container.d.ts +13 -0
- package/dist/types/chrome/transcript-status.d.ts +15 -3
- package/dist/types/components/box.d.ts +7 -0
- package/dist/types/components/disclosure.d.ts +9 -0
- package/dist/types/components/editor.d.ts +42 -0
- package/dist/types/components/form.d.ts +14 -0
- package/dist/types/components/image.d.ts +7 -0
- package/dist/types/components/input.d.ts +20 -1
- package/dist/types/components/key-value-list.d.ts +3 -0
- package/dist/types/components/layout/geometry.d.ts +16 -0
- package/dist/types/components/layout/row.d.ts +7 -0
- package/dist/types/components/layout/split-pane.d.ts +8 -0
- package/dist/types/components/layout/stack.d.ts +6 -0
- package/dist/types/components/loader.d.ts +48 -0
- package/dist/types/components/markdown.d.ts +8 -0
- package/dist/types/components/metric.d.ts +7 -0
- package/dist/types/components/progress-bar.d.ts +3 -0
- package/dist/types/components/scroll-view.d.ts +6 -0
- package/dist/types/components/section.d.ts +3 -0
- package/dist/types/components/select-list.d.ts +33 -0
- package/dist/types/components/settings-list.d.ts +68 -0
- package/dist/types/components/spacer.d.ts +4 -0
- package/dist/types/components/tab-bar.d.ts +9 -0
- package/dist/types/components/table.d.ts +7 -0
- package/dist/types/components/text.d.ts +6 -0
- package/dist/types/components/tree-view.d.ts +9 -0
- package/dist/types/components/truncated-text.d.ts +3 -0
- package/dist/types/components/wizard-step.d.ts +6 -0
- package/dist/types/hotkeys-markdown.d.ts +24 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/latex-block.d.ts +7 -0
- package/dist/types/loop-watchdog.d.ts +9 -0
- package/dist/types/native/apply.d.ts +39 -0
- package/dist/types/native/backend.d.ts +94 -0
- package/dist/types/native/blobs.d.ts +29 -0
- package/dist/types/native/describe.d.ts +56 -0
- package/dist/types/native/encode.d.ts +50 -0
- package/dist/types/native/icons.d.ts +18 -0
- package/dist/types/native/memo.d.ts +27 -0
- package/dist/types/native/node.d.ts +107 -0
- package/dist/types/native/overlay.d.ts +64 -0
- package/dist/types/native/picker.d.ts +124 -0
- package/dist/types/native/reconcile.d.ts +41 -0
- package/dist/types/native/settle.d.ts +11 -0
- package/dist/types/native/spans.d.ts +21 -0
- package/dist/types/native/state.d.ts +6 -0
- package/dist/types/native/tone.d.ts +24 -0
- package/dist/types/overlays/advisor-config.d.ts +20 -0
- package/dist/types/overlays/agent-hub-renderer.d.ts +27 -11
- package/dist/types/overlays/agent-hub.d.ts +10 -0
- package/dist/types/overlays/agent-transcript-viewer.d.ts +7 -0
- package/dist/types/overlays/agents-hub.d.ts +8 -0
- package/dist/types/overlays/annotation-overlay.d.ts +3 -0
- package/dist/types/overlays/ask-dialog.d.ts +23 -0
- package/dist/types/overlays/bordered-loader.d.ts +3 -0
- package/dist/types/overlays/btw-history-panel.d.ts +9 -0
- package/dist/types/overlays/btw-panel.d.ts +3 -0
- package/dist/types/overlays/cleanse-panel.d.ts +5 -2
- package/dist/types/overlays/composer-shape-preview.d.ts +7 -1
- package/dist/types/overlays/copy-selector.d.ts +38 -0
- package/dist/types/overlays/error-banner.d.ts +9 -0
- package/dist/types/overlays/extensions/extension-list.d.ts +1 -0
- package/dist/types/overlays/history-search.d.ts +18 -0
- package/dist/types/overlays/hook-editor.d.ts +28 -1
- package/dist/types/overlays/hook-input.d.ts +3 -0
- package/dist/types/overlays/hook-selector.d.ts +10 -0
- package/dist/types/overlays/hub-frame.d.ts +18 -0
- package/dist/types/overlays/jobs-panel.d.ts +24 -0
- package/dist/types/overlays/login-dialog.d.ts +10 -0
- package/dist/types/overlays/logout-account-selector.d.ts +4 -0
- package/dist/types/overlays/mcp-add-wizard.d.ts +4 -0
- package/dist/types/overlays/model-browser.d.ts +69 -0
- package/dist/types/overlays/model-hub.d.ts +7 -0
- package/dist/types/overlays/model-picker.d.ts +9 -1
- package/dist/types/overlays/move-overlay.d.ts +3 -0
- package/dist/types/overlays/oauth-selector.d.ts +4 -0
- package/dist/types/overlays/omfg-panel.d.ts +3 -0
- package/dist/types/overlays/pause-screen.d.ts +12 -0
- package/dist/types/overlays/plan-review-overlay.d.ts +5 -0
- package/dist/types/overlays/plan-save-overlay.d.ts +10 -0
- package/dist/types/overlays/plugin-selector.d.ts +4 -0
- package/dist/types/overlays/plugin-settings.d.ts +30 -0
- package/dist/types/overlays/queue-mode-selector.d.ts +4 -0
- package/dist/types/overlays/reset-usage-selector.d.ts +8 -0
- package/dist/types/overlays/rewind-selector.d.ts +5 -0
- package/dist/types/overlays/session-info-overlay.d.ts +19 -1
- package/dist/types/overlays/session-selector.d.ts +64 -1
- package/dist/types/overlays/settings-defs.d.ts +14 -0
- package/dist/types/overlays/settings-selector.d.ts +21 -0
- package/dist/types/overlays/show-images-selector.d.ts +4 -0
- package/dist/types/overlays/snapcompact-shape-preview.d.ts +2 -0
- package/dist/types/overlays/stats-notice.d.ts +8 -0
- package/dist/types/overlays/theme-selector.d.ts +11 -0
- package/dist/types/overlays/thinking-selector.d.ts +4 -0
- package/dist/types/overlays/tree-selector.d.ts +60 -2
- package/dist/types/overlays/usage-dashboard.d.ts +26 -3
- package/dist/types/overlays/usage-row.d.ts +36 -2
- package/dist/types/prompt/attachment-chips.d.ts +8 -0
- package/dist/types/prompt/composer-attachments.d.ts +15 -3
- package/dist/types/prompt/composer.d.ts +18 -1
- package/dist/types/prompt/custom-editor.d.ts +48 -2
- package/dist/types/prompt/editor-top-gap.d.ts +2 -0
- package/dist/types/prompt/macos-spelling.d.ts +6 -0
- package/dist/types/prompt/magic-keywords.d.ts +9 -0
- package/dist/types/prompt/queued-messages.d.ts +23 -0
- package/dist/types/prompt/skill-tokens.d.ts +4 -2
- package/dist/types/prompt/welcome.d.ts +16 -0
- package/dist/types/render/code-cell.d.ts +10 -0
- package/dist/types/render/file-list.d.ts +8 -0
- package/dist/types/render/hyperlink.d.ts +14 -0
- package/dist/types/render/output-block.d.ts +43 -0
- package/dist/types/render/output-pane.d.ts +17 -0
- package/dist/types/render/tool-card.d.ts +8 -0
- package/dist/types/render/tree-list.d.ts +8 -0
- package/dist/types/render/width-aware-text.d.ts +7 -0
- package/dist/types/setup/scenes/outro.d.ts +7 -0
- package/dist/types/setup/scenes/sign-in.d.ts +16 -9
- package/dist/types/setup/scenes/splash.d.ts +8 -0
- package/dist/types/setup/scenes/types.d.ts +6 -27
- package/dist/types/setup/wizard-overlay.d.ts +9 -0
- package/dist/types/status-line/component.d.ts +49 -5
- package/dist/types/status-line/context-usage.d.ts +20 -0
- package/dist/types/status-line/footer.d.ts +8 -0
- package/dist/types/status-line/metrics.d.ts +1 -2
- package/dist/types/status-line/segments.d.ts +10 -1
- package/dist/types/status-line/types.d.ts +40 -1
- package/dist/types/stdin-buffer.d.ts +10 -7
- package/dist/types/terminal-capabilities.d.ts +1 -1
- package/dist/types/terminal.d.ts +36 -0
- package/dist/types/theme/defaults/index.d.ts +100 -0
- package/dist/types/theme/schema.d.ts +2 -0
- package/dist/types/theme/shimmer.d.ts +8 -0
- package/dist/types/theme/theme-class.d.ts +2 -0
- package/dist/types/theme/theme.d.ts +33 -1
- package/dist/types/tools/ask.d.ts +3 -0
- package/dist/types/tools/ast-edit.d.ts +10 -1
- package/dist/types/tools/ast-grep.d.ts +10 -1
- package/dist/types/tools/autoresearch.d.ts +21 -4
- package/dist/types/tools/bash.d.ts +30 -1
- package/dist/types/tools/cfg-render.d.ts +5 -1
- package/dist/types/tools/debug.d.ts +3 -1
- package/dist/types/tools/default-renderer.d.ts +6 -1
- package/dist/types/tools/edit.d.ts +14 -1
- package/dist/types/tools/eval.d.ts +12 -1
- package/dist/types/tools/fetch.d.ts +16 -1
- package/dist/types/tools/find.d.ts +15 -1
- package/dist/types/tools/github.d.ts +3 -0
- package/dist/types/tools/glob.d.ts +14 -1
- package/dist/types/tools/goal.d.ts +3 -1
- package/dist/types/tools/grep.d.ts +14 -1
- package/dist/types/tools/grouped-file-output.d.ts +58 -0
- package/dist/types/tools/json-tree.d.ts +20 -0
- package/dist/types/tools/lsp.d.ts +3 -10
- package/dist/types/tools/mcp.d.ts +16 -1
- package/dist/types/tools/memory.d.ts +26 -0
- package/dist/types/tools/native-view.d.ts +90 -0
- package/dist/types/tools/proc-render.d.ts +7 -1
- package/dist/types/tools/read.d.ts +23 -1
- package/dist/types/tools/renderer.d.ts +57 -0
- package/dist/types/tools/report-tool-issue.d.ts +3 -0
- package/dist/types/tools/resolve.d.ts +14 -1
- package/dist/types/tools/task.d.ts +3 -0
- package/dist/types/tools/think.d.ts +3 -0
- package/dist/types/tools/todo.d.ts +12 -0
- package/dist/types/tools/vibe.d.ts +3 -1
- package/dist/types/tools/wait.d.ts +3 -0
- package/dist/types/tools/web-search-types.d.ts +90 -0
- package/dist/types/tools/web-search.d.ts +9 -168
- package/dist/types/tools/write.d.ts +14 -1
- package/dist/types/tools/xdev.d.ts +13 -0
- package/dist/types/tui.d.ts +49 -0
- package/package.json +9 -9
- package/src/apps/autoresearch-dashboard.ts +362 -4
- package/src/apps/cleanse-board.ts +219 -1
- package/src/apps/cleanse-picker.ts +9 -1
- package/src/apps/debug/log-viewer.ts +15 -15
- package/src/apps/debug/protocol-probe.ts +2 -20
- package/src/apps/git/avatar.ts +2 -22
- package/src/apps/git/git-tui.ts +406 -59
- package/src/apps/git/help.ts +130 -0
- package/src/apps/git/sidebar.ts +491 -0
- package/src/apps/live-visualizer.ts +65 -0
- package/src/apps/ps-top.ts +448 -17
- package/src/apps/session-picker.ts +1 -0
- package/src/apps/setup-model-picker.ts +5 -1
- package/src/apps/standalone-picker.ts +55 -1
- package/src/autocomplete.ts +44 -1
- package/src/chat/advisor-message.ts +72 -3
- package/src/chat/assistant-message.ts +538 -51
- package/src/chat/background-tan-message.ts +4 -4
- package/src/chat/bash-execution.ts +81 -0
- package/src/chat/cache-invalidation-marker.ts +8 -0
- package/src/chat/chat-transcript-builder.ts +37 -6
- package/src/chat/collab-prompt-message.ts +15 -3
- package/src/chat/compaction-summary-message.ts +74 -1
- package/src/chat/custom-message.ts +3 -1
- package/src/chat/eval-execution.ts +57 -0
- package/src/chat/execution-shared.ts +153 -1
- package/src/chat/hook-message.ts +1 -0
- package/src/chat/late-diagnostics-message.ts +85 -2
- package/src/chat/read-tool-group.ts +341 -1
- package/src/chat/served-model-marker.ts +8 -0
- package/src/chat/skill-message.ts +63 -0
- package/src/chat/stripped-tool-calls-placeholder.ts +18 -10
- package/src/chat/thinking-display.ts +73 -11
- package/src/chat/todo-reminder.ts +34 -4
- package/src/chat/tool-execution.ts +385 -10
- package/src/chat/transcript-actions.ts +38 -0
- package/src/chat/transcript-browser.ts +2 -9
- package/src/chat/transcript-entry.ts +10 -1
- package/src/chat/transcript-render-helpers.ts +16 -15
- package/src/chat/ttsr-notification.ts +38 -1
- package/src/chat/user-message.ts +167 -4
- package/src/chrome/collab-qrcode.ts +27 -2
- package/src/chrome/context-thresholds.ts +34 -0
- package/src/chrome/countdown-timer.ts +24 -1
- package/src/chrome/diff.ts +60 -1
- package/src/chrome/dynamic-border.ts +7 -0
- package/src/chrome/format.ts +12 -0
- package/src/chrome/message-divider.ts +33 -1
- package/src/chrome/message-frame.ts +53 -10
- package/src/chrome/message-notice.ts +71 -0
- package/src/chrome/overlay-box.ts +45 -2
- package/src/chrome/qrcode.ts +28 -0
- package/src/chrome/segment-track.ts +26 -0
- package/src/chrome/selector-helpers.ts +1 -17
- package/src/chrome/status-notice.ts +46 -0
- package/src/chrome/streaming-panel.ts +25 -1
- package/src/chrome/tool-activity.ts +20 -0
- package/src/chrome/transcript-container.ts +139 -17
- package/src/chrome/transcript-status.ts +40 -11
- package/src/components/box.ts +51 -0
- package/src/components/disclosure.ts +33 -0
- package/src/components/editor.ts +239 -36
- package/src/components/form.ts +93 -9
- package/src/components/image.ts +30 -0
- package/src/components/input.ts +77 -26
- package/src/components/key-value-list.ts +18 -0
- package/src/components/layout/geometry.ts +44 -0
- package/src/components/layout/row.ts +30 -0
- package/src/components/layout/split-pane.ts +65 -0
- package/src/components/layout/stack.ts +27 -0
- package/src/components/loader.ts +183 -1
- package/src/components/markdown.ts +131 -56
- package/src/components/metric.ts +39 -0
- package/src/components/progress-bar.ts +28 -0
- package/src/components/scroll-view.ts +23 -0
- package/src/components/section.ts +16 -0
- package/src/components/select-list.ts +174 -25
- package/src/components/settings-list.ts +264 -7
- package/src/components/spacer.ts +17 -0
- package/src/components/tab-bar.ts +42 -0
- package/src/components/table.ts +34 -0
- package/src/components/text.ts +23 -0
- package/src/components/tree-view.ts +65 -0
- package/src/components/truncated-text.ts +14 -0
- package/src/components/wizard-step.ts +18 -9
- package/src/debug-server.ts +14 -7
- package/src/hotkeys-markdown.ts +251 -69
- package/src/index.ts +6 -0
- package/src/latex-block.ts +11 -0
- package/src/loop-watchdog.ts +38 -10
- package/src/native/apply.ts +275 -0
- package/src/native/backend.ts +682 -0
- package/src/native/blobs.ts +70 -0
- package/src/native/describe.ts +124 -0
- package/src/native/encode.ts +233 -0
- package/src/native/icons.ts +184 -0
- package/src/native/memo.ts +64 -0
- package/src/native/node.ts +112 -0
- package/src/native/overlay.ts +131 -0
- package/src/native/picker.ts +333 -0
- package/src/native/reconcile.ts +1063 -0
- package/src/native/settle.ts +23 -0
- package/src/native/spans.ts +308 -0
- package/src/native/state.ts +28 -0
- package/src/native/tone.ts +79 -0
- package/src/overlays/advisor-config.ts +420 -0
- package/src/overlays/agent-hub-renderer.ts +155 -18
- package/src/overlays/agent-hub.ts +1037 -44
- package/src/overlays/agent-transcript-viewer.ts +129 -0
- package/src/overlays/agents-hub.ts +688 -53
- package/src/overlays/annotation-overlay.ts +391 -52
- package/src/overlays/ask-dialog.ts +435 -24
- package/src/overlays/bordered-loader.ts +17 -0
- package/src/overlays/btw-history-panel.ts +182 -0
- package/src/overlays/btw-panel.ts +68 -2
- package/src/overlays/cleanse-panel.ts +105 -15
- package/src/overlays/codex-reset-fireworks.ts +65 -5
- package/src/overlays/composer-shape-preview.ts +26 -1
- package/src/overlays/copy-selector.ts +545 -23
- package/src/overlays/error-banner.ts +44 -0
- package/src/overlays/extensions/extension-list.ts +23 -17
- package/src/overlays/history-search.ts +175 -33
- package/src/overlays/hook-editor.ts +113 -6
- package/src/overlays/hook-input.ts +22 -1
- package/src/overlays/hook-selector.ts +311 -22
- package/src/overlays/hub-frame.ts +80 -0
- package/src/overlays/jobs-panel.ts +112 -0
- package/src/overlays/login-dialog.ts +183 -1
- package/src/overlays/logout-account-selector.ts +102 -4
- package/src/overlays/mcp-add-wizard.ts +232 -53
- package/src/overlays/model-browser.ts +681 -22
- package/src/overlays/model-hub.ts +1402 -78
- package/src/overlays/model-picker.ts +184 -7
- package/src/overlays/move-overlay.ts +45 -0
- package/src/overlays/oauth-selector.ts +227 -23
- package/src/overlays/omfg-panel.ts +86 -2
- package/src/overlays/pause-screen.ts +55 -4
- package/src/overlays/plan-review-overlay.ts +352 -0
- package/src/overlays/plan-save-overlay.ts +45 -0
- package/src/overlays/plugin-selector.ts +21 -1
- package/src/overlays/plugin-settings.ts +195 -5
- package/src/overlays/queue-mode-selector.ts +19 -1
- package/src/overlays/reset-usage-selector.ts +110 -40
- package/src/overlays/rewind-selector.ts +458 -44
- package/src/overlays/session-account-selector.ts +1 -1
- package/src/overlays/session-info-overlay.ts +137 -1
- package/src/overlays/session-selector.ts +807 -46
- package/src/overlays/settings-defs.ts +41 -0
- package/src/overlays/settings-selector.ts +585 -33
- package/src/overlays/show-images-selector.ts +18 -1
- package/src/overlays/snapcompact-shape-preview.ts +48 -3
- package/src/overlays/stats-notice.ts +31 -0
- package/src/overlays/theme-selector.ts +31 -1
- package/src/overlays/thinking-selector.ts +22 -1
- package/src/overlays/tree-selector.ts +570 -110
- package/src/overlays/usage-dashboard.ts +587 -12
- package/src/overlays/usage-row.ts +161 -25
- package/src/prompt/attachment-chips.ts +60 -0
- package/src/prompt/composer-attachments.ts +31 -9
- package/src/prompt/composer.ts +55 -2
- package/src/prompt/custom-editor.ts +302 -4
- package/src/prompt/editor-top-gap.ts +8 -0
- package/src/prompt/macos-spelling.ts +24 -9
- package/src/prompt/magic-keywords.ts +22 -1
- package/src/prompt/model-mention-autocomplete.ts +1 -0
- package/src/prompt/queued-messages.ts +101 -0
- package/src/prompt/skill-tokens.ts +5 -3
- package/src/prompt/welcome.ts +213 -6
- package/src/render/code-cell.ts +103 -2
- package/src/render/file-list.ts +29 -0
- package/src/render/hyperlink.ts +32 -0
- package/src/render/output-block.ts +110 -0
- package/src/render/output-pane.ts +37 -0
- package/src/render/tool-card.ts +137 -0
- package/src/render/tree-list.ts +39 -0
- package/src/render/width-aware-text.ts +20 -0
- package/src/setup/scenes/composer.ts +29 -0
- package/src/setup/scenes/glyph.ts +15 -0
- package/src/setup/scenes/model.ts +36 -8
- package/src/setup/scenes/outro.ts +28 -1
- package/src/setup/scenes/sign-in.ts +138 -24
- package/src/setup/scenes/splash.ts +28 -1
- package/src/setup/scenes/theme.ts +88 -3
- package/src/setup/scenes/types.ts +7 -28
- package/src/setup/startup-splash.ts +46 -9
- package/src/setup/wizard-overlay.ts +140 -23
- package/src/setup/wizard.ts +1 -1
- package/src/status-line/component.ts +414 -18
- package/src/status-line/context-usage.ts +279 -50
- package/src/status-line/footer.ts +94 -1
- package/src/status-line/metrics.ts +3 -6
- package/src/status-line/segments.ts +463 -97
- package/src/status-line/separators.ts +3 -16
- package/src/status-line/types.ts +43 -1
- package/src/stdin-buffer.ts +27 -21
- package/src/terminal-capabilities.ts +7 -0
- package/src/terminal.ts +153 -11
- package/src/theme/defaults/dark-neon-noir.json +100 -0
- package/src/theme/defaults/index.ts +2 -0
- package/src/theme/defaults/light-prism.json +5 -5
- package/src/theme/defaults/onyx.json +62 -62
- package/src/theme/mermaid-cache.ts +10 -1
- package/src/theme/schema.ts +15 -0
- package/src/theme/shimmer.ts +33 -0
- package/src/theme/theme-class.ts +24 -19
- package/src/theme/theme.ts +111 -9
- package/src/theme/tui-adapters.ts +14 -1
- package/src/tools/ask.ts +157 -1
- package/src/tools/ast-edit.ts +174 -1
- package/src/tools/ast-grep.ts +82 -2
- package/src/tools/autoresearch.ts +149 -1
- package/src/tools/bash.ts +233 -62
- package/src/tools/cfg-render.ts +66 -1
- package/src/tools/debug.ts +78 -1
- package/src/tools/default-renderer.ts +35 -1
- package/src/tools/edit.ts +357 -31
- package/src/tools/eval.ts +257 -1
- package/src/tools/fetch.ts +102 -3
- package/src/tools/find.ts +127 -1
- package/src/tools/github.ts +119 -10
- package/src/tools/glob.ts +116 -1
- package/src/tools/goal.ts +56 -1
- package/src/tools/grep.ts +83 -2
- package/src/tools/grouped-file-output.ts +205 -0
- package/src/tools/json-tree.ts +116 -1
- package/src/tools/lsp.ts +318 -1
- package/src/tools/mcp.ts +80 -1
- package/src/tools/memory.ts +93 -11
- package/src/tools/native-view.ts +292 -0
- package/src/tools/proc-render.ts +221 -1
- package/src/tools/read.ts +199 -4
- package/src/tools/renderer.ts +61 -0
- package/src/tools/report-tool-issue.ts +7 -1
- package/src/tools/resolve.ts +63 -1
- package/src/tools/streaming-output.ts +79 -16
- package/src/tools/task.ts +406 -4
- package/src/tools/think.ts +19 -1
- package/src/tools/todo.ts +89 -0
- package/src/tools/vibe.ts +230 -2
- package/src/tools/wait.ts +181 -1
- package/src/tools/web-search-types.ts +99 -0
- package/src/tools/web-search.ts +111 -170
- package/src/tools/write.ts +144 -5
- package/src/tools/xdev.ts +64 -1
- package/src/tui.ts +295 -4
- package/dist/types/setup/scenes/providers.d.ts +0 -3
- package/dist/types/setup/scenes/web-search.d.ts +0 -22
- package/src/setup/scenes/providers.ts +0 -110
- package/src/setup/scenes/web-search.ts +0 -165
|
@@ -2,6 +2,8 @@ import type { AgentMessage, Tokenizer } from "@oh-my-pi/pi-agent-core";
|
|
|
2
2
|
import type { CompactionSettings } from "@oh-my-pi/pi-agent-core/compaction";
|
|
3
3
|
import type { Tool as AiTool, Model } from "@oh-my-pi/pi-ai";
|
|
4
4
|
import type { Theme } from "../theme/index.js";
|
|
5
|
+
import { Container } from "../tui.js";
|
|
6
|
+
import type { DescribeContext, NativeNode } from "../native/node.js";
|
|
5
7
|
interface ContextSkill {
|
|
6
8
|
readonly name: string;
|
|
7
9
|
readonly description?: string;
|
|
@@ -70,6 +72,8 @@ export interface ContextBreakdown {
|
|
|
70
72
|
usedTokens: number;
|
|
71
73
|
autoCompactBufferTokens: number;
|
|
72
74
|
freeTokens: number;
|
|
75
|
+
/** Where auto-compaction fires, in tokens; undefined when compaction is off. */
|
|
76
|
+
thresholdTokens?: number;
|
|
73
77
|
/** Estimated snapcompact wire savings; set when requested and a snapcompact.* setting is enabled. */
|
|
74
78
|
snapcompact?: ContextSavingsEstimate;
|
|
75
79
|
}
|
|
@@ -150,6 +154,22 @@ export declare function computeNonMessageBreakdown(session: NonMessageTokenSourc
|
|
|
150
154
|
* session and model.
|
|
151
155
|
*/
|
|
152
156
|
export declare function computeContextBreakdown(session: ContextUsageSession, options: ContextUsageOptions): ContextBreakdown;
|
|
157
|
+
/**
|
|
158
|
+
* Native context-usage panel for terminals without `meter`: the cell grid as
|
|
159
|
+
* unwrapped styled rows beside the legend. The terminal places the legend
|
|
160
|
+
* beside the grid, or below it when narrow.
|
|
161
|
+
*/
|
|
162
|
+
export declare function describeContextUsage(breakdown: ContextBreakdown): NativeNode;
|
|
163
|
+
/**
|
|
164
|
+
* The `/context` transcript block: ANSI renders the titled cell grid between
|
|
165
|
+
* rules; natively it is one frame, drawn with `meter`s where the terminal
|
|
166
|
+
* has them and as the glyph grid otherwise.
|
|
167
|
+
*/
|
|
168
|
+
export declare class ContextUsageView extends Container {
|
|
169
|
+
#private;
|
|
170
|
+
constructor(breakdown: ContextBreakdown, theme: Theme);
|
|
171
|
+
describe(cx: DescribeContext): NativeNode;
|
|
172
|
+
}
|
|
153
173
|
/**
|
|
154
174
|
* Render a colorful context-usage panel as ANSI text. Output is a series of
|
|
155
175
|
* lines pairing the grid (left) with the legend (right).
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Component } from "../index.js";
|
|
2
2
|
import type { FooterHost, FooterSession } from "./host.js";
|
|
3
|
+
import type { NativeNode } from "../native/node.js";
|
|
3
4
|
/**
|
|
4
5
|
* Footer component that shows pwd, token stats, and context usage
|
|
5
6
|
*/
|
|
@@ -26,5 +27,12 @@ export declare class FooterComponent implements Component {
|
|
|
26
27
|
*/
|
|
27
28
|
dispose(): void;
|
|
28
29
|
invalidate(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Native footer: a `status` bar (path and branch, usage counters, billing
|
|
32
|
+
* and context on the left, model on the right) plus the extension statuses.
|
|
33
|
+
* Rebuilt per call from cheap session reads; the node identity holds while
|
|
34
|
+
* the description is unchanged.
|
|
35
|
+
*/
|
|
36
|
+
describe(): NativeNode;
|
|
29
37
|
render(width: number): readonly string[];
|
|
30
38
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Theme } from "../theme/index.js";
|
|
2
|
+
export { normalizePremiumRequests } from "@oh-my-pi/pi-utils";
|
|
2
3
|
/** Inputs whose differences are intentionally preserved between current status segments and the legacy footer. */
|
|
3
4
|
export interface BillingSummaryOptions {
|
|
4
5
|
readonly cost: number;
|
|
@@ -11,8 +12,6 @@ export interface BillingSummaryOptions {
|
|
|
11
12
|
readonly usingSubscription: boolean;
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
|
-
/** Round premium-request counters without losing legitimate fractional requests. */
|
|
15
|
-
export declare function normalizePremiumRequests(value: number): number;
|
|
16
15
|
/**
|
|
17
16
|
* Shared billing metric presentation. Callers select precision explicitly so
|
|
18
17
|
* the legacy footer keeps three decimals while current status segments keep two.
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { StatusLineSession } from "./host.js";
|
|
2
|
+
import type { RenderedSegment, SegmentContext, SegmentView, StatusLineSegment, StatusLineSegmentId } from "./types.js";
|
|
2
3
|
export type { SegmentContext } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* The thinking-effort word (`high`, `off`; `auto` until auto thinking resolves
|
|
6
|
+
* a level), or undefined when the model has no thinking. Drives the native
|
|
7
|
+
* model segment and the composer's effort chip.
|
|
8
|
+
*/
|
|
9
|
+
export declare function thinkingLevelWord(session: Pick<StatusLineSession, "state" | "isAutoThinking" | "autoResolvedThinkingLevel">): string | undefined;
|
|
3
10
|
export declare const SEGMENTS: Record<StatusLineSegmentId, StatusLineSegment>;
|
|
4
11
|
export declare function renderSegment(id: StatusLineSegmentId, ctx: SegmentContext): RenderedSegment;
|
|
12
|
+
/** Native description of one segment; null when it is hidden or unknown. */
|
|
13
|
+
export declare function describeSegment(id: StatusLineSegmentId, ctx: SegmentContext): SegmentView | null;
|
|
5
14
|
export declare const ALL_SEGMENT_IDS: StatusLineSegmentId[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Model } from "@oh-my-pi/pi-ai";
|
|
2
|
-
import type { SessionState } from "@oh-my-pi/pi-wire";
|
|
2
|
+
import type { SessionState, TspSpan, TspTone } from "@oh-my-pi/pi-wire";
|
|
3
|
+
import type { NativeNode, NativeUiEvent } from "../native/node.js";
|
|
3
4
|
import type { ContextLineMode, StatusLinePreset, StatusLineSegmentId, StatusLineSeparatorStyle } from "./schema.js";
|
|
4
5
|
import type { ActiveRepoContext, StatusLineSession } from "./host.js";
|
|
5
6
|
import type { LoopConditionConfig, LoopLimitRuntime } from "./loop.js";
|
|
@@ -222,9 +223,47 @@ export interface RenderedSegment {
|
|
|
222
223
|
content: string;
|
|
223
224
|
visible: boolean;
|
|
224
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* A segment described for a TSP terminal: styled spans (theme/semantic
|
|
228
|
+
* tokens, no ANSI), a named icon, a tone, and terminal-clocked nodes
|
|
229
|
+
* (`spinner`, `elapsed`, `rate`) laid out after the spans.
|
|
230
|
+
*/
|
|
231
|
+
export interface SegmentView {
|
|
232
|
+
readonly spans: readonly TspSpan[];
|
|
233
|
+
readonly icon?: string;
|
|
234
|
+
readonly tone?: TspTone;
|
|
235
|
+
readonly motion?: readonly NativeNode[];
|
|
236
|
+
/** Tooltip on the segment. */
|
|
237
|
+
readonly title?: string;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* The status line's facts for the native composer. A TSP terminal shows no
|
|
241
|
+
* status strip: the tab title carries the session, the pane header the path
|
|
242
|
+
* and branch, and the composer the rest.
|
|
243
|
+
*/
|
|
244
|
+
export interface ComposerFacts {
|
|
245
|
+
/** `meter` (role `omp.composer.context`): context usage along the composer's top edge. */
|
|
246
|
+
readonly context: NativeNode;
|
|
247
|
+
/** The model chip's label: name plus the advisor, fast-mode and slow-mode marks. */
|
|
248
|
+
readonly model: SegmentView;
|
|
249
|
+
/**
|
|
250
|
+
* `status` (role `omp.composer.extras`, `grow: 1`) of the other configured
|
|
251
|
+
* segments as `seg`s; the bar's flexible space, so present even when empty.
|
|
252
|
+
*/
|
|
253
|
+
readonly extras: NativeNode;
|
|
254
|
+
/** `text` (role `omp.composer.usage`): the context share of the window and the session cost. */
|
|
255
|
+
readonly usage: NativeNode;
|
|
256
|
+
}
|
|
257
|
+
/** Supplies {@link ComposerFacts} and takes the clicks on them (`status.*` actions). */
|
|
258
|
+
export interface ComposerFactsSource {
|
|
259
|
+
describeComposerFacts(): ComposerFacts;
|
|
260
|
+
handleNativeEvent(event: NativeUiEvent): void;
|
|
261
|
+
}
|
|
225
262
|
export interface StatusLineSegment {
|
|
226
263
|
id: StatusLineSegmentId;
|
|
227
264
|
render(ctx: SegmentContext): RenderedSegment;
|
|
265
|
+
/** Native description; null when the segment is hidden. */
|
|
266
|
+
describe(ctx: SegmentContext): SegmentView | null;
|
|
228
267
|
}
|
|
229
268
|
export interface SeparatorDef {
|
|
230
269
|
left: string;
|
|
@@ -63,14 +63,17 @@ export declare class StdinBuffer extends EventEmitter<StdinBufferEventMap> {
|
|
|
63
63
|
constructor(options?: StdinBufferOptions);
|
|
64
64
|
process(data: string | Buffer): void;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* paste then always arrives wrapped, so
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
66
|
+
* Gate unbracketed raw-paste classification on event-loop responsiveness.
|
|
67
|
+
* Terminal installs a probe once DECRQM confirms bracketed-paste (mode
|
|
68
|
+
* 2004) support: a genuine paste then always arrives wrapped, so an
|
|
69
|
+
* unmarked multiline burst is either an input-method commit — IME,
|
|
70
|
+
* dictation, and emoji commits are typed input, never bracketed (#13344) —
|
|
71
|
+
* or keystrokes an event-loop stall batched into one read (#12540). A burst
|
|
72
|
+
* classified while `stalled()` reports a stall is replayed as the original
|
|
73
|
+
* keys so every Enter submits; otherwise it is delivered as one paste.
|
|
74
|
+
* `undefined` restores unconditional classification.
|
|
72
75
|
*/
|
|
73
|
-
|
|
76
|
+
setRawPasteStallProbe(stalled: (() => boolean) | undefined): void;
|
|
74
77
|
flush(): string[];
|
|
75
78
|
clear(): void;
|
|
76
79
|
getBuffer(): string;
|
|
@@ -11,7 +11,7 @@ export declare enum NotifyProtocol {
|
|
|
11
11
|
Osc99 = "\u001B]99;;",
|
|
12
12
|
Osc9 = "\u001B]9;"
|
|
13
13
|
}
|
|
14
|
-
export type TerminalId = "kitty" | "ghostty" | "wezterm" | "iterm2" | "vscode" | "alacritty" | "warp" | "orca" | "otty" | "rio" | "base" | "trueColor";
|
|
14
|
+
export type TerminalId = "kitty" | "ghostty" | "wezterm" | "iterm2" | "vscode" | "alacritty" | "warp" | "orca" | "otty" | "rio" | "tern" | "base" | "trueColor";
|
|
15
15
|
/** Terminal capability details used for rendering and protocol selection. */
|
|
16
16
|
export declare class TerminalInfo {
|
|
17
17
|
readonly id: TerminalId;
|
package/dist/types/terminal.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type TspHello } from "./native/encode.js";
|
|
1
2
|
/**
|
|
2
3
|
* Split `data` into chunks whose encoded UTF-8 byte length is no greater than
|
|
3
4
|
* `maxChunkBytes`, preferring a line boundary (`\n`) as the cut point so
|
|
@@ -96,6 +97,15 @@ export interface TerminalStartOptions {
|
|
|
96
97
|
* echoes even while module loading blocks the event loop.
|
|
97
98
|
*/
|
|
98
99
|
deferInput?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Reports whether the event loop is stalled or just recovered from a
|
|
102
|
+
* stall. Once the terminal confirms bracketed paste, an unmarked multiline
|
|
103
|
+
* burst is an input-method commit (IME, dictation) delivered as one paste
|
|
104
|
+
* on a responsive loop, but keystrokes a stall batched into one read —
|
|
105
|
+
* replayed as keys so Enter submits — while this returns true. Without a
|
|
106
|
+
* probe every such burst is treated as an input-method commit.
|
|
107
|
+
*/
|
|
108
|
+
isLoopStalled?: () => boolean;
|
|
99
109
|
}
|
|
100
110
|
/** Identity of an accepted explicit terminal appearance refresh request. */
|
|
101
111
|
export type TerminalAppearanceRequestToken = number;
|
|
@@ -113,6 +123,12 @@ export type PrivateModeReportHandler = (mode: number, supported: boolean, confir
|
|
|
113
123
|
* glossary, so a host can safely repaint — or switch to the nerd preset.
|
|
114
124
|
*/
|
|
115
125
|
export type GlyphProtocolReportHandler = (supported: boolean) => void;
|
|
126
|
+
/**
|
|
127
|
+
* Outcome of the Tern Surface Protocol `hello` probe: the terminal's reply,
|
|
128
|
+
* or null when it answered the DA1 sentinel first (no TSP) or the probe was
|
|
129
|
+
* skipped (`PI_TUI_NATIVE=0`, multiplexers).
|
|
130
|
+
*/
|
|
131
|
+
export type TspHelloHandler = (hello: TspHello | null) => void;
|
|
116
132
|
/**
|
|
117
133
|
* Cursor shapes addressable via DECSCUSR (`CSI <n> SP q`). `"default"` (0) hands the shape back to
|
|
118
134
|
* the terminal's own configuration, which is what teardown restores rather than guessing a shape
|
|
@@ -223,6 +239,23 @@ export interface Terminal {
|
|
|
223
239
|
* pi-tui versions keep working.
|
|
224
240
|
*/
|
|
225
241
|
onGlyphProtocolReport?(callback: GlyphProtocolReportHandler): void;
|
|
242
|
+
/**
|
|
243
|
+
* Register a callback fired once the Tern Surface Protocol `hello` probe
|
|
244
|
+
* resolves (see {@link TspHelloHandler}); a resolved outcome is replayed to
|
|
245
|
+
* late subscribers. TSP events arriving afterwards are delivered through
|
|
246
|
+
* `onInput` as complete `ESC _ tsp;e;… ESC \` strings. Optional so custom
|
|
247
|
+
* Terminals built against older pi-tui versions keep working.
|
|
248
|
+
*/
|
|
249
|
+
onTspHello?(callback: TspHelloHandler): void;
|
|
250
|
+
/** True while the `hello` probe awaits its reply or DA1 sentinel. */
|
|
251
|
+
readonly tspProbePending?: boolean;
|
|
252
|
+
/**
|
|
253
|
+
* The environment names a Tern Surface Protocol terminal
|
|
254
|
+
* (`TERM_PROGRAM=tern`) and the `hello` probe will run: the TUI takes input
|
|
255
|
+
* at start and opens its surface before the reply, which then confirms or
|
|
256
|
+
* revokes it.
|
|
257
|
+
*/
|
|
258
|
+
readonly tspExpected?: boolean;
|
|
226
259
|
}
|
|
227
260
|
/**
|
|
228
261
|
* True when stdout flows through a ConPTY pseudo-console (native win32, or
|
|
@@ -270,6 +303,9 @@ export declare class ProcessTerminal implements Terminal {
|
|
|
270
303
|
refreshAppearance(requestToken?: TerminalAppearanceRequestToken): TerminalAppearanceRequestToken | void;
|
|
271
304
|
onPrivateModeReport(callback: PrivateModeReportHandler): void;
|
|
272
305
|
onGlyphProtocolReport(callback: GlyphProtocolReportHandler): void;
|
|
306
|
+
onTspHello(callback: TspHelloHandler): void;
|
|
307
|
+
get tspProbePending(): boolean;
|
|
308
|
+
get tspExpected(): boolean;
|
|
273
309
|
start(onInput: (data: string) => void, onResize: () => void, onDisconnect?: () => void, options?: TerminalStartOptions): void;
|
|
274
310
|
enableInput(): void;
|
|
275
311
|
drainInput(maxMs?: number, idleMs?: number): Promise<void>;
|
|
@@ -2596,6 +2596,106 @@ export declare const defaultThemes: {
|
|
|
2596
2596
|
infoBg: string;
|
|
2597
2597
|
};
|
|
2598
2598
|
};
|
|
2599
|
+
"dark-neon-noir": {
|
|
2600
|
+
$schema: string;
|
|
2601
|
+
name: string;
|
|
2602
|
+
vars: {
|
|
2603
|
+
magenta: string;
|
|
2604
|
+
hotMagenta: string;
|
|
2605
|
+
deepMagenta: string;
|
|
2606
|
+
cyan: string;
|
|
2607
|
+
paleCyan: string;
|
|
2608
|
+
deepCyan: string;
|
|
2609
|
+
violet: string;
|
|
2610
|
+
amber: string;
|
|
2611
|
+
ash: string;
|
|
2612
|
+
smoke: string;
|
|
2613
|
+
soot: string;
|
|
2614
|
+
black: string;
|
|
2615
|
+
panelBg: string;
|
|
2616
|
+
selectedBg: string;
|
|
2617
|
+
userMsgBg: string;
|
|
2618
|
+
toolPendingBg: string;
|
|
2619
|
+
toolSuccessBg: string;
|
|
2620
|
+
toolErrorBg: string;
|
|
2621
|
+
customMsgBg: string;
|
|
2622
|
+
};
|
|
2623
|
+
colors: {
|
|
2624
|
+
accent: string;
|
|
2625
|
+
border: string;
|
|
2626
|
+
borderAccent: string;
|
|
2627
|
+
borderMuted: string;
|
|
2628
|
+
success: string;
|
|
2629
|
+
error: string;
|
|
2630
|
+
warning: string;
|
|
2631
|
+
muted: string;
|
|
2632
|
+
dim: string;
|
|
2633
|
+
text: string;
|
|
2634
|
+
thinkingText: string;
|
|
2635
|
+
selectedBg: string;
|
|
2636
|
+
userMessageBg: string;
|
|
2637
|
+
userMessageText: string;
|
|
2638
|
+
customMessageBg: string;
|
|
2639
|
+
customMessageText: string;
|
|
2640
|
+
customMessageLabel: string;
|
|
2641
|
+
toolPendingBg: string;
|
|
2642
|
+
toolSuccessBg: string;
|
|
2643
|
+
toolErrorBg: string;
|
|
2644
|
+
toolText: string;
|
|
2645
|
+
toolTitle: string;
|
|
2646
|
+
toolOutput: string;
|
|
2647
|
+
mdHeading: string;
|
|
2648
|
+
mdLink: string;
|
|
2649
|
+
mdLinkUrl: string;
|
|
2650
|
+
mdCode: string;
|
|
2651
|
+
mdCodeBlock: string;
|
|
2652
|
+
mdCodeBlockBorder: string;
|
|
2653
|
+
mdQuote: string;
|
|
2654
|
+
mdQuoteBorder: string;
|
|
2655
|
+
mdHr: string;
|
|
2656
|
+
mdListBullet: string;
|
|
2657
|
+
toolDiffAdded: string;
|
|
2658
|
+
toolDiffRemoved: string;
|
|
2659
|
+
toolDiffContext: string;
|
|
2660
|
+
link: string;
|
|
2661
|
+
syntaxComment: string;
|
|
2662
|
+
syntaxKeyword: string;
|
|
2663
|
+
syntaxFunction: string;
|
|
2664
|
+
syntaxVariable: string;
|
|
2665
|
+
syntaxString: string;
|
|
2666
|
+
syntaxNumber: string;
|
|
2667
|
+
syntaxType: string;
|
|
2668
|
+
syntaxOperator: string;
|
|
2669
|
+
syntaxPunctuation: string;
|
|
2670
|
+
thinkingOff: string;
|
|
2671
|
+
thinkingMinimal: string;
|
|
2672
|
+
thinkingLow: string;
|
|
2673
|
+
thinkingMedium: string;
|
|
2674
|
+
thinkingHigh: string;
|
|
2675
|
+
thinkingXhigh: string;
|
|
2676
|
+
bashMode: string;
|
|
2677
|
+
statusLineBg: string;
|
|
2678
|
+
statusLineSep: number;
|
|
2679
|
+
statusLineModel: string;
|
|
2680
|
+
statusLinePath: string;
|
|
2681
|
+
statusLineGitClean: string;
|
|
2682
|
+
statusLineGitDirty: string;
|
|
2683
|
+
statusLineContext: string;
|
|
2684
|
+
statusLineSpend: string;
|
|
2685
|
+
statusLineStaged: string;
|
|
2686
|
+
statusLineDirty: string;
|
|
2687
|
+
statusLineUntracked: string;
|
|
2688
|
+
statusLineOutput: string;
|
|
2689
|
+
statusLineCost: string;
|
|
2690
|
+
statusLineSubagents: string;
|
|
2691
|
+
pythonMode: string;
|
|
2692
|
+
};
|
|
2693
|
+
export: {
|
|
2694
|
+
pageBg: string;
|
|
2695
|
+
cardBg: string;
|
|
2696
|
+
infoBg: string;
|
|
2697
|
+
};
|
|
2698
|
+
};
|
|
2599
2699
|
"dark-nord": {
|
|
2600
2700
|
$schema: string;
|
|
2601
2701
|
name: string;
|
|
@@ -22,4 +22,6 @@ export type ThemeColor = "accent" | "border" | "borderAccent" | "borderMuted" |
|
|
|
22
22
|
/** Check if a string is a valid ThemeColor value */
|
|
23
23
|
export declare function isValidThemeColor(color: string): color is ThemeColor;
|
|
24
24
|
export type ThemeBg = "selectedBg" | "userMessageBg" | "customMessageBg" | "toolPendingBg" | "toolSuccessBg" | "toolErrorBg" | "statusLineBg";
|
|
25
|
+
/** Check if a string is a valid ThemeBg value */
|
|
26
|
+
export declare function isValidThemeBg(color: string): color is ThemeBg;
|
|
25
27
|
export type ColorMode = "truecolor" | "256color";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NativeNode } from "../native/node.js";
|
|
1
2
|
import type { Theme, ThemeColor } from "./theme.js";
|
|
2
3
|
type ShimmerTheme = Pick<Theme, "bold" | "fg" | "getFgAnsi">;
|
|
3
4
|
/** Sweep style for animated shimmer text; `disabled` renders every tier as the mid color. */
|
|
@@ -26,6 +27,13 @@ export interface ShimmerSegment {
|
|
|
26
27
|
export declare const DEFAULT_SHIMMER_PALETTE: ShimmerPalette;
|
|
27
28
|
/** Whether shimmer animations are active (any mode other than `disabled`). */
|
|
28
29
|
export declare function shimmerEnabled(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Describe shimmering segments for a TSP terminal, which clocks the sweep
|
|
32
|
+
* itself: a `shimmer` node in the active mode, or plain spans in the mid tier
|
|
33
|
+
* color when shimmer is disabled. Palette tiers given as theme colors travel as
|
|
34
|
+
* token names; raw-ANSI tiers are dropped (the terminal's theme decides).
|
|
35
|
+
*/
|
|
36
|
+
export declare function describeShimmer(segments: readonly ShimmerSegment[], key?: string): NativeNode;
|
|
29
37
|
/**
|
|
30
38
|
* Apply a shimmer sweep across one or more segments, treating them as a
|
|
31
39
|
* single continuous string for band positioning. Each segment can supply
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type ColorMode, type ThemeBg, type ThemeColor } from "./schema.js";
|
|
2
2
|
import type { SessionAccentTheme } from "./session-color.js";
|
|
3
3
|
import { type SlashCommandIconName, type SpinnerType, type SymbolKey, type SymbolPreset } from "./symbols.js";
|
|
4
|
+
/** Theme token of a thinking/effort level name (`off`…`max`); unknown levels (`auto`) map to `thinkingOff`. */
|
|
5
|
+
export declare function thinkingLevelToken(level: string): ThemeColor;
|
|
4
6
|
export declare class Theme {
|
|
5
7
|
#private;
|
|
6
8
|
private readonly mode;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Terminal } from "../terminal.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type ThemeColor } from "./schema.js";
|
|
3
3
|
import type { SymbolPreset } from "./symbols.js";
|
|
4
4
|
import type { Theme } from "./theme-class.js";
|
|
5
5
|
export { getAvailableThemes, getAvailableThemesWithPaths, getThemeByName, type ThemeInfo } from "./loader.js";
|
|
@@ -59,6 +59,15 @@ export declare function setSymbolPreset(preset: SymbolPreset): Promise<void>;
|
|
|
59
59
|
* Get the current symbol preset override.
|
|
60
60
|
*/
|
|
61
61
|
export declare function getSymbolPresetOverride(): SymbolPreset | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Force `preset` while a Tern Surface Protocol surface is live (the terminal's
|
|
64
|
+
* font carries every Nerd Font glyph, so icons need no Glyph Protocol
|
|
65
|
+
* registration); `undefined` restores the user's preset. Process-local and
|
|
66
|
+
* never persisted. Rebuilds the active theme synchronously so the next frame
|
|
67
|
+
* already uses it, and notifies theme listeners like a preset change. Returns
|
|
68
|
+
* whether the active theme was rebuilt (callers invalidate render caches).
|
|
69
|
+
*/
|
|
70
|
+
export declare function setNativeSymbolPreset(preset: SymbolPreset | undefined): boolean;
|
|
62
71
|
/**
|
|
63
72
|
* Set color blind mode, recreating the theme with the new setting.
|
|
64
73
|
* When enabled, uses blue instead of green for diff additions.
|
|
@@ -94,6 +103,29 @@ export declare function stopThemeWatcher(): void;
|
|
|
94
103
|
* Used by HTML export to generate CSS custom properties.
|
|
95
104
|
*/
|
|
96
105
|
export declare function getResolvedThemeColors(themeName?: string): Promise<Record<string, string>>;
|
|
106
|
+
/** One appearance variant of {@link NativeThemePalette}: token name → `#rrggbb`. */
|
|
107
|
+
export type NativeThemeVariant = Record<string, string>;
|
|
108
|
+
/** omp's resolved theme for a Tern Surface Protocol terminal (the `t` verb body minus `sf`). */
|
|
109
|
+
export interface NativeThemePalette {
|
|
110
|
+
dark?: NativeThemeVariant;
|
|
111
|
+
light?: NativeThemeVariant;
|
|
112
|
+
name: {
|
|
113
|
+
dark?: string;
|
|
114
|
+
light?: string;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Cheap identity of everything {@link getNativeThemePalette} depends on;
|
|
119
|
+
* recompute the palette only when it changes.
|
|
120
|
+
*/
|
|
121
|
+
export declare function getNativeThemePaletteKey(): string;
|
|
122
|
+
/**
|
|
123
|
+
* omp's theme for a native surface: with auto theme, the configured dark and
|
|
124
|
+
* light themes; otherwise (or while the theme selector previews one) the
|
|
125
|
+
* active theme under its own appearance only. Themes without a loadable
|
|
126
|
+
* definition (in-memory instances) contribute nothing.
|
|
127
|
+
*/
|
|
128
|
+
export declare function getNativeThemePalette(): NativeThemePalette;
|
|
97
129
|
/**
|
|
98
130
|
* Check if a theme is a "light" theme by analyzing its status-line background
|
|
99
131
|
* luminance. Loads theme JSON synchronously (built-in or custom file on disk)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NativeToolView, ToolRenderResult } from "./renderer.js";
|
|
1
2
|
import { type Component } from "../index.js";
|
|
2
3
|
import type { RenderResultOptions } from "./renderer.js";
|
|
3
4
|
import { type Theme } from "../theme/theme.js";
|
|
@@ -54,6 +55,8 @@ interface AskRenderArgs {
|
|
|
54
55
|
export declare function optionMarker(uiTheme: Theme, multi: boolean | undefined, selected: boolean): string;
|
|
55
56
|
/** Render question forms and their recorded answers. */
|
|
56
57
|
export declare const askToolRenderer: {
|
|
58
|
+
describeCall(args: AskRenderArgs): NativeToolView | undefined;
|
|
59
|
+
describeResult(result: ToolRenderResult<AskToolDetails>, _options?: RenderResultOptions, args?: AskRenderArgs): NativeToolView | undefined;
|
|
57
60
|
mergeCallAndResult: true;
|
|
58
61
|
renderCall(args: AskRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component;
|
|
59
62
|
renderResult(result: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
2
|
import type { Theme } from "../theme/theme.js";
|
|
3
3
|
import type { OutputMeta } from "./output-meta.js";
|
|
4
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
4
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
5
5
|
/** Display metadata returned by ast-edit. */
|
|
6
6
|
export interface AstEditToolDetails {
|
|
7
7
|
totalReplacements: number;
|
|
@@ -48,6 +48,15 @@ export declare const astEditToolRenderer: {
|
|
|
48
48
|
details?: AstEditToolDetails;
|
|
49
49
|
isError?: boolean;
|
|
50
50
|
}, options: RenderResultOptions, uiTheme: Theme, args?: AstEditRenderArgs): Component;
|
|
51
|
+
describeCall(args: AstEditRenderArgs): NativeToolView;
|
|
52
|
+
describeResult(result: {
|
|
53
|
+
content: Array<{
|
|
54
|
+
type: string;
|
|
55
|
+
text?: string;
|
|
56
|
+
}>;
|
|
57
|
+
details?: AstEditToolDetails;
|
|
58
|
+
isError?: boolean;
|
|
59
|
+
}, _options: RenderResultOptions, args?: AstEditRenderArgs): NativeToolView;
|
|
51
60
|
mergeCallAndResult: true;
|
|
52
61
|
};
|
|
53
62
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
2
|
import type { Theme } from "../theme/theme.js";
|
|
3
3
|
import type { OutputMeta } from "./output-meta.js";
|
|
4
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
4
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
5
5
|
/** Display metadata returned by ast-grep. */
|
|
6
6
|
export interface AstGrepToolDetails {
|
|
7
7
|
matchCount: number;
|
|
@@ -47,6 +47,15 @@ export declare const astGrepToolRenderer: {
|
|
|
47
47
|
details?: AstGrepToolDetails;
|
|
48
48
|
isError?: boolean;
|
|
49
49
|
}, options: RenderResultOptions, uiTheme: Theme, args?: AstGrepRenderArgs): Component;
|
|
50
|
+
describeCall(args: AstGrepRenderArgs): NativeToolView;
|
|
51
|
+
describeResult(result: {
|
|
52
|
+
content: Array<{
|
|
53
|
+
type: string;
|
|
54
|
+
text?: string;
|
|
55
|
+
}>;
|
|
56
|
+
details?: AstGrepToolDetails;
|
|
57
|
+
isError?: boolean;
|
|
58
|
+
}, _options: RenderResultOptions, args?: AstGrepRenderArgs): NativeToolView;
|
|
50
59
|
mergeCallAndResult: true;
|
|
51
60
|
};
|
|
52
61
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Text } from "../components/text.js";
|
|
2
2
|
import type { Theme } from "../theme/theme.js";
|
|
3
|
+
import type { NativeToolView, ToolRenderResult } from "./renderer.js";
|
|
3
4
|
import type { TruncationResult } from "./streaming-output.js";
|
|
4
5
|
/** Whether a lower or higher metric is better. */
|
|
5
6
|
export type MetricDirection = "lower" | "higher";
|
|
@@ -127,7 +128,11 @@ export declare const initExperimentToolRenderer: {
|
|
|
127
128
|
renderCall(args: {
|
|
128
129
|
name: string;
|
|
129
130
|
}, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
130
|
-
renderResult(result:
|
|
131
|
+
renderResult(result: ToolRenderResult<InitExperimentDetails>): Text;
|
|
132
|
+
describeCall(args: {
|
|
133
|
+
name: string;
|
|
134
|
+
}): NativeToolView;
|
|
135
|
+
describeResult(result: ToolRenderResult<InitExperimentDetails>): NativeToolView | undefined;
|
|
131
136
|
};
|
|
132
137
|
/** Render log-experiment tool calls and results. */
|
|
133
138
|
export declare const logExperimentToolRenderer: {
|
|
@@ -135,12 +140,19 @@ export declare const logExperimentToolRenderer: {
|
|
|
135
140
|
status: ExperimentStatus;
|
|
136
141
|
description: string;
|
|
137
142
|
}, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
138
|
-
renderResult(result:
|
|
143
|
+
renderResult(result: ToolRenderResult<LogDetails>, _options: import("./renderer.js").RenderResultContextOptions, theme: Theme): Text;
|
|
144
|
+
describeCall(args: {
|
|
145
|
+
status: ExperimentStatus;
|
|
146
|
+
description: string;
|
|
147
|
+
}): NativeToolView;
|
|
148
|
+
describeResult(result: ToolRenderResult<LogDetails>): NativeToolView | undefined;
|
|
139
149
|
};
|
|
140
150
|
/** Render run-experiment tool calls and results. */
|
|
141
151
|
export declare const runExperimentToolRenderer: {
|
|
142
152
|
renderCall(_args: unknown, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
143
|
-
renderResult(result:
|
|
153
|
+
renderResult(result: ToolRenderResult<RunDetails | RunExperimentProgressDetails>, options: import("./renderer.js").RenderResultContextOptions, theme: Theme): Text;
|
|
154
|
+
describeCall(): NativeToolView;
|
|
155
|
+
describeResult(result: ToolRenderResult<RunDetails | RunExperimentProgressDetails>): NativeToolView | undefined;
|
|
144
156
|
};
|
|
145
157
|
/** Persisted experiment notes after an update. */
|
|
146
158
|
export interface UpdateNotesDetails {
|
|
@@ -152,5 +164,10 @@ export declare const updateNotesToolRenderer: {
|
|
|
152
164
|
body: string;
|
|
153
165
|
append_idea?: string;
|
|
154
166
|
}, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
155
|
-
renderResult(result:
|
|
167
|
+
renderResult(result: ToolRenderResult<UpdateNotesDetails>, _options: import("./renderer.js").RenderResultContextOptions, theme: Theme): Text;
|
|
168
|
+
describeCall(args: {
|
|
169
|
+
body: string;
|
|
170
|
+
append_idea?: string;
|
|
171
|
+
}): NativeToolView;
|
|
172
|
+
describeResult(result: ToolRenderResult<UpdateNotesDetails>): NativeToolView | undefined;
|
|
156
173
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
2
|
import { type Theme } from "../theme/theme.js";
|
|
3
3
|
import { type OutputMeta } from "./output-meta.js";
|
|
4
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
4
|
+
import type { NativeToolView, RenderResultContextOptions, RenderResultOptions } from "./renderer.js";
|
|
5
5
|
/** Default collapsed shell output preview height. */
|
|
6
6
|
export declare const BASH_DEFAULT_PREVIEW_LINES = 10;
|
|
7
7
|
/** LLM-facing footer appended when a tool call becomes a background job. */
|
|
@@ -76,6 +76,11 @@ export declare function getBashEnvForDisplay(args: BashRenderArgs): Record<strin
|
|
|
76
76
|
* `theme.fg("dim", ...)` form render only the first line as dim.
|
|
77
77
|
*/
|
|
78
78
|
export declare function formatBashCommandLines(args: BashRenderArgs, uiTheme: Theme): string[];
|
|
79
|
+
/**
|
|
80
|
+
* Plain (unstyled) command line for native views: `cd <dir> && NAME="…" <command>`,
|
|
81
|
+
* built from the same decoded display args (incl. streamed `__partialJson` env) as the ANSI path.
|
|
82
|
+
*/
|
|
83
|
+
export declare function formatBashCommandText(args: BashRenderArgs): string;
|
|
79
84
|
/** Builds a shell transcript renderer with caller-supplied command labels. */
|
|
80
85
|
export declare function createShellRenderer<TArgs>(config: ShellRendererConfig<TArgs>): {
|
|
81
86
|
renderCall(args: TArgs, options: RenderResultOptions, uiTheme: Theme): Component;
|
|
@@ -89,6 +94,17 @@ export declare function createShellRenderer<TArgs>(config: ShellRendererConfig<T
|
|
|
89
94
|
}, options: RenderResultOptions & {
|
|
90
95
|
renderContext?: BashRenderContext;
|
|
91
96
|
}, uiTheme: Theme, args?: TArgs): Component;
|
|
97
|
+
describeCall(args: TArgs, options: RenderResultOptions): NativeToolView;
|
|
98
|
+
describeResult(result: {
|
|
99
|
+
content: Array<{
|
|
100
|
+
type: string;
|
|
101
|
+
text?: string;
|
|
102
|
+
}>;
|
|
103
|
+
details?: BashToolDetails;
|
|
104
|
+
isError?: boolean;
|
|
105
|
+
}, options: RenderResultContextOptions & {
|
|
106
|
+
renderContext?: BashRenderContext;
|
|
107
|
+
}, args?: TArgs): NativeToolView;
|
|
92
108
|
mergeCallAndResult: true;
|
|
93
109
|
inline: true;
|
|
94
110
|
};
|
|
@@ -105,6 +121,19 @@ export declare const bashToolRenderer: {
|
|
|
105
121
|
}, options: RenderResultOptions & {
|
|
106
122
|
renderContext?: BashRenderContext;
|
|
107
123
|
}, uiTheme: Theme, args?: BashRenderArgs | undefined): Component;
|
|
124
|
+
describeCall(args: BashRenderArgs, options: RenderResultOptions): NativeToolView;
|
|
125
|
+
describeResult(result: {
|
|
126
|
+
content: {
|
|
127
|
+
type: string;
|
|
128
|
+
text?: string;
|
|
129
|
+
}[];
|
|
130
|
+
details?: BashToolDetails;
|
|
131
|
+
isError?: boolean;
|
|
132
|
+
}, options: RenderResultOptions & {
|
|
133
|
+
renderContext?: Record<string, unknown>;
|
|
134
|
+
} & {
|
|
135
|
+
renderContext?: BashRenderContext;
|
|
136
|
+
}, args?: BashRenderArgs | undefined): NativeToolView;
|
|
108
137
|
mergeCallAndResult: true;
|
|
109
138
|
inline: true;
|
|
110
139
|
};
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { Component } from "../tui.js";
|
|
9
9
|
import { type Theme } from "../theme/theme.js";
|
|
10
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
10
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
11
11
|
import { type CardToolResult } from "./result-card.js";
|
|
12
12
|
/** Summary of a `cfg://` read, attached to read tool details. */
|
|
13
13
|
export interface CfgReadDetails {
|
|
@@ -33,5 +33,9 @@ export interface CfgWriteDetails {
|
|
|
33
33
|
}
|
|
34
34
|
/** Render `read cfg://…`: pending header, or the highlighted listing with counts. */
|
|
35
35
|
export declare function renderCfgRead(url: string, result: CardToolResult | undefined, details: CfgReadDetails | undefined, options: RenderResultOptions, theme: Theme): Component;
|
|
36
|
+
/** TSP view of `read cfg://…`: path and counts in the head, the listing as YAML. */
|
|
37
|
+
export declare function describeCfgRead(url: string, result: CardToolResult | undefined, details: CfgReadDetails | undefined): NativeToolView;
|
|
38
|
+
/** TSP view of `write cfg://…[/save]`: scope/outcome in the head, then `previous → value`. */
|
|
39
|
+
export declare function describeCfgWrite(url: string, content: string | undefined, result: CardToolResult | undefined, details: CfgWriteDetails | undefined): NativeToolView;
|
|
36
40
|
/** Render `write cfg://…[/save]`: the proposed value while pending, then the approved/declined change. */
|
|
37
41
|
export declare function renderCfgWrite(url: string, content: string | undefined, result: CardToolResult | undefined, details: CfgWriteDetails | undefined, options: RenderResultOptions, theme: Theme): Component;
|