@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,6 +1,6 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
2
|
import type { Theme } from "../theme/theme.js";
|
|
3
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
3
|
+
import type { NativeToolView, RenderResultOptions, ToolRenderResult } from "./renderer.js";
|
|
4
4
|
/** Display fields captured from a debugger session. */
|
|
5
5
|
export interface DebugSessionSnapshot {
|
|
6
6
|
id: string;
|
|
@@ -55,6 +55,8 @@ export declare const debugToolRenderer: {
|
|
|
55
55
|
details?: DebugToolDetails;
|
|
56
56
|
isError?: boolean;
|
|
57
57
|
}, options: RenderResultOptions, theme: Theme, args?: DebugRenderArgs): Component;
|
|
58
|
+
describeCall(args: DebugRenderArgs): NativeToolView;
|
|
59
|
+
describeResult(result: ToolRenderResult<DebugToolDetails>, _options: RenderResultOptions, args?: DebugRenderArgs): NativeToolView | undefined;
|
|
58
60
|
mergeCallAndResult: true;
|
|
59
61
|
inline: true;
|
|
60
62
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component } from "../index.js";
|
|
2
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
2
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
3
3
|
import type { Theme } from "../theme/theme.js";
|
|
4
4
|
/** Inputs rendered by the fallback card used when a tool has no bespoke renderer. */
|
|
5
5
|
export interface DefaultToolRenderInput {
|
|
@@ -20,5 +20,10 @@ export interface DefaultToolRenderInput {
|
|
|
20
20
|
}
|
|
21
21
|
/** Format one generic tool call/result card at the available content width. */
|
|
22
22
|
export declare function formatDefaultToolExecution(input: DefaultToolRenderInput, contentWidth: number, uiTheme: Theme): string;
|
|
23
|
+
/**
|
|
24
|
+
* TSP view of the generic fallback card: the tool label with a one-line args
|
|
25
|
+
* summary as the head target; the result as a JSON tree or raw `ansi` output.
|
|
26
|
+
*/
|
|
27
|
+
export declare function describeDefaultToolExecution(input: DefaultToolRenderInput): NativeToolView;
|
|
23
28
|
/** Render the generic fallback as the state-tinted card used by direct custom tools. */
|
|
24
29
|
export declare function renderDefaultToolExecution(input: DefaultToolRenderInput, uiTheme: Theme): Component;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Edit tool renderer.
|
|
3
3
|
*/
|
|
4
4
|
import type { Component } from "../tui.js";
|
|
5
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
5
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
6
6
|
import type { FileDiagnosticsResult } from "./lsp.js";
|
|
7
7
|
import type { Theme } from "../theme/theme.js";
|
|
8
8
|
import type { OutputMeta } from "./output-meta.js";
|
|
@@ -144,6 +144,19 @@ export declare const editToolRenderer: {
|
|
|
144
144
|
renderCall(args: EditRenderArgs, options: RenderResultOptions & {
|
|
145
145
|
renderContext?: EditRenderContext;
|
|
146
146
|
}, uiTheme: Theme): Component;
|
|
147
|
+
describeCall(args: EditRenderArgs, options: RenderResultOptions & {
|
|
148
|
+
renderContext?: EditRenderContext;
|
|
149
|
+
}): NativeToolView;
|
|
150
|
+
describeResult(result: {
|
|
151
|
+
content: Array<{
|
|
152
|
+
type: string;
|
|
153
|
+
text?: string;
|
|
154
|
+
}>;
|
|
155
|
+
details?: EditToolDetails;
|
|
156
|
+
isError?: boolean;
|
|
157
|
+
}, options: RenderResultOptions & {
|
|
158
|
+
renderContext?: EditRenderContext;
|
|
159
|
+
}, args?: EditRenderArgs): NativeToolView;
|
|
147
160
|
renderResult(result: {
|
|
148
161
|
content: Array<{
|
|
149
162
|
type: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component } from "../index.js";
|
|
2
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
2
|
+
import type { NativeToolView, RenderResultContextOptions, RenderResultOptions } from "./renderer.js";
|
|
3
3
|
import { type Theme } from "../theme/theme.js";
|
|
4
4
|
import type { ImageContent } from "@oh-my-pi/pi-ai";
|
|
5
5
|
import type { OutputMeta } from "./output-meta.js";
|
|
@@ -95,6 +95,17 @@ export declare const evalToolRenderer: {
|
|
|
95
95
|
}, options: RenderResultOptions & {
|
|
96
96
|
renderContext?: EvalRenderContext;
|
|
97
97
|
}, uiTheme: Theme, _args?: EvalRenderArgs): Component;
|
|
98
|
+
describeCall(args: EvalRenderArgs, _options: RenderResultOptions): NativeToolView;
|
|
99
|
+
describeResult(result: {
|
|
100
|
+
content: Array<{
|
|
101
|
+
type: string;
|
|
102
|
+
text?: string;
|
|
103
|
+
}>;
|
|
104
|
+
details?: EvalToolDetails;
|
|
105
|
+
isError?: boolean;
|
|
106
|
+
}, options: RenderResultContextOptions & {
|
|
107
|
+
renderContext?: EvalRenderContext;
|
|
108
|
+
}, args?: EvalRenderArgs): NativeToolView;
|
|
98
109
|
mergeCallAndResult: true;
|
|
99
110
|
inline: true;
|
|
100
111
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
2
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
3
3
|
import { type Theme } from "../theme/theme.js";
|
|
4
4
|
import type { OutputMeta } from "./output-meta.js";
|
|
5
5
|
/** Display metadata for fetch tool results. */
|
|
@@ -31,6 +31,21 @@ export declare function renderReadUrlCall(args: {
|
|
|
31
31
|
url?: string;
|
|
32
32
|
raw?: boolean;
|
|
33
33
|
}, _options: RenderResultOptions, uiTheme?: Theme): Component;
|
|
34
|
+
/** TSP call view of a URL read: the head only, inline while pending. */
|
|
35
|
+
export declare function describeReadUrlCall(args: {
|
|
36
|
+
path?: string;
|
|
37
|
+
url?: string;
|
|
38
|
+
raw?: boolean;
|
|
39
|
+
}): NativeToolView;
|
|
40
|
+
/** TSP result view of a URL read: a bounded content preview over one quiet stats line. */
|
|
41
|
+
export declare function describeReadUrlResult(result: {
|
|
42
|
+
content: Array<{
|
|
43
|
+
type: string;
|
|
44
|
+
text?: string;
|
|
45
|
+
}>;
|
|
46
|
+
details?: ReadUrlToolDetails;
|
|
47
|
+
isError?: boolean;
|
|
48
|
+
}): NativeToolView;
|
|
34
49
|
/** Render URL read result with tree-based layout */
|
|
35
50
|
export declare function renderReadUrlResult(result: {
|
|
36
51
|
content: Array<{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Theme } from "../theme/theme.js";
|
|
2
2
|
import type { Component } from "../tui.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
|
/** A verified line range with its yes-probability and a one-line preview. */
|
|
6
6
|
export interface FindRange {
|
|
7
7
|
start: number;
|
|
@@ -75,6 +75,20 @@ export declare const findToolRenderer: {
|
|
|
75
75
|
details?: FindToolDetails;
|
|
76
76
|
isError?: boolean;
|
|
77
77
|
}, options: RenderResultOptions, uiTheme: Theme, args?: FindRenderArgs): Component;
|
|
78
|
+
describeCall(args: FindRenderArgs): NativeToolView;
|
|
79
|
+
/**
|
|
80
|
+
* Inline (§7.3 find): `Find “query” 2 hits · 8 files`, then per hit its
|
|
81
|
+
* score bar, path and coverage over the strongest snippets. The search
|
|
82
|
+
* accounting (τ, tokens, cost, time) is the footnote's tooltip.
|
|
83
|
+
*/
|
|
84
|
+
describeResult(result: {
|
|
85
|
+
content: Array<{
|
|
86
|
+
type: string;
|
|
87
|
+
text?: string;
|
|
88
|
+
}>;
|
|
89
|
+
details?: FindToolDetails;
|
|
90
|
+
isError?: boolean;
|
|
91
|
+
}, options: RenderResultOptions, args?: FindRenderArgs): NativeToolView;
|
|
78
92
|
mergeCallAndResult: true;
|
|
79
93
|
animatedPendingPreview: true;
|
|
80
94
|
animatedPartialResult: true;
|
|
@@ -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";
|
|
@@ -20,6 +21,8 @@ export declare const githubToolRenderer: {
|
|
|
20
21
|
details?: GhToolDetails;
|
|
21
22
|
isError?: boolean;
|
|
22
23
|
}, options: RenderResultOptions, uiTheme: Theme, args?: GithubToolRenderArgs): Component;
|
|
24
|
+
describeCall(args: GithubToolRenderArgs): NativeToolView;
|
|
25
|
+
describeResult(result: ToolRenderResult<GhToolDetails>, options: RenderResultOptions, args?: GithubToolRenderArgs): NativeToolView | undefined;
|
|
23
26
|
mergeCallAndResult: true;
|
|
24
27
|
};
|
|
25
28
|
import type { OutputMeta } from "./output-meta.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
2
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
3
3
|
import { type Theme } from "../theme/theme.js";
|
|
4
4
|
import type { OutputMeta } from "./output-meta.js";
|
|
5
5
|
import type { TruncationResult } from "./streaming-output.js";
|
|
@@ -39,6 +39,19 @@ export declare const globToolRenderer: {
|
|
|
39
39
|
details?: GlobToolDetails;
|
|
40
40
|
isError?: boolean;
|
|
41
41
|
}, options: RenderResultOptions, uiTheme: Theme, args?: GlobRenderArgs): Component;
|
|
42
|
+
describeCall(args: GlobRenderArgs): NativeToolView;
|
|
43
|
+
/**
|
|
44
|
+
* Inline (§7.3 glob): `Glob “pattern” 5 files`, then the files as rows
|
|
45
|
+
* (≤ 6) or a wrap of chips; one quiet footnote for limits and skipped paths.
|
|
46
|
+
*/
|
|
47
|
+
describeResult(result: {
|
|
48
|
+
content: Array<{
|
|
49
|
+
type: string;
|
|
50
|
+
text?: string;
|
|
51
|
+
}>;
|
|
52
|
+
details?: GlobToolDetails;
|
|
53
|
+
isError?: boolean;
|
|
54
|
+
}, _options: RenderResultOptions, args?: GlobRenderArgs): NativeToolView;
|
|
42
55
|
mergeCallAndResult: true;
|
|
43
56
|
};
|
|
44
57
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
2
|
import type { Theme } from "../theme/theme.js";
|
|
3
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
3
|
+
import type { NativeToolView, RenderResultOptions, ToolRenderResult } from "./renderer.js";
|
|
4
4
|
/** Lifecycle state of a tracked goal. */
|
|
5
5
|
export type GoalStatus = "active" | "paused" | "budget-limited" | "complete" | "dropped";
|
|
6
6
|
/** Serializable goal progress and resource budget. */
|
|
@@ -37,6 +37,8 @@ export declare const goalToolRenderer: {
|
|
|
37
37
|
details?: GoalToolDetails;
|
|
38
38
|
isError?: boolean;
|
|
39
39
|
}, _options: RenderResultOptions, uiTheme: Theme, args?: GoalRenderArgs): Component;
|
|
40
|
+
describeCall(args: GoalRenderArgs): NativeToolView;
|
|
41
|
+
describeResult(result: ToolRenderResult<GoalToolDetails>, _options: RenderResultOptions, args?: GoalRenderArgs): NativeToolView | undefined;
|
|
40
42
|
mergeCallAndResult: true;
|
|
41
43
|
};
|
|
42
44
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
2
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
3
3
|
import { type Theme } from "../theme/theme.js";
|
|
4
4
|
import type { OutputMeta } from "./output-meta.js";
|
|
5
5
|
import type { TruncationResult } from "./streaming-output.js";
|
|
@@ -59,6 +59,19 @@ export declare const grepToolRenderer: {
|
|
|
59
59
|
details?: GrepToolDetails;
|
|
60
60
|
isError?: boolean;
|
|
61
61
|
}, options: RenderResultOptions, uiTheme: Theme, args?: GrepRenderArgs): Component;
|
|
62
|
+
describeCall(args: GrepRenderArgs): NativeToolView;
|
|
63
|
+
/**
|
|
64
|
+
* Inline (§7.3 grep): `Grep “pattern” 5 matches · 2 files in src`, then
|
|
65
|
+
* the matches grouped by file; collapsed shows the first two files.
|
|
66
|
+
*/
|
|
67
|
+
describeResult(result: {
|
|
68
|
+
content: Array<{
|
|
69
|
+
type: string;
|
|
70
|
+
text?: string;
|
|
71
|
+
}>;
|
|
72
|
+
details?: GrepToolDetails;
|
|
73
|
+
isError?: boolean;
|
|
74
|
+
}, options: RenderResultOptions, args?: GrepRenderArgs): NativeToolView;
|
|
62
75
|
mergeCallAndResult: true;
|
|
63
76
|
};
|
|
64
77
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NativeNode } from "../native/node.js";
|
|
1
2
|
/**
|
|
2
3
|
* One file's contribution to a grouped file output. The header itself is generated
|
|
3
4
|
* by `formatGroupedFiles` (one `#` per nesting level); use `headerSuffix` to tack
|
|
@@ -35,6 +36,19 @@ export interface GroupedFilesOutput {
|
|
|
35
36
|
* root-level file so the renderers can split the output into collapsible groups.
|
|
36
37
|
*/
|
|
37
38
|
export declare function formatGroupedFiles(files: string[], renderFile: (filePath: string) => GroupedFileSection): GroupedFilesOutput;
|
|
39
|
+
/** One file's rendered search matches, plus its hashline tag when editable. */
|
|
40
|
+
export interface FileMatchSection {
|
|
41
|
+
model: string[];
|
|
42
|
+
display: string[];
|
|
43
|
+
tag?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Render per-file search matches (grep / ast-grep). Grouped mode nests files
|
|
47
|
+
* via {@link formatGroupedFiles}, appending `#tag` to headers; flat mode
|
|
48
|
+
* blank-separates files and prefixes each with a hashline header when tagged.
|
|
49
|
+
* Files with no model lines are omitted.
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatFileMatches(files: string[], grouped: boolean, renderFile: (filePath: string) => FileMatchSection): GroupedFilesOutput;
|
|
38
52
|
/** Per-line classification of grouped output, used by renderers for hyperlinks. */
|
|
39
53
|
export interface GroupedLineContext {
|
|
40
54
|
/** Directory header, file header, or any non-header body/content line. */
|
|
@@ -69,3 +83,47 @@ export declare function classifyGroupedLines(lines: readonly string[], headerBas
|
|
|
69
83
|
* indices lets callers slice parallel arrays (raw lines, styled lines, contexts).
|
|
70
84
|
*/
|
|
71
85
|
export declare function groupLineIndicesByBlank(rawLines: readonly string[]): number[][];
|
|
86
|
+
/** One event of {@link walkGroupedOutput}: a directory header, a file header, or a non-blank body line. */
|
|
87
|
+
export type GroupedOutputEvent = {
|
|
88
|
+
readonly kind: "dir";
|
|
89
|
+
} | {
|
|
90
|
+
readonly kind: "file";
|
|
91
|
+
readonly path: string;
|
|
92
|
+
readonly suffix?: string;
|
|
93
|
+
} | {
|
|
94
|
+
readonly kind: "line";
|
|
95
|
+
readonly text: string;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Walk grouped output (`# dir/`, `## file.ts (suffix)`, body lines), resolving
|
|
99
|
+
* each file header to its full display path (the folded directory chain
|
|
100
|
+
* joined with the name) and dropping blank separator lines.
|
|
101
|
+
*/
|
|
102
|
+
export declare function walkGroupedOutput(lines: readonly string[]): Generator<GroupedOutputEvent>;
|
|
103
|
+
/** One source line for {@link numberedCode}: its number (`null` for an elision marker), text and match mark. */
|
|
104
|
+
export interface NumberedLine {
|
|
105
|
+
n: number | null;
|
|
106
|
+
text: string;
|
|
107
|
+
mark?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Numbered `code` for possibly non-contiguous source lines: one block per run
|
|
111
|
+
* of consecutive line numbers (`start` = the run's first line, match lines
|
|
112
|
+
* `mark`ed), with a `…` row wherever the numbers jump or an elision marker
|
|
113
|
+
* (`n: null`) sits. No path header: the row or head above names the file.
|
|
114
|
+
*/
|
|
115
|
+
export declare function numberedCode(lines: readonly NumberedLine[], opts?: {
|
|
116
|
+
lang?: string;
|
|
117
|
+
}): NativeNode[];
|
|
118
|
+
/**
|
|
119
|
+
* Describe grouped search output (grep / ast-grep / ast-edit display content)
|
|
120
|
+
* by file (§7.3 grep): per file a 22px path row (dim dir, strong name, the
|
|
121
|
+
* header's suffix or the match count as a chip), then its lines as
|
|
122
|
+
* {@link numberedCode} with match lines marked and `…` between non-adjacent
|
|
123
|
+
* runs. Unnumbered body lines stay plain `code`. `maxFiles` keeps only the
|
|
124
|
+
* first files (the caller says how many were left out).
|
|
125
|
+
*/
|
|
126
|
+
export declare function describeGroupedOutput(lines: readonly string[], options?: {
|
|
127
|
+
lang?: (path: string) => string | undefined;
|
|
128
|
+
maxFiles?: number;
|
|
129
|
+
}): NativeNode[];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Theme } from "../theme/theme.js";
|
|
2
|
+
import type { NativeNode } from "../native/node.js";
|
|
2
3
|
/** Max depth for JSON tree rendering */
|
|
3
4
|
export declare const JSON_TREE_MAX_DEPTH_COLLAPSED = 2;
|
|
4
5
|
/** Maximum expanded JSON tree depth. */
|
|
@@ -57,3 +58,22 @@ export declare function renderJsonTreeLines(value: unknown, theme: Theme, option
|
|
|
57
58
|
lines: string[];
|
|
58
59
|
truncated: boolean;
|
|
59
60
|
};
|
|
61
|
+
/** Data caps for {@link describeJsonTree}. */
|
|
62
|
+
export interface JsonTreeDescribeOptions {
|
|
63
|
+
/** Deepest level expanded into child nodes; deeper containers get a `…` child. */
|
|
64
|
+
maxDepth?: number;
|
|
65
|
+
/** Tree nodes emitted before the remaining siblings collapse into `… N more`. */
|
|
66
|
+
maxNodes?: number;
|
|
67
|
+
/** Characters kept per string scalar (data cap, not a width). */
|
|
68
|
+
maxScalarLen?: number;
|
|
69
|
+
/** Levels open initially; deeper containers start closed. */
|
|
70
|
+
openDepth?: number;
|
|
71
|
+
/** Root object keys omitted. Defaults to internal tool argument metadata. */
|
|
72
|
+
hiddenRootKeys?: readonly string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* TSP `tree` of a JSON value: containers become expandable nodes labelled with
|
|
76
|
+
* their key and size, scalars become `key: value` leaves styled by type.
|
|
77
|
+
* Bounded by depth, node count and scalar length; no width math.
|
|
78
|
+
*/
|
|
79
|
+
export declare function describeJsonTree(value: unknown, options?: JsonTreeDescribeOptions): NativeNode;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* LSP Tool TUI Rendering
|
|
3
|
-
*
|
|
4
|
-
* Renders LSP tool calls and results in the TUI with:
|
|
5
|
-
* - Syntax-highlighted hover information
|
|
6
|
-
* - Color-coded diagnostics by severity
|
|
7
|
-
* - Grouped references and symbols
|
|
8
|
-
* - Collapsible/expandable views
|
|
9
|
-
*/
|
|
10
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
1
|
+
import type { NativeToolView, RenderResultOptions, ToolRenderResult } from "./renderer.js";
|
|
11
2
|
import type { Component } from "../tui.js";
|
|
12
3
|
import { Text } from "../components/text.js";
|
|
13
4
|
import { type Theme } from "../theme/theme.js";
|
|
@@ -67,6 +58,8 @@ export declare function renderResult(result: {
|
|
|
67
58
|
export declare const lspToolRenderer: {
|
|
68
59
|
renderCall: typeof renderCall;
|
|
69
60
|
renderResult: typeof renderResult;
|
|
61
|
+
describeCall(args: LspParams): NativeToolView;
|
|
62
|
+
describeResult(result: ToolRenderResult<LspToolDetails>, _options: RenderResultOptions, args?: LspParams): NativeToolView | undefined;
|
|
70
63
|
mergeCallAndResult: true;
|
|
71
64
|
inline: true;
|
|
72
65
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* showing args and output in JSON tree format similar to task tool.
|
|
6
6
|
*/
|
|
7
7
|
import { type Component } from "../index.js";
|
|
8
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
8
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
9
9
|
import { type Theme } from "../theme/theme.js";
|
|
10
10
|
/**
|
|
11
11
|
* Render MCP tool call.
|
|
@@ -22,6 +22,21 @@ export declare function renderMCPResult(result: {
|
|
|
22
22
|
details?: MCPToolDetails;
|
|
23
23
|
isError?: boolean;
|
|
24
24
|
}, options: RenderResultOptions, theme: Theme, args?: Record<string, unknown>): Component;
|
|
25
|
+
/** Native MCP call view: the head only, inline while pending. */
|
|
26
|
+
export declare function describeMCPCall(args: Record<string, unknown>, label: string): NativeToolView;
|
|
27
|
+
/**
|
|
28
|
+
* Native MCP result view: JSON output as a JSON tree, Markdown when the
|
|
29
|
+
* preference is on, otherwise the raw text as tool output. The head's args
|
|
30
|
+
* summary stands in for the ANSI card's Args tree.
|
|
31
|
+
*/
|
|
32
|
+
export declare function describeMCPResult(result: {
|
|
33
|
+
content: Array<{
|
|
34
|
+
type: string;
|
|
35
|
+
text?: string;
|
|
36
|
+
}>;
|
|
37
|
+
details?: MCPToolDetails;
|
|
38
|
+
isError?: boolean;
|
|
39
|
+
}, _options: RenderResultOptions, args?: Record<string, unknown>): NativeToolView | undefined;
|
|
25
40
|
import type { OutputMeta } from "./output-meta.js";
|
|
26
41
|
/** Set whether plain MCP text results render as Markdown. */
|
|
27
42
|
export declare function setMcpRenderMarkdownResults(enabled: boolean): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NativeToolView } from "./renderer.js";
|
|
1
2
|
/**
|
|
2
3
|
* Inline TUI renderers for the long-term memory tools (`retain`, `recall`,
|
|
3
4
|
* `reflect`).
|
|
@@ -33,6 +34,15 @@ export declare const retainToolRenderer: {
|
|
|
33
34
|
};
|
|
34
35
|
isError?: boolean;
|
|
35
36
|
}, options: RenderResultOptions, theme: Theme, args?: RetainRenderArgs): Component;
|
|
37
|
+
describeCall(args: RetainRenderArgs): NativeToolView | undefined;
|
|
38
|
+
describeResult(result: {
|
|
39
|
+
content: Array<{
|
|
40
|
+
type: string;
|
|
41
|
+
text?: string;
|
|
42
|
+
}>;
|
|
43
|
+
details?: MemoryRetainDetails;
|
|
44
|
+
isError?: boolean;
|
|
45
|
+
}, _options: RenderResultOptions, args?: RetainRenderArgs): NativeToolView | undefined;
|
|
36
46
|
};
|
|
37
47
|
/** Render recalled memories with an expandable body. */
|
|
38
48
|
export declare const recallToolRenderer: {
|
|
@@ -46,6 +56,14 @@ export declare const recallToolRenderer: {
|
|
|
46
56
|
}>;
|
|
47
57
|
isError?: boolean;
|
|
48
58
|
}, options: RenderResultOptions, theme: Theme, args?: QueryRenderArgs): Component;
|
|
59
|
+
describeCall(args: QueryRenderArgs): NativeToolView;
|
|
60
|
+
describeResult(result: {
|
|
61
|
+
content: Array<{
|
|
62
|
+
type: string;
|
|
63
|
+
text?: string;
|
|
64
|
+
}>;
|
|
65
|
+
isError?: boolean;
|
|
66
|
+
}, _options: RenderResultOptions, args?: QueryRenderArgs): NativeToolView | undefined;
|
|
49
67
|
};
|
|
50
68
|
/** Render synthesized memory reflections. */
|
|
51
69
|
export declare const reflectToolRenderer: {
|
|
@@ -59,6 +77,14 @@ export declare const reflectToolRenderer: {
|
|
|
59
77
|
}>;
|
|
60
78
|
isError?: boolean;
|
|
61
79
|
}, options: RenderResultOptions, theme: Theme, args?: QueryRenderArgs): Component;
|
|
80
|
+
describeCall(args: QueryRenderArgs): NativeToolView;
|
|
81
|
+
describeResult(result: {
|
|
82
|
+
content: Array<{
|
|
83
|
+
type: string;
|
|
84
|
+
text?: string;
|
|
85
|
+
}>;
|
|
86
|
+
isError?: boolean;
|
|
87
|
+
}, _options: RenderResultOptions, args?: QueryRenderArgs): NativeToolView | undefined;
|
|
62
88
|
};
|
|
63
89
|
/** Number of memories accepted by retain. */
|
|
64
90
|
export interface MemoryRetainDetails {
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { TspSpan, TspText, TspTone } from "@oh-my-pi/pi-wire";
|
|
2
|
+
import type { NativeChild, NativeNode } from "../native/node.js";
|
|
3
|
+
import { type ParsedDiagnostic } from "../render/render-utils.js";
|
|
4
|
+
import type { FileDiagnosticsResult } from "./lsp.js";
|
|
5
|
+
import { type OutputMeta } from "./output-meta.js";
|
|
6
|
+
import type { NativeToolHead, NativeToolView, ToolRenderResult } from "./renderer.js";
|
|
7
|
+
/** A path for native heads: relative to the working directory when inside it, else `~`-shortened. */
|
|
8
|
+
export declare function displayPath(filePath: string): string;
|
|
9
|
+
/** `file://` link for a head's path target, when the path is absolute. */
|
|
10
|
+
export declare function fileHref(filePath: string | undefined): string | undefined;
|
|
11
|
+
/** Diff stats as one head `meta` string, `+8 −1` (U+2212 minus), or undefined when nothing changed. */
|
|
12
|
+
export declare function diffStatsMeta(added: number, removed: number): string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* One file of a multi-file edit: a borderless `section` headed by the path
|
|
15
|
+
* (→ rename) and its `+a −d`, over the file's body (its diff, diagnostics).
|
|
16
|
+
*/
|
|
17
|
+
export declare function fileDiffSection(file: {
|
|
18
|
+
path: string;
|
|
19
|
+
rename?: string;
|
|
20
|
+
added?: number;
|
|
21
|
+
removed?: number;
|
|
22
|
+
}, body: readonly NativeChild[], p: {
|
|
23
|
+
role: string;
|
|
24
|
+
tone?: TspTone;
|
|
25
|
+
}): NativeNode;
|
|
26
|
+
/**
|
|
27
|
+
* One 22px file row (role `omp.tool.file`) for read groups, grep files, glob
|
|
28
|
+
* lists and find hits: a leading glyph (the file icon unless `lead` replaces
|
|
29
|
+
* it), the path with a dim directory and a strong name (cut in the middle),
|
|
30
|
+
* a quiet `range` suffix (`:13-36`), then an optional count `chip` and a
|
|
31
|
+
* muted `detail`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function fileRow(filePath: string, p?: {
|
|
34
|
+
range?: string;
|
|
35
|
+
chip?: {
|
|
36
|
+
text: string;
|
|
37
|
+
title?: string;
|
|
38
|
+
};
|
|
39
|
+
detail?: TspText;
|
|
40
|
+
href?: string;
|
|
41
|
+
lead?: NativeNode;
|
|
42
|
+
icon?: string;
|
|
43
|
+
tone?: TspTone;
|
|
44
|
+
title?: string;
|
|
45
|
+
key?: string;
|
|
46
|
+
}): NativeNode;
|
|
47
|
+
/**
|
|
48
|
+
* Inline error view (§7.3 read error): error tone, the message's first line
|
|
49
|
+
* after `—` in the head's meta, so a collapsed inline call never hides it,
|
|
50
|
+
* and the full message as the body only when the head had to cut it short.
|
|
51
|
+
*/
|
|
52
|
+
export declare function inlineErrorView(head: NativeToolHead, message: string): NativeToolView;
|
|
53
|
+
/** Text blocks of a tool result joined by newlines, or `""`. */
|
|
54
|
+
export declare function resultText(result: ToolRenderResult<unknown>): string;
|
|
55
|
+
/**
|
|
56
|
+
* Card head: the bold `toolTitle` title, then detail spans; string details
|
|
57
|
+
* become muted plain text, empty details are skipped.
|
|
58
|
+
*/
|
|
59
|
+
export declare function toolHead(title: string, ...details: readonly (TspSpan | string | undefined)[]): TspSpan[];
|
|
60
|
+
/** Error body: wrapped error text, or a JSON `code` block when the message is structured. */
|
|
61
|
+
export declare function errorText(message: string): NativeNode;
|
|
62
|
+
/** Error card view: error tone, the tool head and the error body (`<title> failed` when empty). */
|
|
63
|
+
export declare function errorView(title: string, message: string, ...meta: readonly (string | undefined)[]): NativeToolView;
|
|
64
|
+
/** Wrapped placeholder or secondary line (`(no output)`, `No matches`, …); `lines` clamps it. */
|
|
65
|
+
export declare function noteText(message: string, token?: string, lines?: number): NativeNode;
|
|
66
|
+
/** Muted `a · b · c` metadata line, or undefined when there are no parts. */
|
|
67
|
+
export declare function statsText(parts: readonly string[]): NativeNode | undefined;
|
|
68
|
+
/** Warning line for truncation / artifact capture failures, or undefined. */
|
|
69
|
+
export declare function truncationNotice(meta: OutputMeta | undefined): NativeNode | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* The one final quiet line of a tool body (§7.2): `a · b` facts, then any
|
|
72
|
+
* truncation / artifact-capture notice from `meta`; undefined when empty.
|
|
73
|
+
*/
|
|
74
|
+
export declare function footnoteText(parts: readonly string[], meta?: OutputMeta): NativeNode | undefined;
|
|
75
|
+
/** A diagnostic's severity glyph: `x-circle` error, `warn` warning, `info`, `lightbulb` hint, in the severity tone. */
|
|
76
|
+
export declare function diagnosticGlyph(severity: ParsedDiagnostic["severity"]): NativeNode;
|
|
77
|
+
/**
|
|
78
|
+
* LSP diagnostics section for write/edit results: rows of severity icon ·
|
|
79
|
+
* `line:col` · message, most severe first, capped at five with `+N more`.
|
|
80
|
+
* Rows name the file too when the messages span several files (or `withPath`).
|
|
81
|
+
* Undefined when there is nothing to show.
|
|
82
|
+
*/
|
|
83
|
+
export declare function diagnosticsSection(diagnostics: FileDiagnosticsResult | undefined, opts?: {
|
|
84
|
+
withPath?: boolean;
|
|
85
|
+
}): NativeNode | undefined;
|
|
86
|
+
/** Head chip counting LSP diagnostics across files (`2 diagnostics`), or undefined when there are none. */
|
|
87
|
+
export declare function diagnosticsBadge(files: readonly (FileDiagnosticsResult | undefined)[]): {
|
|
88
|
+
text: string;
|
|
89
|
+
tone: TspTone;
|
|
90
|
+
} | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Component } from "../tui.js";
|
|
2
2
|
import type { Theme } from "../theme/theme.js";
|
|
3
|
-
import type { RenderResultOptions } from "./renderer.js";
|
|
3
|
+
import type { NativeToolView, RenderResultOptions } from "./renderer.js";
|
|
4
4
|
import type { AgentActivitySnapshot, CoordinationDetails, JobSnapshot } from "./wait.js";
|
|
5
5
|
import type { DaemonSnapshot } from "./daemon.js";
|
|
6
6
|
import { type CardToolResult as ToolResult } from "./result-card.js";
|
|
@@ -25,3 +25,9 @@ export declare function renderAgentWrite(to: string, body: string, result: ToolR
|
|
|
25
25
|
/** Render live and completed process writes with the URL-selected operation. */
|
|
26
26
|
export declare function renderProcWrite(id: string, action: ProcWriteAction, content: string | undefined, result: ToolResult | undefined, details: ProcWriteDetails | undefined, options: RenderResultOptions, theme: Theme): Component;
|
|
27
27
|
export declare function renderProcRead(id: string, result: ToolResult | undefined, details: ProcReadDetails | undefined, options: RenderResultOptions, theme: Theme): Component;
|
|
28
|
+
/** TSP view of an `agent://` write (IRC message). */
|
|
29
|
+
export declare function describeAgentWrite(to: string, body: string, result: ToolResult | undefined, details: CoordinationDetails | undefined): NativeToolView;
|
|
30
|
+
/** TSP view of a `proc://` write (stdin, mode change, kill). */
|
|
31
|
+
export declare function describeProcWrite(id: string, action: ProcWriteAction, content: string | undefined, result: ToolResult | undefined, details: ProcWriteDetails | undefined): NativeToolView;
|
|
32
|
+
/** TSP view of a `proc://` read: job/service detail, logs, or the process table. */
|
|
33
|
+
export declare function describeProcRead(id: string, result: ToolResult | undefined, details: ProcReadDetails | undefined): NativeToolView;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SummaryResult } from "@oh-my-pi/pi-natives";
|
|
2
2
|
import type { Component } from "../tui.js";
|
|
3
|
-
import type { RenderResultOptions, ToolActivityContext, ToolActivitySummary } from "./renderer.js";
|
|
3
|
+
import type { NativeToolView, RenderResultOptions, ToolActivityContext, ToolActivitySummary } from "./renderer.js";
|
|
4
|
+
import type { NativeNode } from "../native/node.js";
|
|
4
5
|
import type { Theme } from "../theme/theme.js";
|
|
5
6
|
import type { OutputMeta } from "./output-meta.js";
|
|
6
7
|
import type { TruncationResult } from "./streaming-output.js";
|
|
@@ -107,6 +108,13 @@ export declare function pendingFileLinkPath(inputPath: string): string;
|
|
|
107
108
|
* image reads only record the path in `meta.source`). URL/internal sources are
|
|
108
109
|
* not fs paths, so only `type: "path"` qualifies. */
|
|
109
110
|
export declare function readSourceFsPath(details: ReadToolDetails | undefined): string | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Read content as numbered `code` (no path header: the head names the file).
|
|
113
|
+
* Numbers come from `lineNumbers` (`displayContent`'s per-line numbers,
|
|
114
|
+
* `null` for an elided block; runs split with `…` between) when they cover
|
|
115
|
+
* every line, else count up from `start`.
|
|
116
|
+
*/
|
|
117
|
+
export declare function readContentCode(content: string, start: number, numbers: readonly (number | null)[] | undefined, lang: string | undefined): NativeNode[];
|
|
110
118
|
/** Render file, image, and URL reads in the transcript. */
|
|
111
119
|
export declare const readToolRenderer: {
|
|
112
120
|
activitySummary(args: unknown, _context: ToolActivityContext): ToolActivitySummary;
|
|
@@ -119,6 +127,20 @@ export declare const readToolRenderer: {
|
|
|
119
127
|
details?: ReadToolDetails;
|
|
120
128
|
isError?: boolean;
|
|
121
129
|
}, options: RenderResultOptions, uiTheme: Theme, args?: ReadRenderArgs): Component;
|
|
130
|
+
describeCall(args: ReadRenderArgs): NativeToolView;
|
|
131
|
+
/**
|
|
132
|
+
* Inline (§7.3 read): the head names the file and range; the content
|
|
133
|
+
* (numbered from the range start, no path header) is the disclosed body.
|
|
134
|
+
* An error shows its message in the head, never behind the disclosure.
|
|
135
|
+
*/
|
|
136
|
+
describeResult(result: {
|
|
137
|
+
content: Array<{
|
|
138
|
+
type: string;
|
|
139
|
+
text?: string;
|
|
140
|
+
}>;
|
|
141
|
+
details?: ReadToolDetails;
|
|
142
|
+
isError?: boolean;
|
|
143
|
+
}, _options: RenderResultOptions, args?: ReadRenderArgs): NativeToolView;
|
|
122
144
|
mergeCallAndResult: true;
|
|
123
145
|
};
|
|
124
146
|
/** Inclusive line range describing one elided span in a structural summary. */
|