@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
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ThinkingLevel } from "@oh-my-pi/pi-agent-core";
|
|
2
|
+
import type { TspSpan, TspTone } from "@oh-my-pi/pi-wire";
|
|
3
|
+
import { span } from "../native/describe";
|
|
2
4
|
import { Ellipsis, visibleWidth } from "../utils";
|
|
3
5
|
import { formatMetricRow } from "../components/metric";
|
|
4
6
|
import { renderProgressBar } from "../components/progress-bar";
|
|
5
7
|
import { renderTableRow } from "../components/table";
|
|
6
8
|
import { formatDuration, formatNumber } from "@oh-my-pi/pi-utils";
|
|
7
9
|
import type { ThemeColor } from "../theme/theme";
|
|
8
|
-
import { type AgentRecordLike, MAIN_AGENT_ID } from "./agent-hub-types";
|
|
10
|
+
import { type AgentRecordLike, type AgentStatus, MAIN_AGENT_ID } from "./agent-hub-types";
|
|
9
11
|
import { parseThinkingLevel } from "../thinking";
|
|
10
12
|
import { TRUNCATE_LENGTHS, truncateToWidth } from "../render/render-utils";
|
|
11
13
|
import { sanitizeDisplaySingleLine } from "./extensions/display-text";
|
|
@@ -37,20 +39,62 @@ export function clampHubLine(line: string, width: number): string {
|
|
|
37
39
|
return truncateToWidth(line.replace(/[\r\n]+/g, " "), Math.max(1, width), Ellipsis.Omit);
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
+
/** Semantic tone of each roster status; shared by the ANSI glyphs and native spans. */
|
|
43
|
+
const STATUS_TONE = {
|
|
44
|
+
running: "accent",
|
|
45
|
+
idle: "success",
|
|
46
|
+
parked: "muted",
|
|
47
|
+
aborted: "error",
|
|
48
|
+
} as const satisfies Record<AgentStatus, TspTone & ThemeColor>;
|
|
49
|
+
|
|
50
|
+
function statusSymbol(status: AgentStatus): string {
|
|
42
51
|
switch (status) {
|
|
43
52
|
case "running":
|
|
44
|
-
return theme.
|
|
53
|
+
return theme.status.running;
|
|
45
54
|
case "idle":
|
|
46
|
-
return theme.
|
|
55
|
+
return theme.status.enabled;
|
|
47
56
|
case "parked":
|
|
48
|
-
return theme.
|
|
57
|
+
return theme.status.shadowed;
|
|
49
58
|
case "aborted":
|
|
50
|
-
return theme.
|
|
59
|
+
return theme.status.aborted;
|
|
51
60
|
}
|
|
52
61
|
}
|
|
53
62
|
|
|
63
|
+
/** Status glyph, colored per theme status conventions. The title-line counts spell out the words. */
|
|
64
|
+
export function statusGlyph(status: AgentRecordLike["status"]): string {
|
|
65
|
+
return theme.fg(STATUS_TONE[status], statusSymbol(status));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Native tone for a roster status. */
|
|
69
|
+
export function statusTone(status: AgentStatus): TspTone {
|
|
70
|
+
return STATUS_TONE[status];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Picker status dot per roster status: running agents take the live `pending` dot (§9.1). */
|
|
74
|
+
const STATUS_DOT = {
|
|
75
|
+
running: "pending",
|
|
76
|
+
idle: "success",
|
|
77
|
+
parked: "muted",
|
|
78
|
+
aborted: "error",
|
|
79
|
+
} as const satisfies Record<AgentStatus, TspTone>;
|
|
80
|
+
|
|
81
|
+
/** Picker row dot for a roster status. */
|
|
82
|
+
export function statusDot(status: AgentStatus): TspTone {
|
|
83
|
+
return STATUS_DOT[status];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const ASSIGNMENT_PREFIX = /^\s*Complete assignment thoroughly:\s*/i;
|
|
87
|
+
|
|
88
|
+
/** One-line task summary: the subagent prompt's fixed assignment preamble is not part of the task. */
|
|
89
|
+
export function taskSummary(task: string): string {
|
|
90
|
+
return sanitizeDisplaySingleLine(task.replace(ASSIGNMENT_PREFIX, ""));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** Native span of {@link statusGlyph}. */
|
|
94
|
+
export function statusGlyphSpan(status: AgentStatus): TspSpan {
|
|
95
|
+
return span(statusSymbol(status), STATUS_TONE[status]);
|
|
96
|
+
}
|
|
97
|
+
|
|
54
98
|
export function statusText(status: AgentRecordLike["status"], text: string): string {
|
|
55
99
|
switch (status) {
|
|
56
100
|
case "running":
|
|
@@ -64,14 +108,37 @@ export function statusText(status: AgentRecordLike["status"], text: string): str
|
|
|
64
108
|
}
|
|
65
109
|
}
|
|
66
110
|
|
|
111
|
+
function showsThinkingLevel(level: ThinkingLevel | undefined): level is Exclude<ThinkingLevel, "off" | "inherit"> {
|
|
112
|
+
return level !== undefined && level !== ThinkingLevel.Off && level !== ThinkingLevel.Inherit;
|
|
113
|
+
}
|
|
114
|
+
|
|
67
115
|
/** Model id + thinking level (`sonnet-4-6 ◒ high`), level colored per theme. */
|
|
68
116
|
function formatModelBadge(modelId: string, level: ThinkingLevel | undefined): string {
|
|
69
117
|
const model = theme.fg("muted", sanitizeDisplaySingleLine(modelId));
|
|
70
|
-
if (!level
|
|
118
|
+
if (!showsThinkingLevel(level)) return model;
|
|
71
119
|
const display = theme.thinking[level] ?? level;
|
|
72
120
|
return `${model} ${theme.getThinkingBorderColor(level)(display)}`;
|
|
73
121
|
}
|
|
74
122
|
|
|
123
|
+
/** Theme token matching {@link Theme.getThinkingBorderColor} for native spans. */
|
|
124
|
+
function thinkingToken(level: ThinkingLevel): ThemeColor {
|
|
125
|
+
switch (level) {
|
|
126
|
+
case ThinkingLevel.Minimal:
|
|
127
|
+
return "thinkingMinimal";
|
|
128
|
+
case ThinkingLevel.Low:
|
|
129
|
+
return "thinkingLow";
|
|
130
|
+
case ThinkingLevel.Medium:
|
|
131
|
+
return "thinkingMedium";
|
|
132
|
+
case ThinkingLevel.High:
|
|
133
|
+
return "thinkingHigh";
|
|
134
|
+
case ThinkingLevel.XHigh:
|
|
135
|
+
case ThinkingLevel.Max:
|
|
136
|
+
return "thinkingXhigh";
|
|
137
|
+
default:
|
|
138
|
+
return "thinkingOff";
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
75
142
|
/** Host-resolved model-role label and color. */
|
|
76
143
|
export interface AgentRoleDisplay {
|
|
77
144
|
color?: ThemeColor;
|
|
@@ -84,8 +151,25 @@ export function formatRoleBadge(role: string, info: AgentRoleDisplay): string {
|
|
|
84
151
|
return theme.fg(info.color ?? "muted", sanitizeDisplaySingleLine(info.tag ?? info.name ?? role));
|
|
85
152
|
}
|
|
86
153
|
|
|
87
|
-
/**
|
|
88
|
-
function
|
|
154
|
+
/** Native span of {@link formatRoleBadge}. */
|
|
155
|
+
export function roleBadgeSpan(role: string, info: AgentRoleDisplay): TspSpan {
|
|
156
|
+
return span(sanitizeDisplaySingleLine(info.tag ?? info.name ?? role), info.color ?? "muted");
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** Model label and reasoning level a hub row reports; `fallback` marks a fallback model serving. */
|
|
160
|
+
interface ResolvedModelBadge {
|
|
161
|
+
model: string;
|
|
162
|
+
level: ThinkingLevel | undefined;
|
|
163
|
+
fallback: boolean;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** Resolve a selector, preserving provider identity when requested. */
|
|
167
|
+
function resolveSelectorBadge(
|
|
168
|
+
resolved: string,
|
|
169
|
+
fallback: boolean,
|
|
170
|
+
preserveProvider: boolean,
|
|
171
|
+
fallbackLevel: ThinkingLevel | undefined,
|
|
172
|
+
): ResolvedModelBadge {
|
|
89
173
|
const cleanResolved = sanitizeDisplaySingleLine(resolved);
|
|
90
174
|
// Model ids may themselves contain colons (`qwen3:14b`), so only treat the
|
|
91
175
|
// suffix as a thinking level when it parses as one.
|
|
@@ -93,7 +177,7 @@ function formatResolvedModelBadge(resolved: string, preserveProvider = false, fa
|
|
|
93
177
|
const explicitLevel = colon >= 0 ? parseThinkingLevel(cleanResolved.slice(colon + 1)) : undefined;
|
|
94
178
|
const selector = explicitLevel !== undefined ? cleanResolved.slice(0, colon) : cleanResolved;
|
|
95
179
|
const label = preserveProvider ? selector : selector.slice(selector.indexOf("/") + 1);
|
|
96
|
-
return
|
|
180
|
+
return { model: label, level: explicitLevel ?? fallbackLevel, fallback };
|
|
97
181
|
}
|
|
98
182
|
|
|
99
183
|
/**
|
|
@@ -106,7 +190,10 @@ function formatResolvedModelBadge(resolved: string, preserveProvider = false, fa
|
|
|
106
190
|
* the session merely points at: an armed fallback that has not served yet stays
|
|
107
191
|
* attributed to whichever model last actually spoke.
|
|
108
192
|
*/
|
|
109
|
-
|
|
193
|
+
function resolveModelBadge(
|
|
194
|
+
ref: AgentRecordLike,
|
|
195
|
+
observed: ObservableSession | undefined,
|
|
196
|
+
): ResolvedModelBadge | undefined {
|
|
110
197
|
const progress = observed?.progress;
|
|
111
198
|
const liveThinkingLevel = ref.session?.thinkingLevel;
|
|
112
199
|
const serving = ref.session?.servingModel;
|
|
@@ -114,15 +201,54 @@ export function modelBadge(ref: AgentRecordLike, observed: ObservableSession | u
|
|
|
114
201
|
(serving?.isFallback ? serving.selector : undefined) ??
|
|
115
202
|
(progress?.resolvedModelIsFallback ? progress.resolvedModel : undefined) ??
|
|
116
203
|
(ref.history?.resolvedModelIsFallback ? ref.history.resolvedModel : undefined);
|
|
117
|
-
if (fallbackSelector)
|
|
118
|
-
return `${theme.fg("warning", "fallback →")} ${formatResolvedModelBadge(fallbackSelector, true, liveThinkingLevel)}`;
|
|
119
|
-
}
|
|
204
|
+
if (fallbackSelector) return resolveSelectorBadge(fallbackSelector, true, true, liveThinkingLevel);
|
|
120
205
|
const resolvedModel = progress?.resolvedModel ?? ref.history?.resolvedModel ?? serving?.selector;
|
|
121
|
-
if (resolvedModel) return
|
|
206
|
+
if (resolvedModel) return resolveSelectorBadge(resolvedModel, false, false, liveThinkingLevel);
|
|
122
207
|
const model = ref.session?.model;
|
|
123
208
|
if (!model) return undefined;
|
|
124
|
-
|
|
125
|
-
|
|
209
|
+
return { model: model.id, level: model.thinking ? liveThinkingLevel : undefined, fallback: false };
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export function modelBadge(ref: AgentRecordLike, observed: ObservableSession | undefined): string | undefined {
|
|
213
|
+
const badge = resolveModelBadge(ref, observed);
|
|
214
|
+
if (!badge) return undefined;
|
|
215
|
+
const text = formatModelBadge(badge.model, badge.level);
|
|
216
|
+
return badge.fallback ? `${theme.fg("warning", "fallback →")} ${text}` : text;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/** A picker chip for the model that produced a row's work: label plus thinking-level colour token. */
|
|
220
|
+
export interface ModelChip {
|
|
221
|
+
text: string;
|
|
222
|
+
/** Thinking level shown next to the model (`low`), when the model reasons. */
|
|
223
|
+
level?: string;
|
|
224
|
+
/** Theme token of {@link level}. */
|
|
225
|
+
dot?: string;
|
|
226
|
+
fallback: boolean;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/** Structured {@link modelBadge} for picker chips. */
|
|
230
|
+
export function modelChip(ref: AgentRecordLike, observed: ObservableSession | undefined): ModelChip | undefined {
|
|
231
|
+
const badge = resolveModelBadge(ref, observed);
|
|
232
|
+
if (!badge) return undefined;
|
|
233
|
+
return {
|
|
234
|
+
text: sanitizeDisplaySingleLine(badge.model),
|
|
235
|
+
level: showsThinkingLevel(badge.level) ? badge.level : undefined,
|
|
236
|
+
dot: showsThinkingLevel(badge.level) ? thinkingToken(badge.level) : undefined,
|
|
237
|
+
fallback: badge.fallback,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/** Native spans of {@link modelBadge}. */
|
|
242
|
+
export function modelBadgeSpans(ref: AgentRecordLike, observed: ObservableSession | undefined): TspSpan[] | undefined {
|
|
243
|
+
const badge = resolveModelBadge(ref, observed);
|
|
244
|
+
if (!badge) return undefined;
|
|
245
|
+
const spans: TspSpan[] = [];
|
|
246
|
+
if (badge.fallback) spans.push(span("fallback → ", "warning"));
|
|
247
|
+
spans.push(span(sanitizeDisplaySingleLine(badge.model), "muted"));
|
|
248
|
+
if (showsThinkingLevel(badge.level)) {
|
|
249
|
+
spans.push(span(` ${theme.thinking[badge.level] ?? badge.level}`, thinkingToken(badge.level)));
|
|
250
|
+
}
|
|
251
|
+
return spans;
|
|
126
252
|
}
|
|
127
253
|
|
|
128
254
|
export function formatMetricDuration(metrics: AgentMetrics): string | undefined {
|
|
@@ -152,6 +278,17 @@ export function formatMetrics(metrics: AgentMetrics): string {
|
|
|
152
278
|
);
|
|
153
279
|
}
|
|
154
280
|
|
|
281
|
+
/** Plain-text {@link formatMetrics} for native spans. */
|
|
282
|
+
export function metricsText(metrics: AgentMetrics): string {
|
|
283
|
+
return [
|
|
284
|
+
formatCost(metrics.cost),
|
|
285
|
+
formatMetricDuration(metrics) ?? "time —",
|
|
286
|
+
`${formatNumber(metrics.requests)} req`,
|
|
287
|
+
`${formatNumber(metrics.tools)} tools`,
|
|
288
|
+
`${formatNumber(metrics.tokens)} tok`,
|
|
289
|
+
].join(theme.sep.dot);
|
|
290
|
+
}
|
|
291
|
+
|
|
155
292
|
/** Row-grid variant of {@link formatMetrics}: fixed-width cells so every agent's metadata
|
|
156
293
|
* line shares one column layout instead of flowing after wrapped text. Cost is left-aligned
|
|
157
294
|
* so the line starts flush; the numeric cells are right-aligned so units line up. */
|