@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
|
@@ -6,11 +6,15 @@ import { centerLine, padding } from "../utils";
|
|
|
6
6
|
import { padToWidth } from "../render/utils";
|
|
7
7
|
import { routeSgrMouseInput, type SgrMouseEvent } from "../mouse";
|
|
8
8
|
import { APP_NAME } from "@oh-my-pi/pi-utils";
|
|
9
|
-
import { gradientLogo, PI_LOGO } from "../prompt/welcome";
|
|
9
|
+
import { gradientLogo, logoNode, PI_LOGO } from "../prompt/welcome";
|
|
10
10
|
import { theme } from "../theme/theme";
|
|
11
|
+
import { col, node, span, text } from "../native/describe";
|
|
12
|
+
import type { NativeNode, NativeUiEvent } from "../native/node";
|
|
13
|
+
import { Memo } from "../native/memo";
|
|
14
|
+
import { isNativeRendering } from "../native/state";
|
|
11
15
|
import type { SetupHost } from "./scenes/types";
|
|
12
|
-
import { renderSetupOutro, SETUP_OUTRO_MS } from "./scenes/outro";
|
|
13
|
-
import { renderSetupSplash, SETUP_SPLASH_MS, SETUP_TICK_MS } from "./scenes/splash";
|
|
16
|
+
import { describeSetupOutro, renderSetupOutro, SETUP_OUTRO_MS } from "./scenes/outro";
|
|
17
|
+
import { describeSetupSplash, renderSetupSplash, SETUP_SPLASH_MS, SETUP_TICK_MS } from "./scenes/splash";
|
|
14
18
|
import type { SetupScene, SetupSceneController, SetupSceneHost, SetupSceneResult } from "./scenes/types";
|
|
15
19
|
|
|
16
20
|
type WizardPhase = "splash" | "transition" | "scene" | "outro" | "done";
|
|
@@ -20,6 +24,21 @@ const MIN_CONTENT_WIDTH = 20;
|
|
|
20
24
|
/** Cross-dissolve duration from the splash into the first scene. */
|
|
21
25
|
const SCENE_TRANSITION_MS = 420;
|
|
22
26
|
|
|
27
|
+
/** How long each timed phase lasts before the wizard advances on its own. */
|
|
28
|
+
const PHASE_LIMIT_MS: Partial<Record<WizardPhase, number>> = {
|
|
29
|
+
splash: SETUP_SPLASH_MS,
|
|
30
|
+
transition: SCENE_TRANSITION_MS,
|
|
31
|
+
outro: SETUP_OUTRO_MS,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** Nothing left to show once the wizard completed. */
|
|
35
|
+
const DONE_NODE = col([]);
|
|
36
|
+
|
|
37
|
+
function sceneFooterHint(): string {
|
|
38
|
+
const navKeys = editorKeys("tui.select.up", "tui.select.down");
|
|
39
|
+
return `${navKeys} select · ${editorKey("tui.select.confirm")} confirm · ${editorKey("tui.select.cancel")} skip · ${formatKeyHint("ctrl+c")} exit setup`;
|
|
40
|
+
}
|
|
41
|
+
|
|
23
42
|
function indentLine(line: string, width: number, indent: number): string {
|
|
24
43
|
const prefix = padding(Math.min(indent, Math.max(0, width - 1)));
|
|
25
44
|
return width > 0 ? padToWidth(prefix + line, width) : "";
|
|
@@ -54,6 +73,10 @@ export class SetupWizardComponent implements Component, OverlayFocusOwner {
|
|
|
54
73
|
#sceneIndex = 0;
|
|
55
74
|
#activeScene: SetupSceneController | undefined;
|
|
56
75
|
#timer: NodeJS.Timeout | undefined;
|
|
76
|
+
/** Native path: one-shot at the end of a timed phase; the terminal clocks the motion. */
|
|
77
|
+
#deadline: NodeJS.Timeout | undefined;
|
|
78
|
+
#nativeScene = new Memo();
|
|
79
|
+
#nativeRoot = new Memo();
|
|
57
80
|
#done = Promise.withResolvers<void>();
|
|
58
81
|
#disposed = false;
|
|
59
82
|
/** Screen row where the active scene's body began in the last rendered frame. */
|
|
@@ -80,6 +103,7 @@ export class SetupWizardComponent implements Component, OverlayFocusOwner {
|
|
|
80
103
|
}
|
|
81
104
|
|
|
82
105
|
invalidate(): void {
|
|
106
|
+
this.#nativeScene.clear();
|
|
83
107
|
this.#activeScene?.invalidate?.();
|
|
84
108
|
}
|
|
85
109
|
|
|
@@ -182,6 +206,74 @@ export class SetupWizardComponent implements Component, OverlayFocusOwner {
|
|
|
182
206
|
return this.#fitToScreen(lines, safeWidth, height);
|
|
183
207
|
}
|
|
184
208
|
|
|
209
|
+
/**
|
|
210
|
+
* Fullscreen description: splash, the active scene inside the wizard
|
|
211
|
+
* frame (brand header, step counter, title, footer hints), or the outro.
|
|
212
|
+
* The splash→scene dissolve is a row effect with no native counterpart, so
|
|
213
|
+
* a transition describes as the scene.
|
|
214
|
+
*/
|
|
215
|
+
describe(): NativeNode {
|
|
216
|
+
let content: NativeNode;
|
|
217
|
+
switch (this.#phase) {
|
|
218
|
+
case "splash":
|
|
219
|
+
content = describeSetupSplash();
|
|
220
|
+
break;
|
|
221
|
+
case "transition":
|
|
222
|
+
case "scene":
|
|
223
|
+
content = this.#describeScene();
|
|
224
|
+
break;
|
|
225
|
+
case "outro":
|
|
226
|
+
content = describeSetupOutro();
|
|
227
|
+
break;
|
|
228
|
+
case "done":
|
|
229
|
+
content = DONE_NODE;
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
return this.#nativeRoot.get([content], () =>
|
|
233
|
+
col([{ ...content, key: this.#phase === "transition" ? "scene" : this.#phase }], {
|
|
234
|
+
grow: 1,
|
|
235
|
+
role: "omp.app.setup",
|
|
236
|
+
}),
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
handleNativeEvent(event: NativeUiEvent): void {
|
|
241
|
+
if (event.type !== "action") return;
|
|
242
|
+
if (event.act === "skip" && this.#phase === "splash") this.#beginScene();
|
|
243
|
+
else if (event.act === "continue" && this.#phase === "outro") this.#complete();
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#describeScene(): NativeNode {
|
|
247
|
+
const scene = this.scenes[this.#sceneIndex];
|
|
248
|
+
const active = this.#activeScene;
|
|
249
|
+
const title = active?.title ?? scene?.title ?? "Setup";
|
|
250
|
+
const subtitle = active?.subtitle;
|
|
251
|
+
const footer = sceneFooterHint();
|
|
252
|
+
return this.#nativeScene.get([this.#sceneIndex, this.scenes.length, active, title, subtitle, footer], () => {
|
|
253
|
+
const heading: NativeNode[] = [text([span(title, "strong")])];
|
|
254
|
+
if (subtitle) heading.push(text([span(subtitle, "muted")]));
|
|
255
|
+
return col(
|
|
256
|
+
[
|
|
257
|
+
col(
|
|
258
|
+
[
|
|
259
|
+
logoNode(PI_LOGO, false),
|
|
260
|
+
text([span(APP_NAME, "accent strong")], { wrap: "none" }),
|
|
261
|
+
text([span(`Setup step ${this.#sceneIndex + 1} of ${this.scenes.length}`, "muted")], {
|
|
262
|
+
wrap: "none",
|
|
263
|
+
}),
|
|
264
|
+
],
|
|
265
|
+
{ align: "center" },
|
|
266
|
+
),
|
|
267
|
+
col(heading),
|
|
268
|
+
// Keyed by scene so a new scene's nodes never reuse the previous one's ids.
|
|
269
|
+
node("col", { grow: 1 }, active ? [active] : [], `body:${scene?.id ?? this.#sceneIndex}`),
|
|
270
|
+
col([text([span(footer, "dim")])], { align: "center" }),
|
|
271
|
+
],
|
|
272
|
+
{ gap: "md", grow: 1, role: "omp.setup.scene" },
|
|
273
|
+
);
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
|
|
185
277
|
#renderScene(width: number, height: number): string[] {
|
|
186
278
|
const scene = this.scenes[this.#sceneIndex];
|
|
187
279
|
const title = this.#activeScene?.title ?? scene?.title ?? "Setup";
|
|
@@ -202,9 +294,7 @@ export class SetupWizardComponent implements Component, OverlayFocusOwner {
|
|
|
202
294
|
header.push("");
|
|
203
295
|
this.#bodyRowStart = header.length;
|
|
204
296
|
|
|
205
|
-
const
|
|
206
|
-
const footerHint = `${navKeys} select · ${editorKey("tui.select.confirm")} confirm · ${editorKey("tui.select.cancel")} skip · ${formatKeyHint("ctrl+c")} exit setup`;
|
|
207
|
-
const footer = ["", centerLine(theme.fg("dim", footerHint), width)];
|
|
297
|
+
const footer = ["", centerLine(theme.fg("dim", sceneFooterHint()), width)];
|
|
208
298
|
const maxBodyLines = Math.max(0, height - header.length - footer.length);
|
|
209
299
|
const body = this.#activeScene?.render(contentWidth, maxBodyLines).slice(0, maxBodyLines) ?? [];
|
|
210
300
|
const lines = [...header, ...body.map(line => indentLine(line, width, SCENE_MARGIN_X))];
|
|
@@ -223,26 +313,52 @@ export class SetupWizardComponent implements Component, OverlayFocusOwner {
|
|
|
223
313
|
return fitted;
|
|
224
314
|
}
|
|
225
315
|
|
|
316
|
+
/**
|
|
317
|
+
* ANSI: repaint every tick and advance timed phases from it. Native: no
|
|
318
|
+
* repaint loop; a one-shot fires when the current timed phase ends (none
|
|
319
|
+
* while a scene is up). Call again whenever the phase changes.
|
|
320
|
+
*/
|
|
226
321
|
#startTimer(): void {
|
|
227
|
-
if (
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
if (this.#phase === "splash" && elapsed >= SETUP_SPLASH_MS) {
|
|
232
|
-
this.#beginScene();
|
|
233
|
-
} else if (this.#phase === "transition" && elapsed >= SCENE_TRANSITION_MS) {
|
|
234
|
-
this.#phase = "scene";
|
|
235
|
-
this.#phaseStartedAt = performance.now();
|
|
236
|
-
this.ctx.ui.requestRender();
|
|
237
|
-
} else if (this.#phase === "outro" && elapsed >= SETUP_OUTRO_MS) {
|
|
238
|
-
this.#complete();
|
|
239
|
-
} else {
|
|
240
|
-
this.ctx.ui.requestRender();
|
|
322
|
+
if (isNativeRendering()) {
|
|
323
|
+
if (this.#timer) {
|
|
324
|
+
clearInterval(this.#timer);
|
|
325
|
+
this.#timer = undefined;
|
|
241
326
|
}
|
|
242
|
-
|
|
327
|
+
clearTimeout(this.#deadline);
|
|
328
|
+
this.#deadline = undefined;
|
|
329
|
+
const limit = PHASE_LIMIT_MS[this.#phase];
|
|
330
|
+
if (limit === undefined) return;
|
|
331
|
+
const remaining = limit - (performance.now() - this.#phaseStartedAt);
|
|
332
|
+
this.#deadline = setTimeout(() => this.#tick(), Math.max(0, remaining));
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
if (this.#timer) return;
|
|
336
|
+
this.#timer = setInterval(() => this.#tick(), SETUP_TICK_MS);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
#tick(): void {
|
|
340
|
+
if (this.#disposed) return;
|
|
341
|
+
const elapsed = performance.now() - this.#phaseStartedAt;
|
|
342
|
+
if (this.#phase === "splash" && elapsed >= SETUP_SPLASH_MS) {
|
|
343
|
+
this.#beginScene();
|
|
344
|
+
} else if (this.#phase === "transition" && elapsed >= SCENE_TRANSITION_MS) {
|
|
345
|
+
this.#phase = "scene";
|
|
346
|
+
this.#phaseStartedAt = performance.now();
|
|
347
|
+
this.#startTimer();
|
|
348
|
+
this.ctx.ui.requestRender();
|
|
349
|
+
} else if (this.#phase === "outro" && elapsed >= SETUP_OUTRO_MS) {
|
|
350
|
+
this.#complete();
|
|
351
|
+
} else if (isNativeRendering() || !this.#timer) {
|
|
352
|
+
// Re-arm the deadline, or switch loops when the native surface opened/closed.
|
|
353
|
+
this.#startTimer();
|
|
354
|
+
} else {
|
|
355
|
+
this.ctx.ui.requestRender();
|
|
356
|
+
}
|
|
243
357
|
}
|
|
244
358
|
|
|
245
359
|
#stopTimer(): void {
|
|
360
|
+
clearTimeout(this.#deadline);
|
|
361
|
+
this.#deadline = undefined;
|
|
246
362
|
if (!this.#timer) return;
|
|
247
363
|
clearInterval(this.#timer);
|
|
248
364
|
this.#timer = undefined;
|
|
@@ -274,13 +390,14 @@ export class SetupWizardComponent implements Component, OverlayFocusOwner {
|
|
|
274
390
|
this.#phaseStartedAt = performance.now();
|
|
275
391
|
this.#sceneFocusTarget = undefined;
|
|
276
392
|
this.ctx.ui.setFocus(this);
|
|
393
|
+
this.#startTimer();
|
|
277
394
|
void this.#activeScene.onMount?.();
|
|
278
395
|
this.ctx.ui.requestRender();
|
|
279
396
|
}
|
|
280
397
|
|
|
281
|
-
/** Enter the first scene through a dissolve from the splash. */
|
|
398
|
+
/** Enter the first scene through a dissolve from the splash (a row effect, so native cuts straight in). */
|
|
282
399
|
#beginScene(): void {
|
|
283
|
-
this.#mountSceneController("transition");
|
|
400
|
+
this.#mountSceneController(isNativeRendering() ? "scene" : "transition");
|
|
284
401
|
}
|
|
285
402
|
|
|
286
403
|
#mountCurrentScene(): void {
|
package/src/setup/wizard.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { SetupHost } from "./scenes/types";
|
|
|
3
3
|
import { composerSetupScene } from "./scenes/composer";
|
|
4
4
|
import { glyphSetupScene } from "./scenes/glyph";
|
|
5
5
|
import { modelSetupScene } from "./scenes/model";
|
|
6
|
-
import { providersSetupScene } from "./scenes/
|
|
6
|
+
import { providersSetupScene } from "./scenes/sign-in";
|
|
7
7
|
import { themeSetupScene } from "./scenes/theme";
|
|
8
8
|
import type { SetupScene } from "./scenes/types";
|
|
9
9
|
import { SetupWizardComponent } from "./wizard-overlay";
|