@oh-my-pi/pi-tui 18.2.4 → 18.2.6
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 +23 -0
- package/README.md +43 -0
- package/dist/types/app-keybindings.d.ts +395 -0
- package/dist/types/apps/autoresearch-dashboard.d.ts +43 -0
- package/dist/types/apps/autoresearch-data.d.ts +15 -0
- package/dist/types/apps/cleanse-board.d.ts +66 -0
- package/dist/types/apps/cleanse-picker.d.ts +23 -0
- package/dist/types/apps/debug/log-formatting.d.ts +6 -0
- package/dist/types/apps/debug/log-viewer.d.ts +81 -0
- package/dist/types/apps/debug/protocol-probe.d.ts +42 -0
- package/dist/types/apps/debug/raw-sse-buffer.d.ts +58 -0
- package/dist/types/apps/debug/raw-sse.d.ts +26 -0
- package/dist/types/apps/debug/terminal-info.d.ts +34 -0
- package/dist/types/apps/debug/viewer-frame.d.ts +52 -0
- package/dist/types/apps/git/avatar.d.ts +9 -0
- package/dist/types/apps/git/colors.d.ts +49 -0
- package/dist/types/apps/git/diff-pane.d.ts +188 -0
- package/dist/types/apps/git/git-tui.d.ts +66 -0
- package/dist/types/apps/git/sidebar.d.ts +149 -0
- package/dist/types/apps/git/state.d.ts +117 -0
- package/dist/types/apps/if-bench-board.d.ts +75 -0
- package/dist/types/apps/live-visualizer.d.ts +33 -0
- package/dist/types/apps/ps-data.d.ts +51 -0
- package/dist/types/apps/ps-top.d.ts +33 -0
- package/dist/types/apps/session-picker.d.ts +26 -0
- package/dist/types/apps/setup-model-picker.d.ts +13 -0
- package/dist/types/apps/standalone-picker.d.ts +42 -0
- package/dist/types/autocomplete.d.ts +4 -0
- package/dist/types/chat/advisor-message.d.ts +11 -0
- package/dist/types/chat/assistant-message.d.ts +106 -0
- package/dist/types/chat/background-tan-message.d.ts +9 -0
- package/dist/types/chat/bash-execution.d.ts +47 -0
- package/dist/types/chat/cache-invalidation-marker.d.ts +50 -0
- package/dist/types/chat/chat-transcript-builder.d.ts +50 -0
- package/dist/types/chat/collab-prompt-message.d.ts +10 -0
- package/dist/types/chat/compaction-summary-message.d.ts +54 -0
- package/dist/types/chat/custom-message.d.ts +10 -0
- package/dist/types/chat/display-preferences.d.ts +13 -0
- package/dist/types/chat/eval-execution.d.ts +29 -0
- package/dist/types/chat/execution-shared.d.ts +51 -0
- package/dist/types/chat/extension-types.d.ts +28 -0
- package/dist/types/chat/hook-message.d.ts +10 -0
- package/dist/types/chat/image-loading.d.ts +46 -0
- package/dist/types/chat/late-diagnostics-message.d.ts +21 -0
- package/dist/types/chat/messages.d.ts +189 -0
- package/dist/types/chat/reaction.d.ts +30 -0
- package/dist/types/chat/read-target.d.ts +4 -0
- package/dist/types/chat/read-tool-group.d.ts +67 -0
- package/dist/types/chat/served-model-marker.d.ts +47 -0
- package/dist/types/chat/skill-message.d.ts +33 -0
- package/dist/types/chat/skill-title-input.d.ts +14 -0
- package/dist/types/chat/stripped-tool-calls-placeholder.d.ts +12 -0
- package/dist/types/chat/thinking-display.d.ts +12 -0
- package/dist/types/chat/todo-reminder.d.ts +13 -0
- package/dist/types/chat/tool-execution.d.ts +138 -0
- package/dist/types/chat/transcript-browser.d.ts +93 -0
- package/dist/types/chat/transcript-entry.d.ts +45 -0
- package/dist/types/chat/transcript-outline.d.ts +86 -0
- package/dist/types/chat/transcript-render-helpers.d.ts +92 -0
- package/dist/types/chat/ttsr-notification.d.ts +23 -0
- package/dist/types/chat/user-message.d.ts +52 -0
- package/dist/types/chrome/chat-block.d.ts +64 -0
- package/dist/types/chrome/collab-qrcode.d.ts +28 -0
- package/dist/types/chrome/context-thresholds.d.ts +10 -0
- package/dist/types/chrome/countdown-timer.d.ts +14 -0
- package/dist/types/chrome/diff.d.ts +14 -0
- package/dist/types/chrome/dynamic-border.d.ts +16 -0
- package/dist/types/chrome/error-block.d.ts +17 -0
- package/dist/types/chrome/form-theme.d.ts +3 -0
- package/dist/types/chrome/format.d.ts +12 -0
- package/dist/types/chrome/index.d.ts +20 -0
- package/dist/types/chrome/keybinding-hints.d.ts +40 -0
- package/dist/types/chrome/live-board.d.ts +23 -0
- package/dist/types/chrome/local-date.d.ts +4 -0
- package/dist/types/chrome/message-divider.d.ts +22 -0
- package/dist/types/chrome/message-frame.d.ts +52 -0
- package/dist/types/chrome/message-notice.d.ts +35 -0
- package/dist/types/chrome/overlay-box.d.ts +74 -0
- package/dist/types/chrome/qrcode.d.ts +48 -0
- package/dist/types/chrome/segment-track.d.ts +27 -0
- package/dist/types/chrome/select-list-mouse-routing.d.ts +4 -0
- package/dist/types/chrome/selector-helpers.d.ts +52 -0
- package/dist/types/chrome/shared.d.ts +5 -0
- package/dist/types/chrome/streaming-panel.d.ts +19 -0
- package/dist/types/chrome/tool-activity.d.ts +17 -0
- package/dist/types/chrome/transcript-container.d.ts +129 -0
- package/dist/types/chrome/transcript-status.d.ts +12 -0
- package/dist/types/chrome/visual-truncate.d.ts +19 -0
- package/dist/types/components/disclosure.d.ts +42 -0
- package/dist/types/components/form.d.ts +130 -0
- package/dist/types/components/key-value-list.d.ts +24 -0
- package/dist/types/components/layout/geometry.d.ts +73 -0
- package/dist/types/components/layout/row.d.ts +55 -0
- package/dist/types/components/layout/split-pane.d.ts +80 -0
- package/dist/types/components/layout/stack.d.ts +50 -0
- package/dist/types/components/menu-selection.d.ts +71 -0
- package/dist/types/components/metric.d.ts +44 -0
- package/dist/types/components/progress-bar.d.ts +36 -0
- package/dist/types/components/scroll-view.d.ts +53 -19
- package/dist/types/components/scroll-viewport.d.ts +46 -0
- package/dist/types/components/section.d.ts +19 -0
- package/dist/types/components/select-list.d.ts +46 -2
- package/dist/types/components/settings-list.d.ts +20 -0
- package/dist/types/components/table.d.ts +32 -0
- package/dist/types/components/tree-view.d.ts +130 -0
- package/dist/types/components/wizard-step.d.ts +60 -0
- package/dist/types/hotkeys-markdown.d.ts +7 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/keybinding-matchers.d.ts +35 -0
- package/dist/types/keys.d.ts +2 -2
- package/dist/types/lang-from-path.d.ts +9 -0
- package/dist/types/overlays/advisor-config.d.ts +114 -0
- package/dist/types/overlays/agent-activity.d.ts +41 -0
- package/dist/types/overlays/agent-hub-projection.d.ts +33 -0
- package/dist/types/overlays/agent-hub-renderer.d.ts +53 -0
- package/dist/types/overlays/agent-hub-types.d.ts +99 -0
- package/dist/types/overlays/agent-hub.d.ts +126 -0
- package/dist/types/overlays/agent-transcript-viewer.d.ts +71 -0
- package/dist/types/overlays/agents-hub.d.ts +72 -0
- package/dist/types/overlays/ask-dialog.d.ts +88 -0
- package/dist/types/overlays/bordered-loader.d.ts +11 -0
- package/dist/types/overlays/btw-history-panel.d.ts +29 -0
- package/dist/types/overlays/btw-history.d.ts +17 -0
- package/dist/types/overlays/btw-panel.d.ts +26 -0
- package/dist/types/overlays/cleanse-panel.d.ts +36 -0
- package/dist/types/overlays/codex-reset-fireworks.d.ts +52 -0
- package/dist/types/overlays/composer-shape-preview.d.ts +47 -0
- package/dist/types/overlays/composer-shape-registry.d.ts +50 -0
- package/dist/types/overlays/copy-selector.d.ts +48 -0
- package/dist/types/overlays/copy-targets.d.ts +63 -0
- package/dist/types/overlays/error-banner.d.ts +13 -0
- package/dist/types/overlays/extensions/display-text.d.ts +10 -0
- package/dist/types/overlays/extensions/extension-dashboard.d.ts +63 -0
- package/dist/types/overlays/extensions/extension-list.d.ts +54 -0
- package/dist/types/overlays/extensions/inspector-model.d.ts +109 -0
- package/dist/types/overlays/extensions/inspector-panel.d.ts +17 -0
- package/dist/types/overlays/extensions/live-tool-session.d.ts +28 -0
- package/dist/types/overlays/extensions/mcp-runtime.d.ts +107 -0
- package/dist/types/overlays/extensions/state-manager.d.ts +42 -0
- package/dist/types/overlays/extensions/types.d.ts +165 -0
- package/dist/types/overlays/history-search.d.ts +16 -0
- package/dist/types/overlays/hook-editor.d.ts +44 -0
- package/dist/types/overlays/hook-input.d.ts +20 -0
- package/dist/types/overlays/hook-selector.d.ts +71 -0
- package/dist/types/overlays/hub-frame.d.ts +77 -0
- package/dist/types/overlays/login-dialog.d.ts +43 -0
- package/dist/types/overlays/logout-account-selector.d.ts +15 -0
- package/dist/types/overlays/mcp-add-wizard.d.ts +87 -0
- package/dist/types/overlays/model-browser.d.ts +213 -0
- package/dist/types/overlays/model-hub.d.ts +72 -0
- package/dist/types/overlays/model-picker.d.ts +74 -0
- package/dist/types/overlays/model-selector.d.ts +52 -0
- package/dist/types/overlays/move-overlay.d.ts +39 -0
- package/dist/types/overlays/oauth-selector.d.ts +41 -0
- package/dist/types/overlays/omfg-panel.d.ts +20 -0
- package/dist/types/overlays/pause-screen.d.ts +43 -0
- package/dist/types/overlays/plan-review-overlay.d.ts +89 -0
- package/dist/types/overlays/plan-save-overlay.d.ts +19 -0
- package/dist/types/overlays/plan-toc.d.ts +41 -0
- package/dist/types/overlays/plugin-selector.d.ts +28 -0
- package/dist/types/overlays/plugin-settings.d.ts +180 -0
- package/dist/types/overlays/queue-mode-selector.d.ts +11 -0
- package/dist/types/overlays/reset-usage-selector.d.ts +23 -0
- package/dist/types/overlays/rewind-selector.d.ts +61 -0
- package/dist/types/overlays/running-subagent-badge.d.ts +6 -0
- package/dist/types/overlays/session-account-selector.d.ts +24 -0
- package/dist/types/overlays/session-info-overlay.d.ts +17 -0
- package/dist/types/overlays/session-observer-registry.d.ts +77 -0
- package/dist/types/overlays/session-selector.d.ts +131 -0
- package/dist/types/overlays/settings-defs.d.ts +119 -0
- package/dist/types/overlays/settings-selector.d.ts +73 -0
- package/dist/types/overlays/show-images-selector.d.ts +11 -0
- package/dist/types/overlays/snapcompact-shape-preview.d.ts +31 -0
- package/dist/types/overlays/theme-selector.d.ts +12 -0
- package/dist/types/overlays/thinking-selector.d.ts +12 -0
- package/dist/types/overlays/tiny-title-download-progress.d.ts +21 -0
- package/dist/types/overlays/tree-selector.d.ts +92 -0
- package/dist/types/overlays/usage-dashboard.d.ts +94 -0
- package/dist/types/overlays/usage-display.d.ts +5 -0
- package/dist/types/overlays/usage-row.d.ts +17 -0
- package/dist/types/prompt/attachment-chips.d.ts +19 -0
- package/dist/types/prompt/composer-attachments.d.ts +71 -0
- package/dist/types/prompt/composer-cache.d.ts +37 -0
- package/dist/types/prompt/composer.d.ts +159 -0
- package/dist/types/prompt/custom-editor.d.ts +261 -0
- package/dist/types/prompt/editor-top-gap.d.ts +18 -0
- package/dist/types/prompt/emoji-autocomplete.d.ts +16 -0
- package/dist/types/prompt/github-ref-autocomplete.d.ts +35 -0
- package/dist/types/prompt/gradient-highlight.d.ts +32 -0
- package/dist/types/prompt/image-format.d.ts +4 -0
- package/dist/types/prompt/image-references.d.ts +26 -0
- package/dist/types/prompt/interactive-context-helpers.d.ts +43 -0
- package/dist/types/prompt/internal-url-autocomplete.d.ts +56 -0
- package/dist/types/prompt/macos-spelling.d.ts +44 -0
- package/dist/types/prompt/magic-keyword-boundary.d.ts +9 -0
- package/dist/types/prompt/magic-keywords.d.ts +26 -0
- package/dist/types/prompt/markdown-prose.d.ts +15 -0
- package/dist/types/prompt/model-mention-autocomplete.d.ts +25 -0
- package/dist/types/prompt/model-mention-syntax.d.ts +24 -0
- package/dist/types/prompt/orchestrate.d.ts +13 -0
- package/dist/types/prompt/prompt-action-autocomplete.d.ts +56 -0
- package/dist/types/prompt/queue-input.d.ts +8 -0
- package/dist/types/prompt/skill-tokens.d.ts +13 -0
- package/dist/types/prompt/tools-markdown.d.ts +12 -0
- package/dist/types/prompt/ultrathink.d.ts +13 -0
- package/dist/types/prompt/usage-amounts.d.ts +26 -0
- package/dist/types/prompt/video.d.ts +18 -0
- package/dist/types/prompt/welcome.d.ts +83 -0
- package/dist/types/prompt/workflow.d.ts +13 -0
- package/dist/types/render/code-cell.d.ts +51 -0
- package/dist/types/render/file-list.d.ts +22 -0
- package/dist/types/render/hyperlink.d.ts +80 -0
- package/dist/types/render/index.d.ts +16 -0
- package/dist/types/render/output-block.d.ts +54 -0
- package/dist/types/render/output-pane.d.ts +80 -0
- package/dist/types/render/render-utils.d.ts +312 -0
- package/dist/types/render/sixel.d.ts +21 -0
- package/dist/types/render/status-line.d.ts +23 -0
- package/dist/types/render/tool-card.d.ts +71 -0
- package/dist/types/render/tree-list.d.ts +29 -0
- package/dist/types/render/types.d.ts +17 -0
- package/dist/types/render/utils.d.ts +43 -0
- package/dist/types/render/width-aware-text.d.ts +23 -0
- package/dist/types/setup/lazy.d.ts +3 -0
- package/dist/types/setup/scenes/composer.d.ts +3 -0
- package/dist/types/setup/scenes/glyph.d.ts +3 -0
- package/dist/types/setup/scenes/model.d.ts +3 -0
- package/dist/types/setup/scenes/outro.d.ts +2 -0
- package/dist/types/setup/scenes/providers.d.ts +3 -0
- package/dist/types/setup/scenes/sign-in.d.ts +21 -0
- package/dist/types/setup/scenes/splash.d.ts +11 -0
- package/dist/types/setup/scenes/theme.d.ts +3 -0
- package/dist/types/setup/scenes/types.d.ts +110 -0
- package/dist/types/setup/scenes/web-search.d.ts +22 -0
- package/dist/types/setup/setup-version.d.ts +11 -0
- package/dist/types/setup/startup-splash.d.ts +9 -0
- package/dist/types/setup/wizard-overlay.d.ts +16 -0
- package/dist/types/setup/wizard.d.ts +25 -0
- package/dist/types/status-line/component.d.ts +182 -0
- package/dist/types/status-line/context-usage.d.ts +156 -0
- package/dist/types/status-line/footer.d.ts +30 -0
- package/dist/types/status-line/git-utils.d.ts +22 -0
- package/dist/types/status-line/host.d.ts +129 -0
- package/dist/types/status-line/index.d.ts +6 -0
- package/dist/types/status-line/loop.d.ts +18 -0
- package/dist/types/status-line/metrics.d.ts +21 -0
- package/dist/types/status-line/presets.d.ts +3 -0
- package/dist/types/status-line/schema.d.ts +15 -0
- package/dist/types/status-line/segments.d.ts +5 -0
- package/dist/types/status-line/separators.d.ts +3 -0
- package/dist/types/status-line/types.d.ts +236 -0
- package/dist/types/stdin-buffer.d.ts +4 -0
- package/dist/types/theme/color.d.ts +24 -0
- package/dist/types/theme/defaults/index.d.ts +9489 -0
- package/dist/types/theme/index.d.ts +4 -0
- package/dist/types/theme/loader.d.ts +23 -0
- package/dist/types/theme/mermaid-cache.d.ts +26 -0
- package/dist/types/theme/schema-validation.d.ts +3 -0
- package/dist/types/theme/schema.d.ts +25 -0
- package/dist/types/theme/session-color.d.ts +43 -0
- package/dist/types/theme/shimmer.d.ts +44 -0
- package/dist/types/theme/symbols.d.ts +34 -0
- package/dist/types/theme/theme-class.d.ts +299 -0
- package/dist/types/theme/theme.d.ts +111 -0
- package/dist/types/theme/tui-adapters.d.ts +30 -0
- package/dist/types/thinking.d.ts +165 -0
- package/dist/types/tools/agent-tree.d.ts +36 -0
- package/dist/types/tools/ask.d.ts +67 -0
- package/dist/types/tools/ast-edit.d.ts +53 -0
- package/dist/types/tools/ast-grep.d.ts +52 -0
- package/dist/types/tools/autoresearch.d.ts +156 -0
- package/dist/types/tools/bash-interactive.d.ts +28 -0
- package/dist/types/tools/bash.d.ts +103 -0
- package/dist/types/tools/conflict-detect.d.ts +43 -0
- package/dist/types/tools/debug.d.ts +60 -0
- package/dist/types/tools/default-renderer.d.ts +24 -0
- package/dist/types/tools/edit.d.ts +158 -0
- package/dist/types/tools/eval-format/code-mode-declarations.d.ts +5 -0
- package/dist/types/tools/eval-format/index.d.ts +5 -0
- package/dist/types/tools/eval-format/javascript.d.ts +2 -0
- package/dist/types/tools/eval-format/python.d.ts +2 -0
- package/dist/types/tools/eval.d.ts +94 -0
- package/dist/types/tools/fetch.d.ts +42 -0
- package/dist/types/tools/gh-format.d.ts +8 -0
- package/dist/types/tools/github.d.ts +144 -0
- package/dist/types/tools/glob.d.ts +44 -0
- package/dist/types/tools/goal.d.ts +42 -0
- package/dist/types/tools/grep.d.ts +64 -0
- package/dist/types/tools/grouped-file-output.d.ts +71 -0
- package/dist/types/tools/hashline-format.d.ts +28 -0
- package/dist/types/tools/hub.d.ts +340 -0
- package/dist/types/tools/index.d.ts +4 -0
- package/dist/types/tools/json-tree.d.ts +59 -0
- package/dist/types/tools/line-ranges.d.ts +29 -0
- package/dist/types/tools/list-limit.d.ts +15 -0
- package/dist/types/tools/lsp.d.ts +72 -0
- package/dist/types/tools/match-line-format.d.ts +11 -0
- package/dist/types/tools/mcp.d.ts +81 -0
- package/dist/types/tools/memory.d.ts +67 -0
- package/dist/types/tools/output-meta.d.ts +151 -0
- package/dist/types/tools/read.d.ts +139 -0
- package/dist/types/tools/renderer.d.ts +98 -0
- package/dist/types/tools/report-tool-issue.d.ts +8 -0
- package/dist/types/tools/resolve.d.ts +47 -0
- package/dist/types/tools/streaming-output.d.ts +282 -0
- package/dist/types/tools/subprocess.d.ts +24 -0
- package/dist/types/tools/task-repair-args.d.ts +53 -0
- package/dist/types/tools/task-yield-assembly.d.ts +20 -0
- package/dist/types/tools/task.d.ts +425 -0
- package/dist/types/tools/terminal-output.d.ts +8 -0
- package/dist/types/tools/think.d.ts +13 -0
- package/dist/types/tools/todo.d.ts +118 -0
- package/dist/types/tools/tool-errors.d.ts +7 -0
- package/dist/types/tools/vibe.d.ts +120 -0
- package/dist/types/tools/web-search.d.ts +195 -0
- package/dist/types/tools/write.d.ts +76 -0
- package/dist/types/tools/xd-url.d.ts +13 -0
- package/dist/types/tools/xdev.d.ts +52 -0
- package/dist/types/tui.d.ts +18 -0
- package/dist/types/utils.d.ts +2 -0
- package/package.json +37 -3
- package/src/app-keybindings.ts +760 -0
- package/src/apps/autoresearch-dashboard.ts +500 -0
- package/src/apps/autoresearch-data.ts +64 -0
- package/src/apps/cleanse-board.ts +341 -0
- package/src/apps/cleanse-picker.ts +57 -0
- package/src/apps/debug/log-formatting.ts +53 -0
- package/src/apps/debug/log-viewer.ts +868 -0
- package/src/apps/debug/protocol-probe.ts +267 -0
- package/src/apps/debug/raw-sse-buffer.ts +449 -0
- package/src/apps/debug/raw-sse.ts +282 -0
- package/src/apps/debug/terminal-info.ts +115 -0
- package/src/apps/debug/viewer-frame.ts +174 -0
- package/src/apps/git/avatar.ts +52 -0
- package/src/apps/git/colors.ts +109 -0
- package/src/apps/git/diff-pane.ts +1512 -0
- package/src/apps/git/git-tui.ts +889 -0
- package/src/apps/git/sidebar.ts +1204 -0
- package/src/apps/git/state.ts +113 -0
- package/src/apps/if-bench-board.ts +324 -0
- package/src/apps/live-visualizer.ts +238 -0
- package/src/apps/ps-data.ts +116 -0
- package/src/apps/ps-top.ts +422 -0
- package/src/apps/session-picker.ts +95 -0
- package/src/apps/setup-model-picker.ts +21 -0
- package/src/apps/standalone-picker.ts +111 -0
- package/src/autocomplete.ts +9 -13
- package/src/chat/advisor-message.ts +175 -0
- package/src/chat/assistant-message.ts +1214 -0
- package/src/chat/background-tan-message.ts +35 -0
- package/src/chat/bash-execution.ts +394 -0
- package/src/chat/cache-invalidation-marker.ts +94 -0
- package/src/chat/chat-transcript-builder.ts +593 -0
- package/src/chat/collab-prompt-message.ts +34 -0
- package/src/chat/compaction-summary-message.ts +261 -0
- package/src/chat/custom-message.ts +23 -0
- package/src/chat/display-preferences.ts +24 -0
- package/src/chat/eval-execution.ts +172 -0
- package/src/chat/execution-shared.ts +113 -0
- package/src/chat/extension-types.ts +46 -0
- package/src/chat/hook-message.ts +20 -0
- package/src/chat/image-loading.ts +122 -0
- package/src/chat/late-diagnostics-message.ts +92 -0
- package/src/chat/messages.ts +305 -0
- package/src/chat/reaction.ts +65 -0
- package/src/chat/read-target.ts +7 -0
- package/src/chat/read-tool-group.ts +873 -0
- package/src/chat/served-model-marker.ts +91 -0
- package/src/chat/skill-message.ts +220 -0
- package/src/chat/skill-title-input.ts +41 -0
- package/src/chat/stripped-tool-calls-placeholder.ts +35 -0
- package/src/chat/thinking-display.ts +312 -0
- package/src/chat/todo-reminder.ts +33 -0
- package/src/chat/tool-execution.ts +1395 -0
- package/src/chat/transcript-browser.ts +268 -0
- package/src/chat/transcript-entry.ts +96 -0
- package/src/chat/transcript-outline.ts +260 -0
- package/src/chat/transcript-render-helpers.ts +315 -0
- package/src/chat/ttsr-notification.ts +123 -0
- package/src/chat/user-message.ts +287 -0
- package/src/chrome/chat-block.ts +110 -0
- package/src/chrome/collab-qrcode.ts +74 -0
- package/src/chrome/context-thresholds.ts +85 -0
- package/src/chrome/countdown-timer.ts +74 -0
- package/src/chrome/diff.ts +266 -0
- package/src/chrome/dynamic-border.ts +36 -0
- package/src/chrome/error-block.ts +63 -0
- package/src/chrome/form-theme.ts +10 -0
- package/src/chrome/format.ts +66 -0
- package/src/chrome/index.ts +21 -0
- package/src/chrome/keybinding-hints.ts +55 -0
- package/src/chrome/live-board.ts +123 -0
- package/src/chrome/local-date.ts +20 -0
- package/src/chrome/message-divider.ts +51 -0
- package/src/chrome/message-frame.ts +164 -0
- package/src/chrome/message-notice.ts +103 -0
- package/src/chrome/overlay-box.ts +301 -0
- package/src/chrome/qrcode.ts +539 -0
- package/src/chrome/segment-track.ts +86 -0
- package/src/chrome/select-list-mouse-routing.ts +11 -0
- package/src/chrome/selector-helpers.ts +119 -0
- package/src/chrome/shared.ts +27 -0
- package/src/chrome/streaming-panel.ts +72 -0
- package/src/chrome/tool-activity.ts +44 -0
- package/src/chrome/transcript-container.ts +902 -0
- package/src/chrome/transcript-status.ts +27 -0
- package/src/chrome/visual-truncate.ts +70 -0
- package/src/components/disclosure.ts +235 -0
- package/src/components/editor.ts +10 -12
- package/src/components/form.ts +566 -0
- package/src/components/input.ts +6 -27
- package/src/components/key-value-list.ts +88 -0
- package/src/components/layout/geometry.ts +202 -0
- package/src/components/layout/row.ts +283 -0
- package/src/components/layout/split-pane.ts +349 -0
- package/src/components/layout/stack.ts +261 -0
- package/src/components/markdown.ts +16 -12
- package/src/components/menu-selection.ts +248 -0
- package/src/components/metric.ts +132 -0
- package/src/components/progress-bar.ts +140 -0
- package/src/components/scroll-view.ts +372 -70
- package/src/components/scroll-viewport.ts +154 -0
- package/src/components/section.ts +77 -0
- package/src/components/select-list.ts +238 -159
- package/src/components/settings-list.ts +103 -80
- package/src/components/table.ts +127 -0
- package/src/components/tree-view.ts +481 -0
- package/src/components/wizard-step.ts +229 -0
- package/src/deccara.ts +1 -3
- package/src/hotkeys-markdown.ts +100 -0
- package/src/index.ts +18 -0
- package/src/keybinding-matchers.ts +99 -0
- package/src/keys.ts +2 -2
- package/src/lang-from-path.ts +252 -0
- package/src/overlays/advisor-config.ts +761 -0
- package/src/overlays/agent-activity.ts +113 -0
- package/src/overlays/agent-hub-projection.ts +250 -0
- package/src/overlays/agent-hub-renderer.ts +281 -0
- package/src/overlays/agent-hub-types.ts +74 -0
- package/src/overlays/agent-hub.ts +1562 -0
- package/src/overlays/agent-transcript-viewer.ts +669 -0
- package/src/overlays/agents-hub.ts +1203 -0
- package/src/overlays/ask-dialog.ts +1202 -0
- package/src/overlays/bordered-loader.ts +41 -0
- package/src/overlays/btw-history-panel.ts +591 -0
- package/src/overlays/btw-history.ts +33 -0
- package/src/overlays/btw-panel.ts +167 -0
- package/src/overlays/cleanse-panel.ts +167 -0
- package/src/overlays/codex-reset-fireworks.ts +375 -0
- package/src/overlays/composer-shape-preview.ts +137 -0
- package/src/overlays/composer-shape-registry.ts +82 -0
- package/src/overlays/copy-selector.ts +618 -0
- package/src/overlays/copy-targets.ts +210 -0
- package/src/overlays/error-banner.ts +39 -0
- package/src/overlays/extensions/display-text.ts +39 -0
- package/src/overlays/extensions/extension-dashboard.ts +645 -0
- package/src/overlays/extensions/extension-list.ts +667 -0
- package/src/overlays/extensions/inspector-model.ts +484 -0
- package/src/overlays/extensions/inspector-panel.ts +669 -0
- package/src/overlays/extensions/live-tool-session.ts +67 -0
- package/src/overlays/extensions/mcp-runtime.ts +289 -0
- package/src/overlays/extensions/state-manager.ts +337 -0
- package/src/overlays/extensions/types.ts +208 -0
- package/src/overlays/history-search.ts +268 -0
- package/src/overlays/hook-editor.ts +272 -0
- package/src/overlays/hook-input.ts +84 -0
- package/src/overlays/hook-selector.ts +635 -0
- package/src/overlays/hub-frame.ts +262 -0
- package/src/overlays/login-dialog.ts +231 -0
- package/src/overlays/logout-account-selector.ts +115 -0
- package/src/overlays/mcp-add-wizard.ts +1436 -0
- package/src/overlays/model-browser.ts +1176 -0
- package/src/overlays/model-hub.ts +2279 -0
- package/src/overlays/model-picker.ts +285 -0
- package/src/overlays/model-selector.ts +107 -0
- package/src/overlays/move-overlay.ts +197 -0
- package/src/overlays/oauth-selector.ts +446 -0
- package/src/overlays/omfg-panel.ts +136 -0
- package/src/overlays/pause-screen.ts +198 -0
- package/src/overlays/plan-review-overlay.ts +1227 -0
- package/src/overlays/plan-save-overlay.ts +74 -0
- package/src/overlays/plan-toc.ts +139 -0
- package/src/overlays/plugin-selector.ts +97 -0
- package/src/overlays/plugin-settings.ts +839 -0
- package/src/overlays/queue-mode-selector.ts +55 -0
- package/src/overlays/reset-usage-selector.ts +170 -0
- package/src/overlays/rewind-selector.ts +499 -0
- package/src/overlays/running-subagent-badge.ts +19 -0
- package/src/overlays/session-account-selector.ts +68 -0
- package/src/overlays/session-info-overlay.ts +96 -0
- package/src/overlays/session-observer-registry.ts +289 -0
- package/src/overlays/session-selector.ts +1137 -0
- package/src/overlays/settings-defs.ts +315 -0
- package/src/overlays/settings-selector.ts +1415 -0
- package/src/overlays/show-images-selector.ts +44 -0
- package/src/overlays/snapcompact-shape-preview-doc.md +14 -0
- package/src/overlays/snapcompact-shape-preview.ts +192 -0
- package/src/overlays/theme-selector.ts +62 -0
- package/src/overlays/thinking-selector.ts +51 -0
- package/src/overlays/tiny-title-download-progress.ts +102 -0
- package/src/overlays/tree-selector.ts +1121 -0
- package/src/overlays/usage-dashboard.ts +629 -0
- package/src/overlays/usage-display.ts +45 -0
- package/src/overlays/usage-row.ts +118 -0
- package/src/prompt/attachment-chips.ts +201 -0
- package/src/prompt/composer-attachments.ts +280 -0
- package/src/prompt/composer-cache.ts +304 -0
- package/src/prompt/composer.ts +934 -0
- package/src/prompt/custom-editor.ts +1392 -0
- package/src/prompt/data/emojis.json +1 -0
- package/src/prompt/editor-top-gap.ts +28 -0
- package/src/prompt/emoji-autocomplete.ts +285 -0
- package/src/prompt/github-ref-autocomplete.ts +75 -0
- package/src/prompt/gradient-highlight.ts +101 -0
- package/src/prompt/image-format.ts +28 -0
- package/src/prompt/image-references.ts +102 -0
- package/src/prompt/interactive-context-helpers.ts +126 -0
- package/src/prompt/internal-url-autocomplete.ts +155 -0
- package/src/prompt/macos-spelling.ts +456 -0
- package/src/prompt/magic-keyword-boundary.ts +23 -0
- package/src/prompt/magic-keywords.ts +42 -0
- package/src/prompt/markdown-prose.ts +245 -0
- package/src/prompt/model-mention-autocomplete.ts +94 -0
- package/src/prompt/model-mention-syntax.ts +41 -0
- package/src/prompt/orchestrate.ts +26 -0
- package/src/prompt/prompt-action-autocomplete.ts +337 -0
- package/src/prompt/queue-input.ts +132 -0
- package/src/prompt/skill-tokens.ts +36 -0
- package/src/prompt/tips.txt +27 -0
- package/src/prompt/tools-markdown.ts +29 -0
- package/src/prompt/ultrathink.ts +26 -0
- package/src/prompt/usage-amounts.ts +99 -0
- package/src/prompt/video.ts +47 -0
- package/src/prompt/welcome.ts +605 -0
- package/src/prompt/workflow.ts +26 -0
- package/src/render/code-cell.ts +244 -0
- package/src/render/file-list.ts +58 -0
- package/src/render/hyperlink.ts +192 -0
- package/src/render/index.ts +17 -0
- package/src/render/output-block.ts +267 -0
- package/src/render/output-pane.ts +299 -0
- package/src/render/render-utils.ts +1182 -0
- package/src/render/sixel.ts +69 -0
- package/src/render/status-line.ts +55 -0
- package/src/render/tool-card.ts +272 -0
- package/src/render/tree-list.ts +188 -0
- package/src/render/types.ts +19 -0
- package/src/render/utils.ts +109 -0
- package/src/render/width-aware-text.ts +60 -0
- package/src/setup/lazy.ts +17 -0
- package/src/setup/scenes/composer.ts +127 -0
- package/src/setup/scenes/glyph.ts +120 -0
- package/src/setup/scenes/model.ts +138 -0
- package/src/setup/scenes/outro.ts +24 -0
- package/src/setup/scenes/providers.ts +107 -0
- package/src/setup/scenes/sign-in.ts +373 -0
- package/src/setup/scenes/splash.ts +192 -0
- package/src/setup/scenes/theme.ts +343 -0
- package/src/setup/scenes/types.ts +111 -0
- package/src/setup/scenes/web-search.ts +165 -0
- package/src/setup/setup-version.ts +11 -0
- package/src/setup/startup-splash.ts +107 -0
- package/src/setup/wizard-overlay.ts +319 -0
- package/src/setup/wizard.ts +101 -0
- package/src/status-line/component.ts +3003 -0
- package/src/status-line/context-usage.ts +688 -0
- package/src/status-line/footer.ts +323 -0
- package/src/status-line/git-utils.ts +42 -0
- package/src/status-line/host.ts +97 -0
- package/src/status-line/index.ts +6 -0
- package/src/status-line/loop.ts +28 -0
- package/src/status-line/metrics.ts +94 -0
- package/src/status-line/presets.ts +107 -0
- package/src/status-line/schema.ts +57 -0
- package/src/status-line/segments.ts +934 -0
- package/src/status-line/separators.ts +55 -0
- package/src/status-line/types.ts +227 -0
- package/src/stdin-buffer.ts +4 -2
- package/src/theme/color.ts +95 -0
- package/src/theme/dark.json +95 -0
- package/src/theme/defaults/alabaster.json +93 -0
- package/src/theme/defaults/amethyst.json +96 -0
- package/src/theme/defaults/anthracite.json +93 -0
- package/src/theme/defaults/basalt.json +91 -0
- package/src/theme/defaults/birch.json +95 -0
- package/src/theme/defaults/dark-abyss.json +91 -0
- package/src/theme/defaults/dark-arctic.json +104 -0
- package/src/theme/defaults/dark-aurora.json +95 -0
- package/src/theme/defaults/dark-catppuccin.json +107 -0
- package/src/theme/defaults/dark-cavern.json +91 -0
- package/src/theme/defaults/dark-celestial.json +106 -0
- package/src/theme/defaults/dark-copper.json +95 -0
- package/src/theme/defaults/dark-cosmos.json +90 -0
- package/src/theme/defaults/dark-cyberpunk.json +102 -0
- package/src/theme/defaults/dark-dracula.json +98 -0
- package/src/theme/defaults/dark-eclipse.json +91 -0
- package/src/theme/defaults/dark-ember.json +95 -0
- package/src/theme/defaults/dark-equinox.json +90 -0
- package/src/theme/defaults/dark-forest.json +96 -0
- package/src/theme/defaults/dark-github.json +105 -0
- package/src/theme/defaults/dark-gruvbox.json +112 -0
- package/src/theme/defaults/dark-lavender.json +95 -0
- package/src/theme/defaults/dark-lunar.json +89 -0
- package/src/theme/defaults/dark-midnight.json +95 -0
- package/src/theme/defaults/dark-monochrome.json +94 -0
- package/src/theme/defaults/dark-monokai.json +98 -0
- package/src/theme/defaults/dark-nebula.json +90 -0
- package/src/theme/defaults/dark-nord.json +98 -0
- package/src/theme/defaults/dark-ocean.json +101 -0
- package/src/theme/defaults/dark-one.json +100 -0
- package/src/theme/defaults/dark-poimandres.json +115 -0
- package/src/theme/defaults/dark-rainforest.json +91 -0
- package/src/theme/defaults/dark-reef.json +91 -0
- package/src/theme/defaults/dark-retro.json +92 -0
- package/src/theme/defaults/dark-rose-pine.json +96 -0
- package/src/theme/defaults/dark-sakura.json +95 -0
- package/src/theme/defaults/dark-slate.json +95 -0
- package/src/theme/defaults/dark-solarized.json +97 -0
- package/src/theme/defaults/dark-solstice.json +90 -0
- package/src/theme/defaults/dark-starfall.json +91 -0
- package/src/theme/defaults/dark-sunset.json +99 -0
- package/src/theme/defaults/dark-swamp.json +90 -0
- package/src/theme/defaults/dark-synthwave.json +103 -0
- package/src/theme/defaults/dark-taiga.json +91 -0
- package/src/theme/defaults/dark-terminal.json +95 -0
- package/src/theme/defaults/dark-tokyo-night.json +101 -0
- package/src/theme/defaults/dark-tundra.json +91 -0
- package/src/theme/defaults/dark-twilight.json +91 -0
- package/src/theme/defaults/dark-volcanic.json +91 -0
- package/src/theme/defaults/graphite.json +92 -0
- package/src/theme/defaults/index.ts +201 -0
- package/src/theme/defaults/light-arctic.json +107 -0
- package/src/theme/defaults/light-aurora-day.json +91 -0
- package/src/theme/defaults/light-canyon.json +91 -0
- package/src/theme/defaults/light-catppuccin.json +106 -0
- package/src/theme/defaults/light-cirrus.json +90 -0
- package/src/theme/defaults/light-coral.json +95 -0
- package/src/theme/defaults/light-cyberpunk.json +96 -0
- package/src/theme/defaults/light-dawn.json +90 -0
- package/src/theme/defaults/light-dunes.json +91 -0
- package/src/theme/defaults/light-eucalyptus.json +95 -0
- package/src/theme/defaults/light-forest.json +100 -0
- package/src/theme/defaults/light-frost.json +95 -0
- package/src/theme/defaults/light-github.json +115 -0
- package/src/theme/defaults/light-glacier.json +91 -0
- package/src/theme/defaults/light-gruvbox.json +108 -0
- package/src/theme/defaults/light-haze.json +90 -0
- package/src/theme/defaults/light-honeycomb.json +95 -0
- package/src/theme/defaults/light-lagoon.json +91 -0
- package/src/theme/defaults/light-lavender.json +95 -0
- package/src/theme/defaults/light-meadow.json +91 -0
- package/src/theme/defaults/light-mint.json +95 -0
- package/src/theme/defaults/light-monochrome.json +101 -0
- package/src/theme/defaults/light-ocean.json +99 -0
- package/src/theme/defaults/light-one.json +99 -0
- package/src/theme/defaults/light-opal.json +91 -0
- package/src/theme/defaults/light-orchard.json +91 -0
- package/src/theme/defaults/light-paper.json +95 -0
- package/src/theme/defaults/light-poimandres.json +115 -0
- package/src/theme/defaults/light-prism.json +90 -0
- package/src/theme/defaults/light-retro.json +98 -0
- package/src/theme/defaults/light-sand.json +95 -0
- package/src/theme/defaults/light-savanna.json +91 -0
- package/src/theme/defaults/light-solarized.json +102 -0
- package/src/theme/defaults/light-soleil.json +90 -0
- package/src/theme/defaults/light-sunset.json +99 -0
- package/src/theme/defaults/light-synthwave.json +98 -0
- package/src/theme/defaults/light-tokyo-night.json +111 -0
- package/src/theme/defaults/light-wetland.json +91 -0
- package/src/theme/defaults/light-zenith.json +89 -0
- package/src/theme/defaults/limestone.json +94 -0
- package/src/theme/defaults/mahogany.json +97 -0
- package/src/theme/defaults/marble.json +93 -0
- package/src/theme/defaults/obsidian.json +91 -0
- package/src/theme/defaults/onyx.json +91 -0
- package/src/theme/defaults/pearl.json +93 -0
- package/src/theme/defaults/porcelain.json +91 -0
- package/src/theme/defaults/quartz.json +96 -0
- package/src/theme/defaults/sandstone.json +95 -0
- package/src/theme/defaults/titanium.json +90 -0
- package/src/theme/index.ts +5 -0
- package/src/theme/light.json +93 -0
- package/src/theme/loader.ts +200 -0
- package/src/theme/mermaid-cache.ts +92 -0
- package/src/theme/schema-validation.ts +119 -0
- package/src/theme/schema.ts +168 -0
- package/src/theme/session-color.ts +253 -0
- package/src/theme/shimmer.ts +307 -0
- package/src/theme/symbols.ts +1433 -0
- package/src/theme/theme-class.ts +787 -0
- package/src/theme/theme-schema.json +463 -0
- package/src/theme/theme.ts +810 -0
- package/src/theme/tui-adapters.ts +339 -0
- package/src/thinking.ts +380 -0
- package/src/tools/agent-tree.ts +128 -0
- package/src/tools/ask.ts +482 -0
- package/src/tools/ast-edit.ts +210 -0
- package/src/tools/ast-grep.ts +171 -0
- package/src/tools/autoresearch.ts +287 -0
- package/src/tools/bash-interactive.ts +295 -0
- package/src/tools/bash.ts +468 -0
- package/src/tools/conflict-detect.ts +77 -0
- package/src/tools/debug.ts +167 -0
- package/src/tools/default-renderer.ts +172 -0
- package/src/tools/edit.ts +1258 -0
- package/src/tools/eval-format/code-mode-declarations.ts +61 -0
- package/src/tools/eval-format/index.ts +16 -0
- package/src/tools/eval-format/javascript.ts +952 -0
- package/src/tools/eval-format/python.ts +544 -0
- package/src/tools/eval.ts +835 -0
- package/src/tools/fetch.ts +226 -0
- package/src/tools/gh-format.ts +18 -0
- package/src/tools/github.ts +686 -0
- package/src/tools/glob.ts +213 -0
- package/src/tools/goal.ts +153 -0
- package/src/tools/grep.ts +385 -0
- package/src/tools/grouped-file-output.ts +211 -0
- package/src/tools/hashline-format.ts +59 -0
- package/src/tools/hub.ts +1488 -0
- package/src/tools/index.ts +71 -0
- package/src/tools/json-tree.ts +388 -0
- package/src/tools/line-ranges.ts +98 -0
- package/src/tools/list-limit.ts +43 -0
- package/src/tools/lsp.ts +702 -0
- package/src/tools/match-line-format.ts +20 -0
- package/src/tools/mcp.ts +309 -0
- package/src/tools/memory.ts +220 -0
- package/src/tools/output-meta.ts +367 -0
- package/src/tools/read.ts +628 -0
- package/src/tools/renderer.ts +107 -0
- package/src/tools/report-tool-issue.ts +13 -0
- package/src/tools/resolve.ts +139 -0
- package/src/tools/streaming-output.ts +1576 -0
- package/src/tools/subprocess.ts +39 -0
- package/src/tools/task-repair-args.ts +118 -0
- package/src/tools/task-yield-assembly.ts +147 -0
- package/src/tools/task.ts +2110 -0
- package/src/tools/terminal-output.ts +153 -0
- package/src/tools/think.ts +28 -0
- package/src/tools/todo.ts +580 -0
- package/src/tools/tool-errors.ts +15 -0
- package/src/tools/vibe.ts +420 -0
- package/src/tools/web-search.ts +409 -0
- package/src/tools/write.ts +511 -0
- package/src/tools/xd-url.ts +28 -0
- package/src/tools/xdev.ts +201 -0
- package/src/tui.ts +57 -4
- package/src/utils.ts +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.2.5] - 2026-09-17
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added the full coding-agent terminal UI to the package, including themed rendering primitives, shared chrome, tool renderers, chat transcripts, overlays and hubs, status lines, prompt and autocomplete controls, setup flows, and standalone utilities such as the Git TUI, process viewer, debug viewers, boards, and pickers.
|
|
10
|
+
- Added reusable terminal UI components for forms, menus, split layouts, disclosures, tree views, tool cards, data widgets, fullscreen hubs, scrollable overlay navigation, and interactive footer chips.
|
|
11
|
+
- Added live viewer counts to the status line and exposed paint observers through `TUIOptions.onPaint` and `TUI.setPaintListener` for hosts that need to track committed scrollback and viewport rows.
|
|
12
|
+
- Added details and notes fields to todo items, plus an interactive task-list renderer for managing subtasks.
|
|
13
|
+
- Added inline summaries for structured task outputs.
|
|
14
|
+
- Added image input validation with automatic conversion of unsupported formats and support for video previews in chat.
|
|
15
|
+
- Added the MCP Add Wizard for streamlined server configuration.
|
|
16
|
+
- Added an `autoresearch` tool renderer for tracking experiments.
|
|
17
|
+
- Added side-by-side diff rendering for merge conflicts and improved presentation of GitHub Actions workflow jobs and runs.
|
|
18
|
+
- Added the `dark-celestial` built-in theme with a twilight palette and pink, coral, purple, cyan, and peach accents.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Overhauled JSON tree visualization with syntax highlighting, item counts, clearer indentation, and a simplified layout.
|
|
23
|
+
- Improved agent task, evaluation, hub, and model displays with clearer layouts, better truncation, and metric support.
|
|
24
|
+
- Standardized form labels, descriptions, and overlay styling, and improved overlay text rendering by collapsing newlines consistently.
|
|
25
|
+
- Updated spinner animations to use theme-consistent frames and refined tool-output notice stripping for more consistent display.
|
|
26
|
+
- Improved performance and responsiveness when rendering long-running Bash streams and large or continuously updating terminal content.
|
|
27
|
+
|
|
5
28
|
## [18.2.4] - 2026-09-17
|
|
6
29
|
|
|
7
30
|
### Fixed
|
package/README.md
CHANGED
|
@@ -77,6 +77,49 @@ interface Component {
|
|
|
77
77
|
|
|
78
78
|
## Built-in Components
|
|
79
79
|
|
|
80
|
+
### Composition
|
|
81
|
+
|
|
82
|
+
Build screens from persistent components and update their data, selection, expansion, or size through setters. Layouts own child bounds and mouse-coordinate translation; controllers retain domain workflows and asynchronous operations. Propagate `invalidate()` after theme changes and `dispose()` when removing an owned component tree.
|
|
83
|
+
|
|
84
|
+
| Family | Components | Import |
|
|
85
|
+
| --- | --- | --- |
|
|
86
|
+
| Layout | `Stack`, `Row`, `SplitPane` | package root |
|
|
87
|
+
| Panels | `OverlayPanel`, `PanelRows`, `PanelDivider` | `/chrome` |
|
|
88
|
+
| Menus | `SelectList`, `MenuSelection` | package root |
|
|
89
|
+
| Forms | `Form`, `FormField`, `TextFormField`, `SelectFormField`, `SettingsFormField` | package root |
|
|
90
|
+
| Wizard steps | `WizardStep` | package root |
|
|
91
|
+
| Viewports | `ScrollView`, including child rendering, follow-tail, and keyed range anchoring | package root |
|
|
92
|
+
| Trees | `TreeView` | package root |
|
|
93
|
+
| Disclosure | `Disclosure`, with lazy summary/detail children | package root |
|
|
94
|
+
| Messages | `FramedMessageComponent`, `MessageNoticeComponent`, `MessageDividerComponent` | `/chrome` |
|
|
95
|
+
| Tool output | `ToolCard`, `framedToolCard`, `plainToolCard`, `OutputPane` | `/render` |
|
|
96
|
+
| Transcripts | `TranscriptBrowser` | package root |
|
|
97
|
+
| Data | `MetricRow`, `ProgressBar`, `Table`, `KeyValueList`, `Section` | package root |
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import { Disclosure, SplitPane, Text } from "@oh-my-pi/pi-tui";
|
|
101
|
+
|
|
102
|
+
const diagnostics = new Disclosure({
|
|
103
|
+
summary: new Text("2 build diagnostics", 0, 0),
|
|
104
|
+
body: () => new Text("src/index.ts:12 — unused import\nsrc/config.ts:8 — missing property", 0, 0),
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const view = new SplitPane({
|
|
108
|
+
left: new Text("Build diagnostics", 0, 0),
|
|
109
|
+
right: diagnostics,
|
|
110
|
+
leftSize: { fixed: 24 },
|
|
111
|
+
rightMinWidth: 30,
|
|
112
|
+
splitAt: 60,
|
|
113
|
+
narrowPane: "right",
|
|
114
|
+
height: 12,
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
diagnostics.setExpanded(true);
|
|
118
|
+
view.setHeight(16);
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`ScrollView.revealRange()` preserves manual scrolling while a selection is unchanged; `mode: "once"` supports asynchronously arriving initial selections. `OutputPane.append()` accepts incremental terminal output, including carriage-return updates; call `finish()` when the stream ends.
|
|
122
|
+
|
|
80
123
|
### Container
|
|
81
124
|
|
|
82
125
|
Groups child components.
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import { type Keybinding, type KeybindingsConfig, type KeyId, KeybindingsManager as TuiKeybindingsManager } from "./keybindings.js";
|
|
2
|
+
/**
|
|
3
|
+
* Application-level keybindings (coding agent specific).
|
|
4
|
+
* Values are always `true` — used for declaration merging.
|
|
5
|
+
*/
|
|
6
|
+
interface AppKeybindings {
|
|
7
|
+
"app.interrupt": true;
|
|
8
|
+
"app.clear": true;
|
|
9
|
+
"app.exit": true;
|
|
10
|
+
"app.suspend": true;
|
|
11
|
+
"app.display.reset": true;
|
|
12
|
+
"app.thinking.cycle": true;
|
|
13
|
+
"app.thinking.toggle": true;
|
|
14
|
+
"app.model.cycleForward": true;
|
|
15
|
+
"app.model.cycleBackward": true;
|
|
16
|
+
"app.model.select": true;
|
|
17
|
+
"app.model.selectTemporary": true;
|
|
18
|
+
"app.tools.expand": true;
|
|
19
|
+
"app.tools.toggleVisibility": true;
|
|
20
|
+
"app.editor.external": true;
|
|
21
|
+
"app.message.followUp": true;
|
|
22
|
+
"app.retry": true;
|
|
23
|
+
"app.message.dequeue": true;
|
|
24
|
+
"app.clipboard.pasteImage": true;
|
|
25
|
+
"app.clipboard.pasteTextRaw": true;
|
|
26
|
+
"app.clipboard.copyLine": true;
|
|
27
|
+
"app.clipboard.copyPrompt": true;
|
|
28
|
+
"app.agents.hub": true;
|
|
29
|
+
"app.session.new": true;
|
|
30
|
+
"app.session.tree": true;
|
|
31
|
+
"app.session.fork": true;
|
|
32
|
+
"app.session.resume": true;
|
|
33
|
+
"app.session.observe": true;
|
|
34
|
+
"app.session.togglePath": true;
|
|
35
|
+
"app.session.toggleSort": true;
|
|
36
|
+
"app.session.rename": true;
|
|
37
|
+
"app.session.delete": true;
|
|
38
|
+
"app.session.deleteNoninvasive": true;
|
|
39
|
+
"app.tree.foldOrUp": true;
|
|
40
|
+
"app.tree.unfoldOrDown": true;
|
|
41
|
+
"app.plan.toggle": true;
|
|
42
|
+
"app.history.search": true;
|
|
43
|
+
"app.stt.toggle": true;
|
|
44
|
+
"app.live.toggle": true;
|
|
45
|
+
}
|
|
46
|
+
/** Application action identifier registered alongside the base TUI keybindings. */
|
|
47
|
+
export type AppKeybinding = keyof AppKeybindings;
|
|
48
|
+
declare module "./keybindings.js" {
|
|
49
|
+
interface Keybindings extends AppKeybindings {
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolve default image-paste shortcuts for the current terminal platform.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getDefaultPasteImageKeys(platform?: NodeJS.Platform): KeyId[];
|
|
56
|
+
/**
|
|
57
|
+
* All keybindings definitions: TUI + app-specific.
|
|
58
|
+
*/
|
|
59
|
+
export declare const KEYBINDINGS: {
|
|
60
|
+
readonly "tui.editor.cursorUp": {
|
|
61
|
+
readonly defaultKeys: "up";
|
|
62
|
+
readonly description: "Move cursor up";
|
|
63
|
+
};
|
|
64
|
+
readonly "tui.editor.cursorDown": {
|
|
65
|
+
readonly defaultKeys: "down";
|
|
66
|
+
readonly description: "Move cursor down";
|
|
67
|
+
};
|
|
68
|
+
readonly "tui.editor.cursorLeft": {
|
|
69
|
+
readonly defaultKeys: ["left", "ctrl+b"];
|
|
70
|
+
readonly description: "Move cursor left";
|
|
71
|
+
};
|
|
72
|
+
readonly "tui.editor.cursorRight": {
|
|
73
|
+
readonly defaultKeys: ["right", "ctrl+f"];
|
|
74
|
+
readonly description: "Move cursor right";
|
|
75
|
+
};
|
|
76
|
+
readonly "tui.editor.cursorWordLeft": {
|
|
77
|
+
readonly defaultKeys: ["alt+left", "ctrl+left", "alt+b"];
|
|
78
|
+
readonly description: "Move cursor word left";
|
|
79
|
+
};
|
|
80
|
+
readonly "tui.editor.cursorWordRight": {
|
|
81
|
+
readonly defaultKeys: ["alt+right", "ctrl+right", "alt+f"];
|
|
82
|
+
readonly description: "Move cursor word right";
|
|
83
|
+
};
|
|
84
|
+
readonly "tui.editor.cursorLineStart": {
|
|
85
|
+
readonly defaultKeys: ["home", "ctrl+a"];
|
|
86
|
+
readonly description: "Move to line start";
|
|
87
|
+
};
|
|
88
|
+
readonly "tui.editor.cursorLineEnd": {
|
|
89
|
+
readonly defaultKeys: ["end", "ctrl+e"];
|
|
90
|
+
readonly description: "Move to line end";
|
|
91
|
+
};
|
|
92
|
+
readonly "tui.editor.jumpForward": {
|
|
93
|
+
readonly defaultKeys: "ctrl+]";
|
|
94
|
+
readonly description: "Jump forward to character";
|
|
95
|
+
};
|
|
96
|
+
readonly "tui.editor.jumpBackward": {
|
|
97
|
+
readonly defaultKeys: "ctrl+alt+]";
|
|
98
|
+
readonly description: "Jump backward to character";
|
|
99
|
+
};
|
|
100
|
+
readonly "tui.editor.pageUp": {
|
|
101
|
+
readonly defaultKeys: "pageUp";
|
|
102
|
+
readonly description: "Page up";
|
|
103
|
+
};
|
|
104
|
+
readonly "tui.editor.pageDown": {
|
|
105
|
+
readonly defaultKeys: "pageDown";
|
|
106
|
+
readonly description: "Page down";
|
|
107
|
+
};
|
|
108
|
+
readonly "tui.editor.deleteCharBackward": {
|
|
109
|
+
readonly defaultKeys: "backspace";
|
|
110
|
+
readonly description: "Delete character backward";
|
|
111
|
+
};
|
|
112
|
+
readonly "tui.editor.deleteCharForward": {
|
|
113
|
+
readonly defaultKeys: ["delete", "ctrl+d"];
|
|
114
|
+
readonly description: "Delete character forward";
|
|
115
|
+
};
|
|
116
|
+
readonly "tui.editor.deleteWordBackward": {
|
|
117
|
+
readonly defaultKeys: ["ctrl+w", "alt+backspace", "ctrl+backspace", "super+alt+backspace"];
|
|
118
|
+
readonly description: "Delete word backward";
|
|
119
|
+
};
|
|
120
|
+
readonly "tui.editor.deleteWordForward": {
|
|
121
|
+
readonly defaultKeys: ["alt+delete", "alt+d", "super+alt+delete", "super+alt+d"];
|
|
122
|
+
readonly description: "Delete word forward";
|
|
123
|
+
};
|
|
124
|
+
readonly "tui.editor.deleteToLineStart": {
|
|
125
|
+
readonly defaultKeys: "ctrl+u";
|
|
126
|
+
readonly description: "Delete to line start";
|
|
127
|
+
};
|
|
128
|
+
readonly "tui.editor.deleteToLineEnd": {
|
|
129
|
+
readonly defaultKeys: "ctrl+k";
|
|
130
|
+
readonly description: "Delete to line end";
|
|
131
|
+
};
|
|
132
|
+
readonly "tui.editor.yank": {
|
|
133
|
+
readonly defaultKeys: "ctrl+y";
|
|
134
|
+
readonly description: "Yank";
|
|
135
|
+
};
|
|
136
|
+
readonly "tui.editor.yankPop": {
|
|
137
|
+
readonly defaultKeys: "alt+y";
|
|
138
|
+
readonly description: "Yank pop";
|
|
139
|
+
};
|
|
140
|
+
readonly "tui.editor.undo": {
|
|
141
|
+
readonly defaultKeys: ["ctrl+-", "ctrl+_"];
|
|
142
|
+
readonly description: "Undo";
|
|
143
|
+
};
|
|
144
|
+
readonly "tui.editor.spellingSuggestions": {
|
|
145
|
+
readonly defaultKeys: "ctrl+.";
|
|
146
|
+
readonly description: "Show spelling replacements";
|
|
147
|
+
};
|
|
148
|
+
readonly "tui.input.newLine": {
|
|
149
|
+
readonly defaultKeys: ["shift+enter", "ctrl+j"];
|
|
150
|
+
readonly description: "Insert newline";
|
|
151
|
+
};
|
|
152
|
+
readonly "tui.input.submit": {
|
|
153
|
+
readonly defaultKeys: "enter";
|
|
154
|
+
readonly description: "Submit input";
|
|
155
|
+
};
|
|
156
|
+
readonly "tui.input.tab": {
|
|
157
|
+
readonly defaultKeys: "tab";
|
|
158
|
+
readonly description: "Tab / autocomplete";
|
|
159
|
+
};
|
|
160
|
+
readonly "tui.input.copy": {
|
|
161
|
+
readonly defaultKeys: "ctrl+c";
|
|
162
|
+
readonly description: "Copy selection";
|
|
163
|
+
};
|
|
164
|
+
readonly "tui.select.up": {
|
|
165
|
+
readonly defaultKeys: "up";
|
|
166
|
+
readonly description: "Move selection up";
|
|
167
|
+
};
|
|
168
|
+
readonly "tui.select.down": {
|
|
169
|
+
readonly defaultKeys: "down";
|
|
170
|
+
readonly description: "Move selection down";
|
|
171
|
+
};
|
|
172
|
+
readonly "tui.select.pageUp": {
|
|
173
|
+
readonly defaultKeys: "pageUp";
|
|
174
|
+
readonly description: "Selection page up";
|
|
175
|
+
};
|
|
176
|
+
readonly "tui.select.pageDown": {
|
|
177
|
+
readonly defaultKeys: "pageDown";
|
|
178
|
+
readonly description: "Selection page down";
|
|
179
|
+
};
|
|
180
|
+
readonly "tui.select.confirm": {
|
|
181
|
+
readonly defaultKeys: "enter";
|
|
182
|
+
readonly description: "Confirm selection";
|
|
183
|
+
};
|
|
184
|
+
readonly "tui.select.cancel": {
|
|
185
|
+
readonly defaultKeys: ["escape", "ctrl+c"];
|
|
186
|
+
readonly description: "Cancel selection";
|
|
187
|
+
};
|
|
188
|
+
readonly "app.interrupt": {
|
|
189
|
+
readonly defaultKeys: "escape";
|
|
190
|
+
readonly description: "Interrupt current operation";
|
|
191
|
+
};
|
|
192
|
+
readonly "app.clear": {
|
|
193
|
+
readonly defaultKeys: "ctrl+c";
|
|
194
|
+
readonly description: "Clear screen or cancel";
|
|
195
|
+
};
|
|
196
|
+
readonly "app.exit": {
|
|
197
|
+
readonly defaultKeys: "ctrl+d";
|
|
198
|
+
readonly description: "Exit application";
|
|
199
|
+
};
|
|
200
|
+
readonly "app.suspend": {
|
|
201
|
+
readonly defaultKeys: "ctrl+z";
|
|
202
|
+
readonly description: "Suspend application";
|
|
203
|
+
};
|
|
204
|
+
readonly "app.display.reset": {
|
|
205
|
+
readonly defaultKeys: "alt+l";
|
|
206
|
+
readonly description: "Reset terminal display";
|
|
207
|
+
};
|
|
208
|
+
readonly "app.thinking.cycle": {
|
|
209
|
+
readonly defaultKeys: "shift+tab";
|
|
210
|
+
readonly description: "Cycle thinking level";
|
|
211
|
+
};
|
|
212
|
+
readonly "app.thinking.toggle": {
|
|
213
|
+
readonly defaultKeys: "ctrl+t";
|
|
214
|
+
readonly description: "Toggle thinking mode";
|
|
215
|
+
};
|
|
216
|
+
readonly "app.model.cycleForward": {
|
|
217
|
+
readonly defaultKeys: "ctrl+p";
|
|
218
|
+
readonly description: "Cycle to next model";
|
|
219
|
+
};
|
|
220
|
+
readonly "app.model.cycleBackward": {
|
|
221
|
+
readonly defaultKeys: "shift+ctrl+p";
|
|
222
|
+
readonly description: "Cycle to previous model";
|
|
223
|
+
};
|
|
224
|
+
readonly "app.model.select": {
|
|
225
|
+
readonly defaultKeys: "alt+m";
|
|
226
|
+
readonly description: "Select model";
|
|
227
|
+
};
|
|
228
|
+
readonly "app.model.selectTemporary": {
|
|
229
|
+
readonly defaultKeys: "alt+p";
|
|
230
|
+
readonly description: "Select temporary model for current session";
|
|
231
|
+
};
|
|
232
|
+
readonly "app.tools.expand": {
|
|
233
|
+
readonly defaultKeys: "ctrl+o";
|
|
234
|
+
readonly description: "Expand tools";
|
|
235
|
+
};
|
|
236
|
+
readonly "app.tools.toggleVisibility": {
|
|
237
|
+
readonly defaultKeys: "ctrl+shift+o";
|
|
238
|
+
readonly description: "Show or hide tool activity";
|
|
239
|
+
};
|
|
240
|
+
readonly "app.editor.external": {
|
|
241
|
+
readonly defaultKeys: "ctrl+g";
|
|
242
|
+
readonly description: "Open external editor";
|
|
243
|
+
};
|
|
244
|
+
readonly "app.message.followUp": {
|
|
245
|
+
readonly defaultKeys: ["ctrl+q", "ctrl+enter"];
|
|
246
|
+
readonly description: "Send follow-up message";
|
|
247
|
+
};
|
|
248
|
+
readonly "app.retry": {
|
|
249
|
+
readonly defaultKeys: ["f5", "alt+r"];
|
|
250
|
+
readonly description: "Retry last failed assistant turn";
|
|
251
|
+
};
|
|
252
|
+
readonly "app.message.dequeue": {
|
|
253
|
+
readonly defaultKeys: ["alt+up", "shift+up"];
|
|
254
|
+
readonly description: "Dequeue message";
|
|
255
|
+
};
|
|
256
|
+
readonly "app.clipboard.pasteImage": {
|
|
257
|
+
readonly defaultKeys: KeyId[];
|
|
258
|
+
readonly description: "Paste image or text from clipboard";
|
|
259
|
+
};
|
|
260
|
+
readonly "app.clipboard.pasteTextRaw": {
|
|
261
|
+
readonly defaultKeys: ["ctrl+shift+v", "alt+shift+v"];
|
|
262
|
+
readonly description: "Paste text from clipboard as raw text (no collapse)";
|
|
263
|
+
};
|
|
264
|
+
readonly "app.clipboard.copyLine": {
|
|
265
|
+
readonly defaultKeys: "alt+shift+l";
|
|
266
|
+
readonly description: "Copy current line";
|
|
267
|
+
};
|
|
268
|
+
readonly "app.clipboard.copyPrompt": {
|
|
269
|
+
readonly defaultKeys: "alt+shift+c";
|
|
270
|
+
readonly description: "Copy prompt";
|
|
271
|
+
};
|
|
272
|
+
readonly "app.session.new": {
|
|
273
|
+
readonly defaultKeys: [];
|
|
274
|
+
readonly description: "Create new session";
|
|
275
|
+
};
|
|
276
|
+
readonly "app.session.tree": {
|
|
277
|
+
readonly defaultKeys: [];
|
|
278
|
+
readonly description: "Show session tree";
|
|
279
|
+
};
|
|
280
|
+
readonly "app.session.fork": {
|
|
281
|
+
readonly defaultKeys: [];
|
|
282
|
+
readonly description: "Fork session";
|
|
283
|
+
};
|
|
284
|
+
readonly "app.session.resume": {
|
|
285
|
+
readonly defaultKeys: [];
|
|
286
|
+
readonly description: "Resume session";
|
|
287
|
+
};
|
|
288
|
+
readonly "app.agents.hub": {
|
|
289
|
+
readonly defaultKeys: "alt+a";
|
|
290
|
+
readonly description: "Open the agent hub";
|
|
291
|
+
};
|
|
292
|
+
readonly "app.session.observe": {
|
|
293
|
+
readonly defaultKeys: "ctrl+s";
|
|
294
|
+
readonly description: "Open the agent hub";
|
|
295
|
+
};
|
|
296
|
+
readonly "app.session.togglePath": {
|
|
297
|
+
readonly defaultKeys: "ctrl+p";
|
|
298
|
+
readonly description: "Toggle session path display";
|
|
299
|
+
};
|
|
300
|
+
readonly "app.session.toggleSort": {
|
|
301
|
+
readonly defaultKeys: "ctrl+s";
|
|
302
|
+
readonly description: "Toggle session sort order";
|
|
303
|
+
};
|
|
304
|
+
readonly "app.session.rename": {
|
|
305
|
+
readonly defaultKeys: "ctrl+r";
|
|
306
|
+
readonly description: "Rename session";
|
|
307
|
+
};
|
|
308
|
+
readonly "app.session.delete": {
|
|
309
|
+
readonly defaultKeys: "ctrl+d";
|
|
310
|
+
readonly description: "Delete session";
|
|
311
|
+
};
|
|
312
|
+
readonly "app.session.deleteNoninvasive": {
|
|
313
|
+
readonly defaultKeys: "ctrl+backspace";
|
|
314
|
+
readonly description: "Delete session (non-invasive)";
|
|
315
|
+
};
|
|
316
|
+
readonly "app.tree.foldOrUp": {
|
|
317
|
+
readonly defaultKeys: ["ctrl+left", "alt+left"];
|
|
318
|
+
readonly description: "Fold or move up";
|
|
319
|
+
};
|
|
320
|
+
readonly "app.tree.unfoldOrDown": {
|
|
321
|
+
readonly defaultKeys: ["ctrl+right", "alt+right"];
|
|
322
|
+
readonly description: "Unfold or move down";
|
|
323
|
+
};
|
|
324
|
+
readonly "app.plan.toggle": {
|
|
325
|
+
readonly defaultKeys: "alt+shift+p";
|
|
326
|
+
readonly description: "Toggle plan mode";
|
|
327
|
+
};
|
|
328
|
+
readonly "app.history.search": {
|
|
329
|
+
readonly defaultKeys: "ctrl+r";
|
|
330
|
+
readonly description: "Search history";
|
|
331
|
+
};
|
|
332
|
+
readonly "app.stt.toggle": {
|
|
333
|
+
readonly defaultKeys: [];
|
|
334
|
+
readonly description: "Toggle speech-to-text (default gesture: hold Space)";
|
|
335
|
+
};
|
|
336
|
+
readonly "app.live.toggle": {
|
|
337
|
+
readonly defaultKeys: "ctrl+l";
|
|
338
|
+
readonly description: "Start or stop live voice mode (/live)";
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
/** Controls inherited keybinding lookup when creating a manager for a named profile. */
|
|
342
|
+
export interface KeybindingsCreateOptions {
|
|
343
|
+
/** Default-profile agent directory whose keybindings are merged before profile-specific bindings. */
|
|
344
|
+
inheritedAgentDir?: string;
|
|
345
|
+
}
|
|
346
|
+
/** Migrate legacy keybinding names and JSON configuration in an agent directory. */
|
|
347
|
+
declare function migrateKeybindingsConfigFile(agentDir: string): void;
|
|
348
|
+
/**
|
|
349
|
+
* Manages all keybindings (app + TUI).
|
|
350
|
+
* Extends the TUI KeybindingsManager with app-specific functionality.
|
|
351
|
+
*/
|
|
352
|
+
export declare class KeybindingsManager extends TuiKeybindingsManager {
|
|
353
|
+
#private;
|
|
354
|
+
constructor(userBindings?: KeybindingsConfig, configPath?: string, inheritedConfigPath?: string);
|
|
355
|
+
/**
|
|
356
|
+
* Create from config files at agentDir/keybindings.yml and the default profile.
|
|
357
|
+
* Legacy keybindings.json is migrated to keybindings.yml on load.
|
|
358
|
+
*/
|
|
359
|
+
static create(agentDir?: string, options?: KeybindingsCreateOptions): KeybindingsManager;
|
|
360
|
+
/**
|
|
361
|
+
* Create an in-memory keybindings manager without file persistence.
|
|
362
|
+
*/
|
|
363
|
+
static inMemory(userBindings?: KeybindingsConfig): KeybindingsManager;
|
|
364
|
+
/**
|
|
365
|
+
* Reload keybindings from the config files.
|
|
366
|
+
*/
|
|
367
|
+
reload(): void;
|
|
368
|
+
setUserBindings(userBindings: KeybindingsConfig): void;
|
|
369
|
+
getKeys(keybinding: Keybinding): KeyId[];
|
|
370
|
+
getResolvedBindings(): KeybindingsConfig;
|
|
371
|
+
/**
|
|
372
|
+
* Get the effective resolved bindings (defaults + user overrides).
|
|
373
|
+
*/
|
|
374
|
+
getEffectiveConfig(): KeybindingsConfig;
|
|
375
|
+
/**
|
|
376
|
+
* Get display string for a keybinding (e.g., "ctrl+c/escape").
|
|
377
|
+
*/
|
|
378
|
+
getDisplayString(keybinding: Keybinding): string;
|
|
379
|
+
}
|
|
380
|
+
/** Pin the platform used to render modifier labels (test seam). */
|
|
381
|
+
export declare function setKeyHintPlatform(platform: NodeJS.Platform | undefined): void;
|
|
382
|
+
/** Platform currently used for key-hint rendering. */
|
|
383
|
+
export declare function keyHintPlatform(): NodeJS.Platform;
|
|
384
|
+
type Modifier = "ctrl" | "shift" | "alt" | "super";
|
|
385
|
+
/**
|
|
386
|
+
* Human label for a modifier, using each platform's own key names. `ctrl` and
|
|
387
|
+
* `shift` are the same everywhere; `alt`/`super` become `Option`/`Cmd` on macOS.
|
|
388
|
+
*/
|
|
389
|
+
export declare function modifierLabel(mod: Modifier, platform?: NodeJS.Platform): string;
|
|
390
|
+
/** Format a key chord with human-readable, platform-aware modifier labels. */
|
|
391
|
+
export declare function formatKeyHint(key: KeyId): string;
|
|
392
|
+
/** Format alternative key chords as slash-separated human-readable hints. */
|
|
393
|
+
export declare function formatKeyHints(keys: KeyId | KeyId[]): string;
|
|
394
|
+
export type { Keybinding, KeybindingsConfig, KeyId };
|
|
395
|
+
export { migrateKeybindingsConfigFile };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Component } from "../tui.js";
|
|
2
|
+
import type { Theme } from "../theme/theme.js";
|
|
3
|
+
import { type ExperimentState } from "../tools/autoresearch.js";
|
|
4
|
+
/** Experiment runtime fields rendered by the dashboard. */
|
|
5
|
+
export interface AutoresearchDashboardRuntime {
|
|
6
|
+
autoresearchMode: boolean;
|
|
7
|
+
dashboardExpanded: boolean;
|
|
8
|
+
state: ExperimentState;
|
|
9
|
+
lastRunSummary: {
|
|
10
|
+
runNumber: number;
|
|
11
|
+
passed: boolean;
|
|
12
|
+
parsedPrimary: number | null;
|
|
13
|
+
} | null;
|
|
14
|
+
runningExperiment: {
|
|
15
|
+
startedAt: number;
|
|
16
|
+
command: string;
|
|
17
|
+
} | null;
|
|
18
|
+
}
|
|
19
|
+
/** Widget and overlay capabilities supplied by an extension context. */
|
|
20
|
+
export interface AutoresearchDashboardHost {
|
|
21
|
+
hasUI: boolean;
|
|
22
|
+
ui: {
|
|
23
|
+
setWidget(key: string, content: ((tui: {
|
|
24
|
+
requestRender(): void;
|
|
25
|
+
}, theme: Theme) => Component) | undefined): void;
|
|
26
|
+
custom<T>(factory: (tui: {
|
|
27
|
+
requestRender(): void;
|
|
28
|
+
}, theme: Theme, keybindings: unknown, done: (result: T) => void) => Component, options?: {
|
|
29
|
+
overlay: boolean;
|
|
30
|
+
}): Promise<T>;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Dashboard lifecycle and rendering controls. */
|
|
34
|
+
export interface DashboardController {
|
|
35
|
+
clear(ctx: AutoresearchDashboardHost): void;
|
|
36
|
+
requestRender(): void;
|
|
37
|
+
showOverlay(ctx: AutoresearchDashboardHost, runtime: AutoresearchDashboardRuntime): Promise<void>;
|
|
38
|
+
updateWidget(ctx: AutoresearchDashboardHost, runtime: AutoresearchDashboardRuntime): void;
|
|
39
|
+
}
|
|
40
|
+
/** Create a dashboard backed by the host's widget and overlay surfaces. */
|
|
41
|
+
export declare function createDashboardController(): DashboardController;
|
|
42
|
+
/** Render experiment progress and result rows at the requested width. */
|
|
43
|
+
export declare function renderDashboardLines(runtime: AutoresearchDashboardRuntime, width: number, theme: Theme, maxRows: number): string[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ExperimentResult, MetricDef, MetricDirection, NumericMetricMap } from "../tools/autoresearch.js";
|
|
2
|
+
/** Format an experiment duration for display. */
|
|
3
|
+
export declare function formatElapsed(milliseconds: number): string;
|
|
4
|
+
/** Compare metrics using the configured optimization direction. */
|
|
5
|
+
export declare function isBetter(current: number, best: number, direction: MetricDirection): boolean;
|
|
6
|
+
/** Select results belonging to the active experiment segment. */
|
|
7
|
+
export declare function currentResults(results: ExperimentResult[], segment: number): ExperimentResult[];
|
|
8
|
+
/** Find the first unflagged kept experiment in a segment. */
|
|
9
|
+
export declare function findBaselineResult(results: ExperimentResult[], segment: number): ExperimentResult | null;
|
|
10
|
+
/** Read the baseline primary metric for a segment. */
|
|
11
|
+
export declare function findBaselineMetric(results: ExperimentResult[], segment: number): number | null;
|
|
12
|
+
/** Resolve a baseline run number, including legacy unnumbered results. */
|
|
13
|
+
export declare function findBaselineRunNumber(results: ExperimentResult[], segment: number): number | null;
|
|
14
|
+
/** Collect secondary baselines from the earliest unflagged metric samples. */
|
|
15
|
+
export declare function findBaselineSecondary(results: ExperimentResult[], segment: number, knownMetrics: MetricDef[]): NumericMetricMap;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type LiveBoardOutput } from "../chrome/live-board.js";
|
|
2
|
+
import type { AgentProgress } from "../tools/task.js";
|
|
3
|
+
/** Checker identity shown in live rows and verdicts. */
|
|
4
|
+
export interface CleanseCheckerDescriptor {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
}
|
|
8
|
+
/** Checker result fields consumed by the verdict line. */
|
|
9
|
+
export interface CleanseCheckResult extends CleanseCheckerDescriptor {
|
|
10
|
+
diagnostics: readonly unknown[];
|
|
11
|
+
}
|
|
12
|
+
/** Repair workload fields displayed in agent rows. */
|
|
13
|
+
export interface CleanseAssignment {
|
|
14
|
+
index: number;
|
|
15
|
+
groups: readonly {
|
|
16
|
+
file?: string;
|
|
17
|
+
}[];
|
|
18
|
+
weight: number;
|
|
19
|
+
}
|
|
20
|
+
/** Completion fields displayed when a repair agent settles. */
|
|
21
|
+
export interface CleanseAgentOutcome {
|
|
22
|
+
name: string;
|
|
23
|
+
success: boolean;
|
|
24
|
+
error?: string;
|
|
25
|
+
resolvedModel?: string;
|
|
26
|
+
}
|
|
27
|
+
/** Rendering surface for one `omp cleanse` run. */
|
|
28
|
+
export interface CleanseStatusBoard {
|
|
29
|
+
readonly interactive: boolean;
|
|
30
|
+
/** Print a permanent line above the live area (plain write when non-TTY). */
|
|
31
|
+
log(text: string): void;
|
|
32
|
+
/** Show a transient spinner line; `undefined` clears it. Non-TTY prints the text once. */
|
|
33
|
+
phase(text: string | undefined): void;
|
|
34
|
+
checkerStarted(checker: CleanseCheckerDescriptor): void;
|
|
35
|
+
checkerFinished(check: CleanseCheckResult, durationMs: number): void;
|
|
36
|
+
/** End the repair phase and drop its live rows before verification. */
|
|
37
|
+
repairFinished(): void;
|
|
38
|
+
agentStarted(name: string, assignment: CleanseAssignment): void;
|
|
39
|
+
agentProgress(name: string, progress: AgentProgress): void;
|
|
40
|
+
agentFinished(outcome: CleanseAgentOutcome, assignment: CleanseAssignment): void;
|
|
41
|
+
/** Clear the live area and restore the cursor. Idempotent. */
|
|
42
|
+
close(): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Live-view state for one cleanse run, shared by the CLI stdout board and the
|
|
46
|
+
* interactive-mode overlay panel so both surfaces render identical rows.
|
|
47
|
+
*
|
|
48
|
+
* Mutators mirror {@link CleanseStatusBoard}; the finish mutators return the
|
|
49
|
+
* permanent line the surface should log above the live area.
|
|
50
|
+
*/
|
|
51
|
+
export declare class CleanseBoardModel {
|
|
52
|
+
#private;
|
|
53
|
+
phase(text: string | undefined): void;
|
|
54
|
+
checkerStarted(checker: CleanseCheckerDescriptor): void;
|
|
55
|
+
/** Drop the checker's live row and build its permanent verdict line. */
|
|
56
|
+
checkerFinished(check: CleanseCheckResult, durationMs: number): string;
|
|
57
|
+
repairFinished(): void;
|
|
58
|
+
agentStarted(name: string, assignment: CleanseAssignment): void;
|
|
59
|
+
agentProgress(name: string, progress: AgentProgress): void;
|
|
60
|
+
/** Drop the agent's live row, advance the repair bar, and build its permanent outcome line. */
|
|
61
|
+
agentFinished(outcome: CleanseAgentOutcome, assignment: CleanseAssignment): string;
|
|
62
|
+
/** Render the transient live rows for the current spinner frame. */
|
|
63
|
+
renderLive(spinner: string): string[];
|
|
64
|
+
}
|
|
65
|
+
/** Create the cleanse status board bound to `output` (default `process.stdout`). */
|
|
66
|
+
export declare function createCleanseStatusBoard(output?: LiveBoardOutput, errors?: LiveBoardOutput): CleanseStatusBoard;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Checker metadata presented by the target picker. */
|
|
2
|
+
export interface CleanseCheckerChoice {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
language: string;
|
|
6
|
+
command: string;
|
|
7
|
+
}
|
|
8
|
+
/** Selected checker scope or free-form repair request. */
|
|
9
|
+
export type CleanseTargetChoice = {
|
|
10
|
+
kind: "all";
|
|
11
|
+
} | {
|
|
12
|
+
kind: "checker";
|
|
13
|
+
id: string;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "request";
|
|
16
|
+
request: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "cancel";
|
|
19
|
+
};
|
|
20
|
+
/** Pick between running every discovered checker, one specific checker, or a free-form request. */
|
|
21
|
+
export declare function pickCleanseTarget(checkers: readonly CleanseCheckerChoice[]): Promise<CleanseTargetChoice>;
|
|
22
|
+
/** One-shot text prompt for a free-form cleanse request; `null` when cancelled or left empty. */
|
|
23
|
+
export declare function promptCleanseRequest(): Promise<string | null>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Sanitize and wrap an expanded log entry into display rows. */
|
|
2
|
+
export declare function formatDebugLogExpandedLines(line: string, maxWidth: number): string[];
|
|
3
|
+
/** Read a valid timestamp from a structured log entry. */
|
|
4
|
+
export declare function parseDebugLogTimestampMs(line: string): number | undefined;
|
|
5
|
+
/** Read a finite process identifier from a structured log entry. */
|
|
6
|
+
export declare function parseDebugLogPid(line: string): number | undefined;
|