@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
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `/move` overlay: a path input with live directory autocomplete.
|
|
3
|
+
*
|
|
4
|
+
* Rendered as a centered modal via `showHookCustom(..., { overlay: true })`.
|
|
5
|
+
* The user types a path, Tab autocompletes the highlighted directory, and Enter
|
|
6
|
+
* confirms — yielding the resolved directory string (or `undefined` on cancel).
|
|
7
|
+
*/
|
|
8
|
+
import { type Component, type Focusable } from "../index.js";
|
|
9
|
+
export interface MoveOverlayResult {
|
|
10
|
+
directory: string;
|
|
11
|
+
}
|
|
12
|
+
/** Directory suggestion displayed by the move dialog. */
|
|
13
|
+
export interface MoveDirectoryEntry {
|
|
14
|
+
/** Full absolute path. */
|
|
15
|
+
value: string;
|
|
16
|
+
/** Display label (basename + trailing slash). */
|
|
17
|
+
label: string;
|
|
18
|
+
}
|
|
19
|
+
/** Directory autocomplete supplied by the host. */
|
|
20
|
+
export interface MoveDirectorySource {
|
|
21
|
+
search(prefix: string, cwd: string, max: number): MoveDirectoryEntry[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Overlay component for `/move`: a single-line path input with a live-filtered
|
|
25
|
+
* list of matching directories. Tab accepts the highlighted suggestion; Enter
|
|
26
|
+
* confirms the current input (or the highlighted suggestion if the input is
|
|
27
|
+
* empty); Escape cancels.
|
|
28
|
+
*/
|
|
29
|
+
export declare class MoveOverlay implements Component, Focusable {
|
|
30
|
+
#private;
|
|
31
|
+
constructor(cwd: string, done: (result: MoveOverlayResult | undefined) => void, source: MoveDirectorySource);
|
|
32
|
+
get focused(): boolean;
|
|
33
|
+
set focused(value: boolean);
|
|
34
|
+
setUseTerminalCursor(useTerminalCursor: boolean): void;
|
|
35
|
+
pasteText(text: string): void;
|
|
36
|
+
handleInput(data: string): void;
|
|
37
|
+
render(width: number): readonly string[];
|
|
38
|
+
invalidate(): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type SgrMouseEvent } from "../index.js";
|
|
2
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
3
|
+
/** Credential presence and provenance needed by the provider picker. */
|
|
4
|
+
export interface OAuthSelectorAuthSource {
|
|
5
|
+
has(providerId: string): boolean;
|
|
6
|
+
hasAuth(providerId: string): boolean;
|
|
7
|
+
getCredentialOrigin(providerId: string): {
|
|
8
|
+
kind: "runtime" | "config" | "oauth" | "api_key" | "env" | "fallback";
|
|
9
|
+
envVar?: string;
|
|
10
|
+
} | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Component that renders an OAuth provider selector.
|
|
14
|
+
*/
|
|
15
|
+
export declare class OAuthSelectorComponent extends OverlayPanel {
|
|
16
|
+
#private;
|
|
17
|
+
constructor(mode: "login" | "logout", authStorage: OAuthSelectorAuthSource, onSelect: (providerId: string) => void, onCancel: () => void, options?: {
|
|
18
|
+
disabledProviders?: readonly string[];
|
|
19
|
+
validateAuth?: (providerId: string) => Promise<boolean>;
|
|
20
|
+
requestRender?: () => void;
|
|
21
|
+
});
|
|
22
|
+
stopValidation(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Fit the selector into `lines` rendered rows by shrinking the visible list
|
|
25
|
+
* window (the window is centered on the selection, so the selected row is
|
|
26
|
+
* always visible at any height). Prefers keeping the full chrome — borders,
|
|
27
|
+
* spacers, title, search status — but sacrifices the trailing spacer/border
|
|
28
|
+
* (clipped by the host) before dropping below three visible rows.
|
|
29
|
+
*/
|
|
30
|
+
setMaxHeight(lines: number): void;
|
|
31
|
+
handleInput(keyData: string): void;
|
|
32
|
+
/** Move the selection one step for a wheel notch (clamped, no wrap). */
|
|
33
|
+
handleWheel(delta: -1 | 1): void;
|
|
34
|
+
/**
|
|
35
|
+
* Route an SGR mouse report at component-local coordinates. Provider rows
|
|
36
|
+
* start LIST_ROW_OFFSET lines into the render; the ScrollView window shows
|
|
37
|
+
* #visibleCount rows from #scrollStart. Wheel moves the selection, motion
|
|
38
|
+
* drives the hover band, and a left click selects and confirms like Enter.
|
|
39
|
+
*/
|
|
40
|
+
routeMouse(event: SgrMouseEvent, line: number, _col: number): void;
|
|
41
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type TUI } from "../index.js";
|
|
2
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
3
|
+
export type OmfgPanelState = "generating" | "validating" | "confirming" | "saving" | "saved" | "rejected" | "aborted" | "error";
|
|
4
|
+
interface OmfgPanelComponentOptions {
|
|
5
|
+
complaint: string;
|
|
6
|
+
tui: TUI;
|
|
7
|
+
}
|
|
8
|
+
export declare class OmfgPanelComponent extends OverlayPanel {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(options: OmfgPanelComponentOptions);
|
|
11
|
+
appendDraft(delta: string): void;
|
|
12
|
+
setRule(text: string): void;
|
|
13
|
+
setStatus(state: OmfgPanelState, status: string): void;
|
|
14
|
+
markSaved(path: string): void;
|
|
15
|
+
markRejected(): void;
|
|
16
|
+
markAborted(): void;
|
|
17
|
+
markError(message: string): void;
|
|
18
|
+
close(): void;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type Component, type OverlayFocusOwner, type OverlayHandle, type OverlayOptions } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Slice of `InteractiveModeContext` the pause screen drives. Narrow so tests
|
|
4
|
+
* can exercise the full engage → hold → release lifecycle without a real TUI.
|
|
5
|
+
*/
|
|
6
|
+
export interface PauseScreenHost {
|
|
7
|
+
ui: {
|
|
8
|
+
showOverlay(component: Component, options?: OverlayOptions): OverlayHandle;
|
|
9
|
+
setFocus(component: Component): void;
|
|
10
|
+
requestRender(): void;
|
|
11
|
+
readonly terminal: {
|
|
12
|
+
readonly rows: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
showStatus(message: string, options?: {
|
|
16
|
+
dim?: boolean;
|
|
17
|
+
}): void;
|
|
18
|
+
readonly sessionName?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Paint the pause scene as exactly `height` rows, vertically centered.
|
|
22
|
+
* Exported for tests.
|
|
23
|
+
*/
|
|
24
|
+
export declare function renderPauseScreen(width: number, height: number, elapsedMs: number, sessionName?: string): string[];
|
|
25
|
+
/** Fullscreen overlay component; resolves {@link run} when a resume key lands. */
|
|
26
|
+
export declare class PauseScreenComponent implements Component, OverlayFocusOwner {
|
|
27
|
+
#private;
|
|
28
|
+
readonly host: PauseScreenHost;
|
|
29
|
+
constructor(host: PauseScreenHost);
|
|
30
|
+
/** Start the clock; resolves once the user asks to resume. */
|
|
31
|
+
run(): Promise<void>;
|
|
32
|
+
dispose(): void;
|
|
33
|
+
ownsOverlayFocusTarget(component: Component): boolean;
|
|
34
|
+
handleInput(data: string): void;
|
|
35
|
+
render(width: number): readonly string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Engage the global pause gate and hold the fullscreen pause screen until the
|
|
39
|
+
* user resumes. No-op when the gate is already engaged. Always releases the
|
|
40
|
+
* gate on the way out (including teardown throws) — a leaked pause would
|
|
41
|
+
* freeze every agent in the process with no UI left to release it.
|
|
42
|
+
*/
|
|
43
|
+
export declare function runPauseScreen(host: PauseScreenHost): Promise<void>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fullscreen plan-review overlay. The overlay owns its entire content: the plan
|
|
3
|
+
* is split into sections (preamble + one per heading), each rendered through its
|
|
4
|
+
* own {@link Markdown} and windowed by a {@link ScrollView}, while the approval
|
|
5
|
+
* options (plus the optional model-tier slider) sit beneath inside the same
|
|
6
|
+
* outlined box — one self-contained surface in the spirit of the `/copy` picker.
|
|
7
|
+
*
|
|
8
|
+
* When the terminal is wide enough and the plan has ≥2 headings, a Contents
|
|
9
|
+
* sidebar appears: it tracks the scrolled section with an accent "glow", and —
|
|
10
|
+
* when focused — lets the operator jump between sections, delete a section
|
|
11
|
+
* (with undo), and annotate sections with feedback that feeds the Refine loop.
|
|
12
|
+
*
|
|
13
|
+
* Focus regions (`toc`/`body`/`actions`) cycle with Tab/Shift+Tab; arrows move
|
|
14
|
+
* within the focused region and step left into the sidebar. The default focus is
|
|
15
|
+
* `actions`, so the muscle memory of the old single-target overlay carries over:
|
|
16
|
+
* ↑/↓ select options, Enter confirms, ←/→ drives the slider when there is no
|
|
17
|
+
* sidebar, g/G + PgUp/PgDn scroll, and the external-editor key opens the plan.
|
|
18
|
+
*/
|
|
19
|
+
import { type Component } from "../index.js";
|
|
20
|
+
import type { HookSelectorSlider } from "./hook-selector.js";
|
|
21
|
+
/** Serializable annotations retained by the plan-review owner between overlays. */
|
|
22
|
+
export interface PlanReviewAnnotationState {
|
|
23
|
+
annotations: Array<{
|
|
24
|
+
section: {
|
|
25
|
+
index: number;
|
|
26
|
+
title: string;
|
|
27
|
+
/** Heading ancestry from the document root, when emitted by this overlay. */
|
|
28
|
+
path?: string[];
|
|
29
|
+
/** Hash of the section source, used to reject ambiguous moved headings. */
|
|
30
|
+
contentHash?: string;
|
|
31
|
+
};
|
|
32
|
+
target: {
|
|
33
|
+
kind: "section";
|
|
34
|
+
} | {
|
|
35
|
+
kind: "line";
|
|
36
|
+
row: number;
|
|
37
|
+
context: string;
|
|
38
|
+
contextTruncated?: boolean;
|
|
39
|
+
};
|
|
40
|
+
note: string;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
export interface PlanReviewOverlayCallbacks {
|
|
44
|
+
/** Invoked with the chosen option label (never a disabled one). */
|
|
45
|
+
onPick: (label: string) => void;
|
|
46
|
+
/** Invoked on Esc / cancel. */
|
|
47
|
+
onCancel: () => void;
|
|
48
|
+
/** Invoked with the current full plan text when the copy hotkey is pressed. */
|
|
49
|
+
onCopyPlan?: (content: string) => void | Promise<void>;
|
|
50
|
+
/** Invoked when the external-editor key is pressed (overlay stays open). */
|
|
51
|
+
onExternalEditor?: () => void;
|
|
52
|
+
/** Invoked when the external-editor key edits the active annotation draft. */
|
|
53
|
+
onAnnotationExternalEditor?: (draft: string, commit: (text: string | null) => void) => void;
|
|
54
|
+
/** Invoked with the new full plan text after an in-overlay delete/undo. */
|
|
55
|
+
onPlanEdited?: (content: string) => void;
|
|
56
|
+
/** Invoked with the Refine feedback markdown whenever annotations change. */
|
|
57
|
+
onFeedbackChange?: (feedback: string) => void;
|
|
58
|
+
/** Invoked with a serializable annotation snapshot whenever annotations change. */
|
|
59
|
+
onAnnotationStateChange?: (state: PlanReviewAnnotationState) => void;
|
|
60
|
+
}
|
|
61
|
+
export interface PlanReviewOverlayOptions {
|
|
62
|
+
/** Prompt rendered above the options (e.g. "Plan mode - next step"). */
|
|
63
|
+
promptTitle?: string;
|
|
64
|
+
options: string[];
|
|
65
|
+
/** Indices into `options` that render dimmed and cannot be selected. */
|
|
66
|
+
disabledIndices?: number[];
|
|
67
|
+
/** Trailing footer hint (cancel hint); the overlay prepends dynamic help. */
|
|
68
|
+
helpText?: string;
|
|
69
|
+
/** Initially highlighted option index. */
|
|
70
|
+
initialIndex?: number;
|
|
71
|
+
/** Optional model-tier slider rendered between the plan body and options. */
|
|
72
|
+
slider?: HookSelectorSlider;
|
|
73
|
+
/** Display label for the external-editor key, surfaced in the footer help. */
|
|
74
|
+
externalEditorLabel?: string;
|
|
75
|
+
/** Serializable annotations restored into this overlay instance. */
|
|
76
|
+
annotationState?: PlanReviewAnnotationState;
|
|
77
|
+
}
|
|
78
|
+
export declare class PlanReviewOverlay implements Component {
|
|
79
|
+
#private;
|
|
80
|
+
private readonly callbacks;
|
|
81
|
+
constructor(planContent: string, options: PlanReviewOverlayOptions, callbacks: PlanReviewOverlayCallbacks);
|
|
82
|
+
invalidate(): void;
|
|
83
|
+
/** Swap the displayed plan (e.g. after an external-editor round-trip) and
|
|
84
|
+
* reset scroll/focus so the operator starts at the top. Does not emit
|
|
85
|
+
* `onPlanEdited` (the editor round-trip already persisted the file). */
|
|
86
|
+
setPlanContent(planContent: string): void;
|
|
87
|
+
handleInput(keyData: string): void;
|
|
88
|
+
render(width: number): readonly string[];
|
|
89
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Component, type Focusable } from "../index.js";
|
|
2
|
+
/** A confirmed destination chosen from {@link PlanSaveOverlay}. */
|
|
3
|
+
export interface PlanSaveOverlayResult {
|
|
4
|
+
path: string;
|
|
5
|
+
}
|
|
6
|
+
/** Collects a destination path before saving a plan and starting a new session. */
|
|
7
|
+
export declare class PlanSaveOverlay implements Component, Focusable {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(suggestedPath: string, done: (result: PlanSaveOverlayResult | undefined) => void);
|
|
10
|
+
get focused(): boolean;
|
|
11
|
+
set focused(value: boolean);
|
|
12
|
+
/** Replaces the dimmed path accepted when the operator submits an empty input. */
|
|
13
|
+
setSuggestedPath(path: string): void;
|
|
14
|
+
handleInput(data: string): void;
|
|
15
|
+
/** Routes enhanced clipboard pastes into the path input. */
|
|
16
|
+
pasteText(text: string): void;
|
|
17
|
+
invalidate(): void;
|
|
18
|
+
render(width: number): readonly string[];
|
|
19
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure heading/section parser for the plan-review overlay. It splits a plan's
|
|
3
|
+
* markdown into a flat list of sections — a leading preamble (text before the
|
|
4
|
+
* first heading) followed by one entry per ATX heading — preserving the exact
|
|
5
|
+
* source bytes of each section so the overlay can render, reorder-free delete,
|
|
6
|
+
* and round-trip the document without a full markdown re-render.
|
|
7
|
+
*
|
|
8
|
+
* No TUI dependencies: this module is unit-tested in isolation.
|
|
9
|
+
*/
|
|
10
|
+
export interface PlanSection {
|
|
11
|
+
/** `0` = preamble (no heading, no ToC entry); `1..6` = heading depth. */
|
|
12
|
+
level: number;
|
|
13
|
+
/** Plain-text heading label with inline markdown lightly stripped. */
|
|
14
|
+
title: string;
|
|
15
|
+
/** Exact source slice for this section, including its trailing newline(s). */
|
|
16
|
+
raw: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Collapse inline markdown emphasis/link/code syntax to readable text. This is
|
|
20
|
+
* a deliberately light strip (not a full markdown render) just so ToC entries
|
|
21
|
+
* read cleanly — `**Goal** & [docs](x)` becomes `Goal & docs`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function stripInlineMarkdown(text: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Split `text` into preamble + heading sections. `#` characters inside fenced
|
|
26
|
+
* code blocks are never treated as headings. Concatenating every section's
|
|
27
|
+
* `raw` reproduces the original text exactly.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parsePlanSections(text: string): PlanSection[];
|
|
30
|
+
/**
|
|
31
|
+
* Concatenate every section's `raw` back into a single document and guarantee a
|
|
32
|
+
* single trailing newline. Inverse of {@link parsePlanSections} for any input
|
|
33
|
+
* that already ends with a newline.
|
|
34
|
+
*/
|
|
35
|
+
export declare function joinPlanSections(sections: readonly PlanSection[]): string;
|
|
36
|
+
/**
|
|
37
|
+
* Indices to remove when deleting `sections[index]`: the heading itself plus
|
|
38
|
+
* every following section nested deeper than it (its sub-headings). The
|
|
39
|
+
* preamble (level 0) is never a deletion target and yields an empty span.
|
|
40
|
+
*/
|
|
41
|
+
export declare function sectionDeletionSpan(sections: readonly PlanSection[], index: number): number[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive marketplace plugin selector.
|
|
3
|
+
*
|
|
4
|
+
* Shows available plugins from all configured marketplaces in a SelectList.
|
|
5
|
+
* Selecting a plugin triggers installation. Esc cancels.
|
|
6
|
+
*/
|
|
7
|
+
import { SelectList, type SgrMouseEvent } from "../index.js";
|
|
8
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
9
|
+
export interface PluginSelectorCallbacks {
|
|
10
|
+
onSelect: (pluginName: string, marketplace: string, scope?: "user" | "project") => void;
|
|
11
|
+
onCancel: () => void;
|
|
12
|
+
}
|
|
13
|
+
export interface PluginItem {
|
|
14
|
+
plugin: {
|
|
15
|
+
name: string;
|
|
16
|
+
version?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
};
|
|
19
|
+
marketplace: string;
|
|
20
|
+
/** Scope of this entry. When set, appended to the label and forwarded to onSelect. */
|
|
21
|
+
scope?: "user" | "project";
|
|
22
|
+
}
|
|
23
|
+
export declare class PluginSelectorComponent extends OverlayPanel {
|
|
24
|
+
#private;
|
|
25
|
+
constructor(marketplaceCount: number, plugins: PluginItem[], installedIds: Set<string>, callbacks: PluginSelectorCallbacks);
|
|
26
|
+
getSelectList(): SelectList;
|
|
27
|
+
routeMouse(event: SgrMouseEvent, line: number, col: number): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin settings UI components.
|
|
3
|
+
*
|
|
4
|
+
* Provides a hierarchical settings interface:
|
|
5
|
+
* - Plugin list (npm plugins + marketplace plugins)
|
|
6
|
+
* - Plugin details (enablement, manifest settings, and marketplace metadata)
|
|
7
|
+
*/
|
|
8
|
+
import { Container } from "../index.js";
|
|
9
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
10
|
+
/** Setting metadata consumed by the plugin settings UI. */
|
|
11
|
+
export type PluginSettingSchema = {
|
|
12
|
+
description?: string;
|
|
13
|
+
secret?: boolean;
|
|
14
|
+
} & ({
|
|
15
|
+
type: "string";
|
|
16
|
+
default?: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: "number";
|
|
19
|
+
default?: number;
|
|
20
|
+
min?: number;
|
|
21
|
+
max?: number;
|
|
22
|
+
} | {
|
|
23
|
+
type: "boolean";
|
|
24
|
+
default?: boolean;
|
|
25
|
+
} | {
|
|
26
|
+
type: "enum";
|
|
27
|
+
default?: string;
|
|
28
|
+
values: string[];
|
|
29
|
+
});
|
|
30
|
+
/** Installed runtime plugin fields consumed by the settings UI. */
|
|
31
|
+
export interface InstalledPlugin {
|
|
32
|
+
name: string;
|
|
33
|
+
version: string;
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
enabledFeatures: string[] | null;
|
|
36
|
+
manifest: {
|
|
37
|
+
description?: string;
|
|
38
|
+
features?: Record<string, {
|
|
39
|
+
description?: string;
|
|
40
|
+
default?: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
settings?: Record<string, PluginSettingSchema>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Installed marketplace metadata consumed by the settings UI. */
|
|
46
|
+
export interface InstalledPluginSummary {
|
|
47
|
+
id: string;
|
|
48
|
+
scope: "user" | "project";
|
|
49
|
+
shadowedBy?: "project";
|
|
50
|
+
entries: {
|
|
51
|
+
installPath: string;
|
|
52
|
+
version: string;
|
|
53
|
+
installedAt: string;
|
|
54
|
+
lastUpdated: string;
|
|
55
|
+
gitCommitSha?: string;
|
|
56
|
+
enabled?: boolean;
|
|
57
|
+
}[];
|
|
58
|
+
}
|
|
59
|
+
/** Runtime plugin manager capabilities required by the settings UI. */
|
|
60
|
+
export interface PluginSettingsManager {
|
|
61
|
+
list(): Promise<InstalledPlugin[]>;
|
|
62
|
+
getPlugin(name: string, options?: {
|
|
63
|
+
path?: string;
|
|
64
|
+
}): Promise<InstalledPlugin | undefined>;
|
|
65
|
+
getPluginSettings(name: string): Promise<Record<string, unknown>>;
|
|
66
|
+
setEnabled(name: string, enabled: boolean): Promise<void>;
|
|
67
|
+
getEnabledFeatures(name: string): Promise<string[] | null>;
|
|
68
|
+
setEnabledFeatures(name: string, features: string[] | null): Promise<void>;
|
|
69
|
+
setPluginSetting(name: string, key: string, value: unknown): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
/** Marketplace manager capabilities required by the settings UI. */
|
|
72
|
+
export interface PluginSettingsMarketplaceManager {
|
|
73
|
+
listInstalledPlugins(): Promise<InstalledPluginSummary[]>;
|
|
74
|
+
setPluginEnabled(pluginId: string, enabled: boolean, scope?: "user" | "project"): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
/** Host-owned managers and plugin identifier parsing. */
|
|
77
|
+
export interface PluginSettingsHost {
|
|
78
|
+
manager: PluginSettingsManager;
|
|
79
|
+
createMarketplaceManager(): Promise<PluginSettingsMarketplaceManager>;
|
|
80
|
+
parsePluginId(id: string): {
|
|
81
|
+
name: string;
|
|
82
|
+
} | null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Forwards a keystroke to `input`, but cancels via `onCancel` when the user presses Escape.
|
|
86
|
+
*
|
|
87
|
+
* Escape is decoded via `matchesKey` rather than a raw `\x1b` compare: inside the
|
|
88
|
+
* fullscreen settings overlay the kitty keyboard protocol is active (ghostty/kitty),
|
|
89
|
+
* where the Escape key arrives as the CSI-u sequence `\x1b[27u`, not a bare `\x1b`.
|
|
90
|
+
* The literal fallbacks preserve legacy single/double-escape on terminals without it.
|
|
91
|
+
*/
|
|
92
|
+
export declare function handleInputOrEscape(data: string, input: {
|
|
93
|
+
handleInput(data: string): void;
|
|
94
|
+
}, onCancel: () => void): void;
|
|
95
|
+
/**
|
|
96
|
+
* One row in the unified plugin list. npm and marketplace plugins live in
|
|
97
|
+
* separate registries with different shapes, so a tagged union keeps both
|
|
98
|
+
* paths type-safe end-to-end (list rendering, value lookup, detail callback).
|
|
99
|
+
*/
|
|
100
|
+
export type PluginListEntry = {
|
|
101
|
+
kind: "npm";
|
|
102
|
+
plugin: InstalledPlugin;
|
|
103
|
+
} | {
|
|
104
|
+
kind: "marketplace";
|
|
105
|
+
plugin: InstalledPluginSummary;
|
|
106
|
+
};
|
|
107
|
+
export interface PluginListCallbacks {
|
|
108
|
+
onNpmSelect: (plugin: InstalledPlugin) => void;
|
|
109
|
+
onMarketplaceSelect: (plugin: InstalledPluginSummary) => void;
|
|
110
|
+
onCancel: () => void;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Shows installed plugins from both registries (npm + marketplace) with
|
|
114
|
+
* enable/disable status, scope tag, and shadow indicator. Selecting an entry
|
|
115
|
+
* fans out to the kind-specific detail callback.
|
|
116
|
+
*/
|
|
117
|
+
export declare class PluginListComponent extends OverlayPanel {
|
|
118
|
+
#private;
|
|
119
|
+
private readonly entries;
|
|
120
|
+
constructor(entries: ReadonlyArray<PluginListEntry>, callbacks: PluginListCallbacks);
|
|
121
|
+
handleInput(data: string): void;
|
|
122
|
+
}
|
|
123
|
+
export interface PluginDetailCallbacks {
|
|
124
|
+
onEnabledChange: (enabled: boolean) => void;
|
|
125
|
+
onFeatureChange: (feature: string, enabled: boolean) => void;
|
|
126
|
+
onConfigChange: (key: string, value: unknown) => void | Promise<void>;
|
|
127
|
+
/** Schedules a frame after an asynchronous config submission settles. */
|
|
128
|
+
requestRender?: () => void;
|
|
129
|
+
onBack: () => void;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Shows detail settings for a single plugin:
|
|
133
|
+
* - Enable/disable toggle
|
|
134
|
+
* - Feature toggles
|
|
135
|
+
* - Config settings
|
|
136
|
+
*/
|
|
137
|
+
export declare class PluginDetailComponent extends OverlayPanel {
|
|
138
|
+
#private;
|
|
139
|
+
private plugin;
|
|
140
|
+
private readonly manager;
|
|
141
|
+
private readonly callbacks;
|
|
142
|
+
constructor(plugin: InstalledPlugin, manager: PluginSettingsManager, callbacks: PluginDetailCallbacks);
|
|
143
|
+
handleInput(data: string): void;
|
|
144
|
+
}
|
|
145
|
+
export interface MarketplacePluginDetailCallbacks {
|
|
146
|
+
parsePluginId: PluginSettingsHost["parsePluginId"];
|
|
147
|
+
onEnabledChange: (enabled: boolean) => void;
|
|
148
|
+
onConfigChange: (pluginName: string, key: string, value: unknown) => void;
|
|
149
|
+
/** Schedules a TUI frame after asynchronous manifest settings load. */
|
|
150
|
+
requestRender?: () => void;
|
|
151
|
+
onBack: () => void;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Detail view for a marketplace plugin, including settings declared by its
|
|
155
|
+
* runtime package and metadata from the installed-plugins registry.
|
|
156
|
+
*/
|
|
157
|
+
export declare class MarketplacePluginDetailComponent extends OverlayPanel {
|
|
158
|
+
#private;
|
|
159
|
+
private plugin;
|
|
160
|
+
private readonly manager;
|
|
161
|
+
private readonly callbacks;
|
|
162
|
+
constructor(plugin: InstalledPluginSummary, manager: PluginSettingsManager, callbacks: MarketplacePluginDetailCallbacks);
|
|
163
|
+
handleInput(data: string): void;
|
|
164
|
+
}
|
|
165
|
+
export interface PluginSettingsCallbacks {
|
|
166
|
+
onClose: () => void;
|
|
167
|
+
onPluginChanged: () => void | Promise<void>;
|
|
168
|
+
/** Schedules a TUI frame after asynchronous plugin data loads. */
|
|
169
|
+
requestRender?: () => void;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Top-level plugin settings component.
|
|
173
|
+
* Manages navigation between plugin list and plugin detail views.
|
|
174
|
+
*/
|
|
175
|
+
export declare class PluginSettingsComponent extends Container {
|
|
176
|
+
#private;
|
|
177
|
+
private readonly callbacks;
|
|
178
|
+
constructor(host: PluginSettingsHost, callbacks: PluginSettingsCallbacks);
|
|
179
|
+
handleInput(data: string): void;
|
|
180
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SelectList, type SgrMouseEvent } from "../index.js";
|
|
2
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
3
|
+
/**
|
|
4
|
+
* Component that renders a queue mode selector with borders
|
|
5
|
+
*/
|
|
6
|
+
export declare class QueueModeSelectorComponent extends OverlayPanel {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(currentMode: "all" | "one-at-a-time", onSelect: (mode: "all" | "one-at-a-time") => void, onCancel: () => void);
|
|
9
|
+
getSelectList(): SelectList;
|
|
10
|
+
routeMouse(event: SgrMouseEvent, line: number, col: number): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
2
|
+
/** One account row with its redeemable rate-limit reset credits. */
|
|
3
|
+
export interface ResetUsageAccount {
|
|
4
|
+
label: string;
|
|
5
|
+
availableCount: number;
|
|
6
|
+
target: {
|
|
7
|
+
credentialId?: number;
|
|
8
|
+
accountId?: string;
|
|
9
|
+
email?: string;
|
|
10
|
+
};
|
|
11
|
+
active: boolean;
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Account picker for `/usage reset`. Lists Codex accounts with their saved
|
|
16
|
+
* rate-limit reset counts; selecting one redeems a reset. Because a reset is a
|
|
17
|
+
* scarce, irreversible credit, Enter requires a second press to confirm.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ResetUsageSelectorComponent extends OverlayPanel {
|
|
20
|
+
#private;
|
|
21
|
+
constructor(accounts: ResetUsageAccount[], onSelect: (account: ResetUsageAccount) => void, onCancel: () => void);
|
|
22
|
+
handleInput(keyData: string): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fullscreen esc-esc rewind selector.
|
|
3
|
+
*
|
|
4
|
+
* Replays the current session's branch with {@link ChatTranscriptBuilder} on
|
|
5
|
+
* the alternate screen (`ui.showOverlay(..., { fullscreen: true })`) and moves
|
|
6
|
+
* a dotted outline over the rendered transcript block the rewind would land
|
|
7
|
+
* on, instead of listing user messages in a detached picker. Entries that
|
|
8
|
+
* render nothing (notices, hidden custom messages, tool results folded into
|
|
9
|
+
* their call cards) are never outlined: results fold into the turn that
|
|
10
|
+
* rendered their call so rewinding a turn keeps its tool output, and the rest
|
|
11
|
+
* are skipped entirely.
|
|
12
|
+
*
|
|
13
|
+
* When the outlined turn has sibling branches in the session tree, the region
|
|
14
|
+
* below the divergence renders as a horizontal strip of half-width columns —
|
|
15
|
+
* the current path first, each alternate branch beside it — and Left/Right
|
|
16
|
+
* slide between them with an eased camera animation. Sibling columns are
|
|
17
|
+
* fully rendered transcripts of that branch's most-recent path, built lazily
|
|
18
|
+
* and cached per divergence.
|
|
19
|
+
*
|
|
20
|
+
* Keys: Up/Down step through rendered items in transcript order (within the
|
|
21
|
+
* active column when a strip is open), Left/Right slide between branch
|
|
22
|
+
* variants at a fork and jump between user turns elsewhere, Enter rewinds to
|
|
23
|
+
* the outlined item, Esc cancels.
|
|
24
|
+
*/
|
|
25
|
+
import type { AgentTool } from "@oh-my-pi/pi-agent-core";
|
|
26
|
+
import { type Component, type TUI } from "../index.js";
|
|
27
|
+
import type { MessageRenderer } from "../chat/extension-types.js";
|
|
28
|
+
import type { TranscriptEntryLike as TranscriptEntry } from "../chat/transcript-entry.js";
|
|
29
|
+
/** One alternate branch at a divergence: its root and message path root → most-recent leaf. */
|
|
30
|
+
export interface BranchVariantPath {
|
|
31
|
+
rootId: string;
|
|
32
|
+
entries: TranscriptEntry[];
|
|
33
|
+
}
|
|
34
|
+
export interface RewindSelectorDeps {
|
|
35
|
+
ui: TUI;
|
|
36
|
+
getTool?: (name: string) => AgentTool | undefined;
|
|
37
|
+
/** Whether the active registry entry came from a built-in factory. */
|
|
38
|
+
isBuiltInTool?: (name: string) => boolean;
|
|
39
|
+
getMessageRenderer?: (customType: string) => MessageRenderer | undefined;
|
|
40
|
+
cwd: string;
|
|
41
|
+
hideThinkingBlock?: () => boolean;
|
|
42
|
+
proseOnlyThinking?: () => boolean;
|
|
43
|
+
linkTargets?: ReadonlyMap<string, string>;
|
|
44
|
+
requestRender: () => void;
|
|
45
|
+
/** Sibling branch paths of `entryId`'s turn (excluding the turn itself). */
|
|
46
|
+
siblingPaths?: (entryId: string) => BranchVariantPath[];
|
|
47
|
+
/** Rewind the session to `entryId` (a message entry anywhere in the tree). */
|
|
48
|
+
onSelect: (entryId: string) => void;
|
|
49
|
+
onCancel: () => void;
|
|
50
|
+
}
|
|
51
|
+
export declare class RewindSelectorComponent implements Component {
|
|
52
|
+
#private;
|
|
53
|
+
private readonly deps;
|
|
54
|
+
constructor(entries: TranscriptEntry[], deps: RewindSelectorDeps);
|
|
55
|
+
/** Number of selectable rewind points on the current path; hosts skip mounting when zero. */
|
|
56
|
+
get targetCount(): number;
|
|
57
|
+
invalidate(): void;
|
|
58
|
+
dispose(): void;
|
|
59
|
+
handleInput(data: string): void;
|
|
60
|
+
render(width: number): readonly string[];
|
|
61
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AgentHubRegistry } from "./agent-hub-types.js";
|
|
2
|
+
export interface RunningSubagentRegistrySource<T extends AgentHubRegistry = AgentHubRegistry> {
|
|
3
|
+
agentRegistry: T;
|
|
4
|
+
}
|
|
5
|
+
export declare function getRunningSubagentBadgeRegistry<T extends AgentHubRegistry>(collabGuest: RunningSubagentRegistrySource<T> | undefined, localRegistry: T): T;
|
|
6
|
+
export declare function getRunningSubagentBadgeAgentIds(registry: AgentHubRegistry): string[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type SgrMouseEvent } from "../index.js";
|
|
2
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
3
|
+
/** Stored account identity rendered and matched by the session account picker. */
|
|
4
|
+
export interface SessionPinAccount {
|
|
5
|
+
position: number;
|
|
6
|
+
credentialId: number;
|
|
7
|
+
accountId?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
projectId?: string;
|
|
10
|
+
enterpriseUrl?: string;
|
|
11
|
+
orgId?: string;
|
|
12
|
+
orgName?: string;
|
|
13
|
+
active: boolean;
|
|
14
|
+
label: string;
|
|
15
|
+
}
|
|
16
|
+
/** Account picker opened by `/session pin` for the current model provider. */
|
|
17
|
+
export declare class SessionAccountSelectorComponent extends OverlayPanel {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(providerName: string, accounts: readonly SessionPinAccount[], onSelect: (account: SessionPinAccount) => void, onCancel: () => void);
|
|
20
|
+
/** Forward keyboard navigation and cancellation when the wrapper owns focus. */
|
|
21
|
+
handleInput(keyData: string): void;
|
|
22
|
+
/** Route mouse selection through the title rows into the account list. */
|
|
23
|
+
routeMouse(event: SgrMouseEvent, line: number, col: number): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Component } from "../index.js";
|
|
2
|
+
/** Terminal surface needed to size the session info viewport. */
|
|
3
|
+
export interface SessionInfoOverlayHost {
|
|
4
|
+
readonly terminal: {
|
|
5
|
+
readonly rows: number;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
/** Focused, dismissible `/session` information panel. */
|
|
9
|
+
export declare class SessionInfoOverlay implements Component {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(host: SessionInfoOverlayHost, info: string, onClose: () => void);
|
|
12
|
+
handleInput(data: string): void;
|
|
13
|
+
invalidate(): void;
|
|
14
|
+
setIgnoreTight(ignore: boolean): this;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
render(width: number): readonly string[];
|
|
17
|
+
}
|