@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,77 @@
|
|
|
1
|
+
import type { AgentProgress, AgentSource } from "../tools/task.js";
|
|
2
|
+
/** EventBus channel for aggregated subagent progress */
|
|
3
|
+
export declare const TASK_SUBAGENT_PROGRESS_CHANNEL = "task:subagent:progress";
|
|
4
|
+
/** EventBus channel for subagent lifecycle (start/end) */
|
|
5
|
+
export declare const TASK_SUBAGENT_LIFECYCLE_CHANNEL = "task:subagent:lifecycle";
|
|
6
|
+
/** Payload emitted on TASK_SUBAGENT_PROGRESS_CHANNEL */
|
|
7
|
+
export interface SubagentProgressPayload {
|
|
8
|
+
index: number;
|
|
9
|
+
agent: string;
|
|
10
|
+
agentSource: AgentSource;
|
|
11
|
+
task: string;
|
|
12
|
+
parentToolCallId?: string;
|
|
13
|
+
assignment?: string;
|
|
14
|
+
progress: AgentProgress;
|
|
15
|
+
sessionFile?: string;
|
|
16
|
+
/** See {@link SubagentLifecyclePayload.detached}. */
|
|
17
|
+
detached?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** Payload emitted on TASK_SUBAGENT_LIFECYCLE_CHANNEL */
|
|
20
|
+
export interface SubagentLifecyclePayload {
|
|
21
|
+
id: string;
|
|
22
|
+
agent: string;
|
|
23
|
+
agentSource: AgentSource;
|
|
24
|
+
description?: string;
|
|
25
|
+
status: "started" | "completed" | "failed" | "aborted";
|
|
26
|
+
sessionFile?: string;
|
|
27
|
+
parentToolCallId?: string;
|
|
28
|
+
index: number;
|
|
29
|
+
/**
|
|
30
|
+
* Spawn runs as a detached background job: the parent turn keeps working
|
|
31
|
+
* while this agent runs. Sync task spawns (parent blocked on the call) and
|
|
32
|
+
* eval `agent()` bridge spawns (rendered inside their eval cell) leave this
|
|
33
|
+
* unset — surfaces like the subagent HUD only list detached spawns.
|
|
34
|
+
*/
|
|
35
|
+
detached?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** Minimal event subscription surface supplied by the host. */
|
|
38
|
+
export interface EventBusLike {
|
|
39
|
+
on(channel: string, listener: (data: unknown) => void): () => void;
|
|
40
|
+
}
|
|
41
|
+
export interface ObservableSession {
|
|
42
|
+
id: string;
|
|
43
|
+
kind: "main" | "subagent";
|
|
44
|
+
label: string;
|
|
45
|
+
agent?: string;
|
|
46
|
+
description?: string;
|
|
47
|
+
status: "active" | "completed" | "failed" | "aborted";
|
|
48
|
+
sessionFile?: string;
|
|
49
|
+
parentToolCallId?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Spawn runs as a detached background job (parent turn not blocked on it).
|
|
52
|
+
* Sync task spawns and eval `agent()` spawns additionally render live in
|
|
53
|
+
* their own inline tool block / eval cell; the pinned HUD jump-lists every
|
|
54
|
+
* active subagent either way.
|
|
55
|
+
*/
|
|
56
|
+
detached?: boolean;
|
|
57
|
+
index?: number;
|
|
58
|
+
lastUpdate: number;
|
|
59
|
+
/** Latest progress snapshot from the subagent executor */
|
|
60
|
+
progress?: AgentProgress;
|
|
61
|
+
}
|
|
62
|
+
/** Coarse source of an observer change; callers use it to separate lifecycle work from high-frequency progress. */
|
|
63
|
+
export type SessionObserverChangeKind = "main" | "reset" | "lifecycle" | "progress";
|
|
64
|
+
export declare class SessionObserverRegistry {
|
|
65
|
+
#private;
|
|
66
|
+
/** Add a change listener. Returns unsubscribe function. */
|
|
67
|
+
onChange(cb: (kind: SessionObserverChangeKind) => void): () => void;
|
|
68
|
+
setMainSession(sessionFile?: string): void;
|
|
69
|
+
/** Return one tracked session without copying or sorting the registry. */
|
|
70
|
+
getSession(id: string): ObservableSession | undefined;
|
|
71
|
+
getSessions(): ObservableSession[];
|
|
72
|
+
getActiveSubagentCount(): number;
|
|
73
|
+
/** Clear all tracked sessions (e.g. on session switch). Keeps EventBus subscriptions and listeners. */
|
|
74
|
+
resetSessions(): void;
|
|
75
|
+
dispose(): void;
|
|
76
|
+
subscribeToEventBus(eventBus: EventBusLike, subagentEventBus: EventBusLike): void;
|
|
77
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type Component } from "../index.js";
|
|
2
|
+
/** Session lifecycle status presented by the picker. */
|
|
3
|
+
export type SessionSelectorStatus = "complete" | "interrupted" | "aborted" | "error" | "pending" | "unknown";
|
|
4
|
+
/** Session listing fields consumed by the picker. */
|
|
5
|
+
export interface SessionSelectorEntry {
|
|
6
|
+
path: string;
|
|
7
|
+
id: string;
|
|
8
|
+
cwd: string;
|
|
9
|
+
title?: string;
|
|
10
|
+
modified: Date;
|
|
11
|
+
size: number;
|
|
12
|
+
firstMessage: string;
|
|
13
|
+
allMessagesText: string;
|
|
14
|
+
status?: SessionSelectorStatus;
|
|
15
|
+
/** Path to the parent session when this one was forked. */
|
|
16
|
+
parentSessionPath?: string;
|
|
17
|
+
}
|
|
18
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
19
|
+
/** Returns the IDs of sessions whose recorded prompts match a query, best first. */
|
|
20
|
+
export type SessionHistoryMatcher = (query: string) => string[];
|
|
21
|
+
/**
|
|
22
|
+
* Filter and rank session picker search results.
|
|
23
|
+
*
|
|
24
|
+
* Exact and partial title matches lead. Other literal matches rank by recency
|
|
25
|
+
* rather than a slightly better fuzzy position match. Pure fuzzy/acronym
|
|
26
|
+
* matches still sort by fuzzy score after literal matches, but weak pure
|
|
27
|
+
* fuzzy tokens are dropped as noise.
|
|
28
|
+
*
|
|
29
|
+
* This is the synchronous reference implementation; {@link SessionList} runs
|
|
30
|
+
* the same primitives incrementally so huge listings never block a keystroke.
|
|
31
|
+
*/
|
|
32
|
+
export declare function rankSessionSearchMatches<T extends SessionSelectorEntry>(allSessions: T[], query: string): T[];
|
|
33
|
+
/**
|
|
34
|
+
* Combine metadata matches with prompt-history matches for ranking, using both
|
|
35
|
+
* signals rather than replacing one with the other.
|
|
36
|
+
*
|
|
37
|
+
* - `fuzzy` is the ordered metadata/session-text result.
|
|
38
|
+
* - `historyIds` are session IDs whose recorded prompts matched the query,
|
|
39
|
+
* ordered by prompt-history rank (typically newest matching prompt first); duplicates are tolerated.
|
|
40
|
+
*
|
|
41
|
+
* Ranking: prompt-history matches lead in history order, then remaining
|
|
42
|
+
* metadata matches keep their existing order. A metadata match is never dropped,
|
|
43
|
+
* and history matches not present in `allSessions` (e.g. deleted or out-of-scope
|
|
44
|
+
* sessions) are ignored since they cannot be resumed from here.
|
|
45
|
+
*/
|
|
46
|
+
export declare function mergeSessionRanking<T extends SessionSelectorEntry>(allSessions: T[], fuzzy: T[], historyIds: string[]): T[];
|
|
47
|
+
/**
|
|
48
|
+
* Custom session list component with multi-line items and search
|
|
49
|
+
*/
|
|
50
|
+
declare class SessionList<T extends SessionSelectorEntry> implements Component {
|
|
51
|
+
#private;
|
|
52
|
+
onSelect?: (session: T) => void;
|
|
53
|
+
onCancel?: () => void;
|
|
54
|
+
onExit: () => void;
|
|
55
|
+
onToggleScope?: () => void;
|
|
56
|
+
onDeleteRequest?: (session: T) => void;
|
|
57
|
+
/** Re-render hook for async list updates (fuzzy scan chunks, history merge). */
|
|
58
|
+
onRequestRender?: () => void;
|
|
59
|
+
constructor(sessions: T[], showCwd?: boolean, historyMatcher?: SessionHistoryMatcher, getTerminalRows?: () => number, pinnedIds?: ReadonlySet<string>, currentSessionPath?: string | (() => string | undefined));
|
|
60
|
+
/** Replace the visible dataset, e.g. when toggling folder/all-projects scope. */
|
|
61
|
+
setSessions(sessions: T[], showCwd: boolean, pinnedIds?: ReadonlySet<string>): void;
|
|
62
|
+
/** Cancel pending async search work; idempotent, called on every picker exit path. */
|
|
63
|
+
dispose(): void;
|
|
64
|
+
removeSession(sessionPath: string): void;
|
|
65
|
+
/** Resolve a list-local rendered-line index to a filtered-session index. */
|
|
66
|
+
hitTestSession(line: number): number | undefined;
|
|
67
|
+
/** Wheel notch: move the selection one step (clamped, no wrap). */
|
|
68
|
+
handleWheel(delta: -1 | 1): void;
|
|
69
|
+
/** Mouse click: select the session under the pointer and resume it. */
|
|
70
|
+
selectAndConfirm(index: number): void;
|
|
71
|
+
invalidate(): void;
|
|
72
|
+
render(width: number): readonly string[];
|
|
73
|
+
handleInput(keyData: string): void;
|
|
74
|
+
}
|
|
75
|
+
export interface SessionSelectorOptions<T extends SessionSelectorEntry = SessionSelectorEntry> {
|
|
76
|
+
onDelete?: (session: T) => Promise<boolean>;
|
|
77
|
+
historyMatcher?: SessionHistoryMatcher;
|
|
78
|
+
/** Loads sessions across all projects for the all-projects scope toggle (Tab). */
|
|
79
|
+
loadAllSessions?: () => Promise<T[]>;
|
|
80
|
+
/** Preloaded all-projects list; cached so the first Tab toggle is instant. */
|
|
81
|
+
allSessions?: T[];
|
|
82
|
+
/** Picker heading; defaults to "Resume Session". */
|
|
83
|
+
title?: string;
|
|
84
|
+
/** Fixed scope label, or false to omit the scope suffix. */
|
|
85
|
+
scopeLabel?: string | false;
|
|
86
|
+
/** Show each session's working directory in the list. */
|
|
87
|
+
showCwd?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Reads the live terminal height so the visible window fits the viewport.
|
|
90
|
+
* Omitted only in tests; defaults to a conservative 24 rows.
|
|
91
|
+
*/
|
|
92
|
+
getTerminalRows?: () => number;
|
|
93
|
+
/**
|
|
94
|
+
* Fill the whole viewport and pin the footer (hint + bottom border) to the
|
|
95
|
+
* last rows, so the footer stops drifting as the list window changes height.
|
|
96
|
+
* Set by the standalone `--resume` picker (fullscreen alternate screen); the
|
|
97
|
+
* in-editor selector leaves it off and renders compactly.
|
|
98
|
+
*/
|
|
99
|
+
fillHeight?: boolean;
|
|
100
|
+
/** Set of pinned session ids to display with a pin indicator. */
|
|
101
|
+
pinnedIds?: ReadonlySet<string>;
|
|
102
|
+
/** Path of the live session, or a getter so detach/newSession stays accurate. */
|
|
103
|
+
currentSessionPath?: string | (() => string | undefined);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Component that renders a session selector with optional confirmation dialog
|
|
107
|
+
*/
|
|
108
|
+
export declare class SessionSelectorComponent<T extends SessionSelectorEntry = SessionSelectorEntry> extends OverlayPanel {
|
|
109
|
+
#private;
|
|
110
|
+
constructor(sessions: T[], onSelect: (session: T) => void, onCancel: () => void, onExit: () => void, options?: SessionSelectorOptions<T>);
|
|
111
|
+
setOnRequestRender(callback: () => void): void;
|
|
112
|
+
/** Ignore input after selection while the host resumes the session. */
|
|
113
|
+
lockInput(): void;
|
|
114
|
+
/** Re-enable input after a failed resume so the user can pick again. */
|
|
115
|
+
unlockInput(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Dispose the session list explicitly: while the delete-confirmation dialog
|
|
118
|
+
* is mounted the list is detached from the child tree, so Container's
|
|
119
|
+
* child-walking dispose would miss its pending history-merge timer.
|
|
120
|
+
*/
|
|
121
|
+
dispose(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Render the panel directly so fill-height mode can keep its footer pinned
|
|
124
|
+
* while sharing OverlayPanel's exact rounded-box chrome. Children receive
|
|
125
|
+
* the panel's inner width before their rows are wrapped.
|
|
126
|
+
*/
|
|
127
|
+
render(width: number): readonly string[];
|
|
128
|
+
handleInput(keyData: string): void;
|
|
129
|
+
getSessionList(): SessionList<T>;
|
|
130
|
+
}
|
|
131
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/** Schema-independent display definitions for the settings overlay. */
|
|
2
|
+
import type { SymbolKey } from "../theme/symbols.js";
|
|
3
|
+
export type SettingTab = "appearance" | "model" | "interaction" | "context" | "memory" | "files" | "shell" | "tools" | "tasks" | "providers";
|
|
4
|
+
/** Tab display metadata - icon is resolved via theme.symbol() */
|
|
5
|
+
export type TabMetadata = {
|
|
6
|
+
label: string;
|
|
7
|
+
icon: Extract<SymbolKey, `tab.${string}`>;
|
|
8
|
+
};
|
|
9
|
+
/** Ordered list of tabs for UI rendering */
|
|
10
|
+
export declare const SETTING_TABS: SettingTab[];
|
|
11
|
+
/** Tab display metadata - icon is a symbol key from theme.ts (tab.*) */
|
|
12
|
+
export declare const TAB_METADATA: Record<SettingTab, TabMetadata>;
|
|
13
|
+
/**
|
|
14
|
+
* Ordered section groups per tab. Settings declare their section via `ui.group`;
|
|
15
|
+
* the settings UI renders groups in this order with a heading row between them.
|
|
16
|
+
* Ungrouped settings render first, before any section heading.
|
|
17
|
+
*/
|
|
18
|
+
export declare const TAB_GROUPS: Record<SettingTab, readonly string[]>;
|
|
19
|
+
/** Submenu choice metadata. */
|
|
20
|
+
export type SubmenuOption<V extends string = string> = {
|
|
21
|
+
value: V;
|
|
22
|
+
label: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
};
|
|
25
|
+
export interface UiBase {
|
|
26
|
+
tab: SettingTab;
|
|
27
|
+
/** Section within the tab; must be listed in TAB_GROUPS[tab]. Ungrouped settings render at the top. */
|
|
28
|
+
group?: string;
|
|
29
|
+
label: string;
|
|
30
|
+
description: string;
|
|
31
|
+
/**
|
|
32
|
+
* Risk note. Marks the settings row with a warning glyph and renders above
|
|
33
|
+
* the description in warning styling. For settings that can get the user
|
|
34
|
+
* rate-limited, flagged, or banned — not for merely advanced options.
|
|
35
|
+
*/
|
|
36
|
+
warning?: string;
|
|
37
|
+
/** Condition function name - setting only shown when true */
|
|
38
|
+
condition?: string;
|
|
39
|
+
}
|
|
40
|
+
/** Wide ui shape exposed to consumers that walk the schema generically. */
|
|
41
|
+
export type AnyUiMetadata = UiBase & {
|
|
42
|
+
options?: ReadonlyArray<SubmenuOption> | "runtime";
|
|
43
|
+
secret?: boolean;
|
|
44
|
+
ordered?: boolean;
|
|
45
|
+
};
|
|
46
|
+
/** Structural schema entries supplied by the application host. */
|
|
47
|
+
export interface SettingsDisplayEntry {
|
|
48
|
+
path: string;
|
|
49
|
+
type: string;
|
|
50
|
+
defaultValue: unknown;
|
|
51
|
+
ui?: AnyUiMetadata;
|
|
52
|
+
enumValues?: readonly string[];
|
|
53
|
+
credential?: boolean;
|
|
54
|
+
condition?: () => boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface SettingsHost {
|
|
57
|
+
entries: readonly SettingsDisplayEntry[];
|
|
58
|
+
get(path: string): unknown;
|
|
59
|
+
set(path: string, value: unknown): void;
|
|
60
|
+
normalizeProviderLimits(value: unknown): Record<string, number>;
|
|
61
|
+
validateProviderLimits(value: unknown): Record<string, number>;
|
|
62
|
+
}
|
|
63
|
+
/** Primitive value displayed by a settings control. */
|
|
64
|
+
export type SettingsDisplayValue = boolean | string;
|
|
65
|
+
interface BaseSettingDef {
|
|
66
|
+
path: string;
|
|
67
|
+
defaultValue: unknown;
|
|
68
|
+
schemaType: string;
|
|
69
|
+
label: string;
|
|
70
|
+
description: string;
|
|
71
|
+
/** Risk note shown in warning styling; set for settings that can get the user flagged or banned. */
|
|
72
|
+
warning?: string;
|
|
73
|
+
tab: SettingTab;
|
|
74
|
+
/** Section within the tab; items are ordered by TAB_GROUPS[tab] and rendered under a heading row. */
|
|
75
|
+
group?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Optional visibility predicate. When supplied and returning false, the
|
|
78
|
+
* setting is hidden from the UI. Applies to every variant — booleans,
|
|
79
|
+
* enums, submenus, and text inputs.
|
|
80
|
+
*/
|
|
81
|
+
condition?: () => boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface BooleanSettingDef extends BaseSettingDef {
|
|
84
|
+
type: "boolean";
|
|
85
|
+
}
|
|
86
|
+
export interface EnumSettingDef extends BaseSettingDef {
|
|
87
|
+
type: "enum";
|
|
88
|
+
values: readonly string[];
|
|
89
|
+
}
|
|
90
|
+
type OptionList = ReadonlyArray<SubmenuOption>;
|
|
91
|
+
export interface SubmenuSettingDef extends BaseSettingDef {
|
|
92
|
+
type: "submenu";
|
|
93
|
+
options: OptionList;
|
|
94
|
+
onPreview?: (value: string) => void;
|
|
95
|
+
onPreviewCancel?: (originalValue: string) => void;
|
|
96
|
+
}
|
|
97
|
+
export interface TextInputSettingDef extends BaseSettingDef {
|
|
98
|
+
type: "text";
|
|
99
|
+
secret: boolean;
|
|
100
|
+
}
|
|
101
|
+
export interface ProviderLimitsSettingDef extends BaseSettingDef {
|
|
102
|
+
type: "providerLimits";
|
|
103
|
+
}
|
|
104
|
+
/** Array-of-enum setting edited as a toggle list; `ordered` lists render positions and support reordering. */
|
|
105
|
+
export interface MultiSelectSettingDef extends BaseSettingDef {
|
|
106
|
+
type: "multiselect";
|
|
107
|
+
options: OptionList;
|
|
108
|
+
ordered: boolean;
|
|
109
|
+
}
|
|
110
|
+
export type SettingDef = BooleanSettingDef | EnumSettingDef | SubmenuSettingDef | TextInputSettingDef | ProviderLimitsSettingDef | MultiSelectSettingDef;
|
|
111
|
+
/** Get all setting definitions with UI, retaining live host visibility predicates. */
|
|
112
|
+
export declare function getAllSettingDefs(entries: readonly SettingsDisplayEntry[]): SettingDef[];
|
|
113
|
+
/** Get settings ordered by their tab's section layout. */
|
|
114
|
+
export declare function getSettingsForTab(entries: readonly SettingsDisplayEntry[], tab: SettingTab): SettingDef[];
|
|
115
|
+
/** Find the display definition for a host setting path. */
|
|
116
|
+
export declare function getSettingDef(entries: readonly SettingsDisplayEntry[], path: string): SettingDef | undefined;
|
|
117
|
+
/** Format a setting's declared default for display. */
|
|
118
|
+
export declare function getDisplayDefault(entries: readonly SettingsDisplayEntry[], path: string): string;
|
|
119
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ThinkingLevel } from "@oh-my-pi/pi-agent-core";
|
|
2
|
+
import type { Effort } from "@oh-my-pi/pi-ai";
|
|
3
|
+
import { type Component, type ImageBudget } from "../index.js";
|
|
4
|
+
import type { ShapeTarget } from "@oh-my-pi/snapcompact";
|
|
5
|
+
import type { ContextLineMode, StatusLinePreset, StatusLineSegmentId, StatusLineSeparatorStyle } from "../status-line/schema.js";
|
|
6
|
+
import { type SettingsHost } from "./settings-defs.js";
|
|
7
|
+
import { type ComposerPreviewStatusSource } from "./composer-shape-preview.js";
|
|
8
|
+
import { type PluginSettingsHost } from "./plugin-settings.js";
|
|
9
|
+
/**
|
|
10
|
+
* Dynamic context for settings that need runtime data.
|
|
11
|
+
* Some settings (like thinking level) are managed by the session, not Settings.
|
|
12
|
+
*/
|
|
13
|
+
export interface SettingsRuntimeContext {
|
|
14
|
+
settings: SettingsHost;
|
|
15
|
+
plugins: PluginSettingsHost;
|
|
16
|
+
/** Available thinking levels (from session) */
|
|
17
|
+
availableThinkingLevels: Effort[];
|
|
18
|
+
/** Current thinking level (from session) */
|
|
19
|
+
thinkingLevel: ThinkingLevel | undefined;
|
|
20
|
+
/** Available themes */
|
|
21
|
+
availableThemes: string[];
|
|
22
|
+
/** Provider/source ids shown in /model. */
|
|
23
|
+
providers: string[];
|
|
24
|
+
/** Active model (api + id); resolves what the snapcompact `auto` shape maps to. */
|
|
25
|
+
model?: ShapeTarget;
|
|
26
|
+
/** Shared TUI image budget (graphics ids + transmit-once) for image previews. */
|
|
27
|
+
imageBudget?: ImageBudget;
|
|
28
|
+
/** Schedules a re-render after async preview work completes. */
|
|
29
|
+
requestRender?: () => void;
|
|
30
|
+
/** Live status renderer for composer-shape previews (the session's status line). */
|
|
31
|
+
composerPreviewStatus?: ComposerPreviewStatusSource;
|
|
32
|
+
}
|
|
33
|
+
/** Status line settings subset for preview */
|
|
34
|
+
export interface StatusLinePreviewSettings {
|
|
35
|
+
preset?: StatusLinePreset;
|
|
36
|
+
contextLine?: ContextLineMode;
|
|
37
|
+
leftSegments?: StatusLineSegmentId[];
|
|
38
|
+
rightSegments?: StatusLineSegmentId[];
|
|
39
|
+
separator?: StatusLineSeparatorStyle;
|
|
40
|
+
sessionAccent?: boolean;
|
|
41
|
+
transparent?: boolean;
|
|
42
|
+
compactThinkingLevel?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface SettingsCallbacks {
|
|
45
|
+
/** Called when any setting value changes */
|
|
46
|
+
onChange: (path: string, newValue: unknown) => void;
|
|
47
|
+
/** Called for theme preview while browsing */
|
|
48
|
+
onThemePreview?: (theme: string) => void | Promise<void>;
|
|
49
|
+
/** Called for status line preview while configuring */
|
|
50
|
+
onStatusLinePreview?: (settings: StatusLinePreviewSettings) => void;
|
|
51
|
+
/** Get current rendered status line for inline preview */
|
|
52
|
+
getStatusLinePreview?: () => string;
|
|
53
|
+
/** Called when plugins change */
|
|
54
|
+
onPluginsChanged?: () => void | Promise<void>;
|
|
55
|
+
/** Called when settings panel is closed */
|
|
56
|
+
onCancel: () => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Main tabbed settings selector component.
|
|
60
|
+
* Uses declarative settings definitions from settings-defs.ts.
|
|
61
|
+
*/
|
|
62
|
+
export declare class SettingsSelectorComponent implements Component {
|
|
63
|
+
#private;
|
|
64
|
+
constructor(context: SettingsRuntimeContext, callbacks: SettingsCallbacks);
|
|
65
|
+
invalidate(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Fullscreen frame: title border, tab row, divider, optional search banner,
|
|
68
|
+
* the active content sized to fill the terminal, the appearance preview,
|
|
69
|
+
* then a footer hint pinned above the bottom border.
|
|
70
|
+
*/
|
|
71
|
+
render(width: number): readonly string[];
|
|
72
|
+
handleInput(data: string): void;
|
|
73
|
+
}
|
|
@@ -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 show images selector with borders
|
|
5
|
+
*/
|
|
6
|
+
export declare class ShowImagesSelectorComponent extends OverlayPanel {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(currentValue: boolean, onSelect: (show: boolean) => void, onCancel: () => void);
|
|
9
|
+
getSelectList(): SelectList;
|
|
10
|
+
routeMouse(event: SgrMouseEvent, line: number, col: number): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live preview for the `snapcompact.shape` setting: renders a sample session
|
|
3
|
+
* transcript through the real snapcompact rasterizer as a miniature page and
|
|
4
|
+
* shows it zoomed, so cell size, ink hues, highlight bands, and dim tool-result
|
|
5
|
+
* spans are legible at terminal scale.
|
|
6
|
+
*
|
|
7
|
+
* The mini-frame (a {@link SRC_FRAME_PX}px page) is upscaled with
|
|
8
|
+
* nearest-neighbor so the glyph pixels stay crisp when the terminal scales the
|
|
9
|
+
* placement box. Graphics display requires the Kitty unicode-placeholder path —
|
|
10
|
+
* `renderImage` returning `lines` is the gate — because the bordered settings
|
|
11
|
+
* frame re-fits every row, which direct cursor-positioned placements (iTerm2,
|
|
12
|
+
* Sixel, Kitty `a=p`) do not survive. Everything else falls back to the stats
|
|
13
|
+
* line plus a dim notice.
|
|
14
|
+
*/
|
|
15
|
+
import { type Component, type ImageBudget } from "../index.js";
|
|
16
|
+
import { type ShapeTarget } from "@oh-my-pi/snapcompact";
|
|
17
|
+
export interface SnapcompactShapePreviewOptions {
|
|
18
|
+
/** Active model (api + id); resolves what `auto` maps to for this reader. */
|
|
19
|
+
model?: ShapeTarget;
|
|
20
|
+
/** Shared TUI image budget: stable graphics ids, transmit-once, exit cleanup. */
|
|
21
|
+
imageBudget?: ImageBudget;
|
|
22
|
+
/** Schedules a re-render once an async sample render completes. */
|
|
23
|
+
requestRender?: () => void;
|
|
24
|
+
}
|
|
25
|
+
export declare class SnapcompactShapePreview implements Component {
|
|
26
|
+
#private;
|
|
27
|
+
constructor(currentValue: string, options?: SnapcompactShapePreviewOptions);
|
|
28
|
+
/** Track the highlighted option; the next render reflects it. */
|
|
29
|
+
setValue(value: string): void;
|
|
30
|
+
render(width: number): readonly string[];
|
|
31
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SelectList, type SgrMouseEvent } from "../index.js";
|
|
2
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
3
|
+
/**
|
|
4
|
+
* Component that renders a theme selector.
|
|
5
|
+
* Themes must be pre-loaded and passed to the constructor.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ThemeSelectorComponent extends OverlayPanel {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(currentTheme: string, themes: string[], onSelect: (themeName: string) => void, onCancel: () => void, onPreview: (themeName: string) => void);
|
|
10
|
+
getSelectList(): SelectList;
|
|
11
|
+
routeMouse(event: SgrMouseEvent, line: number, col: number): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Effort } from "@oh-my-pi/pi-ai";
|
|
2
|
+
import { SelectList, type SgrMouseEvent } from "../index.js";
|
|
3
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
4
|
+
/**
|
|
5
|
+
* Component that renders a thinking level selector with borders
|
|
6
|
+
*/
|
|
7
|
+
export declare class ThinkingSelectorComponent extends OverlayPanel {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(currentLevel: Effort, availableLevels: Effort[], onSelect: (level: Effort) => void, onCancel: () => void);
|
|
10
|
+
getSelectList(): SelectList;
|
|
11
|
+
routeMouse(event: SgrMouseEvent, line: number, col: number): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Component } from "../index.js";
|
|
2
|
+
/** Download progress fields consumed by the status display. */
|
|
3
|
+
export interface TinyTitleDownloadProgress {
|
|
4
|
+
status: "initiate" | "download" | "progress" | "progress_total" | "done" | "ready" | "error";
|
|
5
|
+
file?: string;
|
|
6
|
+
progress?: number;
|
|
7
|
+
loaded?: number;
|
|
8
|
+
total?: number;
|
|
9
|
+
files?: Record<string, {
|
|
10
|
+
loaded: number;
|
|
11
|
+
total: number;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
export declare class TinyTitleDownloadProgressComponent implements Component {
|
|
15
|
+
#private;
|
|
16
|
+
constructor(modelLabel: string);
|
|
17
|
+
update(event: TinyTitleDownloadProgress): void;
|
|
18
|
+
isComplete(): boolean;
|
|
19
|
+
invalidate(): void;
|
|
20
|
+
render(width: number): readonly string[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type Component } from "../index.js";
|
|
2
|
+
/** Available session-tree display filters. */
|
|
3
|
+
export declare const TREE_FILTER_MODES: readonly ["default", "no-tools", "user-only", "labeled-only", "all"];
|
|
4
|
+
/** Session-tree display filter. */
|
|
5
|
+
export type TreeFilterMode = (typeof TREE_FILTER_MODES)[number];
|
|
6
|
+
import { type TranscriptEntryLike } from "../chat/transcript-entry.js";
|
|
7
|
+
/** Fields consumed when displaying persisted entries in the session tree. */
|
|
8
|
+
export type SessionTreeEntry = {
|
|
9
|
+
id: string;
|
|
10
|
+
parentId: string | null;
|
|
11
|
+
} & (TranscriptEntryLike | {
|
|
12
|
+
type: "compaction";
|
|
13
|
+
tokensBefore: number;
|
|
14
|
+
} | {
|
|
15
|
+
type: "branch_summary";
|
|
16
|
+
summary: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: "model_change";
|
|
19
|
+
model: string;
|
|
20
|
+
} | {
|
|
21
|
+
type: "model_usage";
|
|
22
|
+
purpose: string;
|
|
23
|
+
role?: string;
|
|
24
|
+
provider: string;
|
|
25
|
+
model: string;
|
|
26
|
+
} | {
|
|
27
|
+
type: "thinking_level_change";
|
|
28
|
+
thinkingLevel?: string | null;
|
|
29
|
+
} | {
|
|
30
|
+
type: "custom";
|
|
31
|
+
customType: string;
|
|
32
|
+
} | {
|
|
33
|
+
type: "label";
|
|
34
|
+
label?: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: "service_tier_change";
|
|
37
|
+
serviceTier: Partial<Record<string, string>> | null;
|
|
38
|
+
} | {
|
|
39
|
+
type: "title_change";
|
|
40
|
+
title: string;
|
|
41
|
+
} | {
|
|
42
|
+
type: "mode_change";
|
|
43
|
+
mode: string;
|
|
44
|
+
} | {
|
|
45
|
+
type: "credential_pin";
|
|
46
|
+
provider: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: "ttsr_injection";
|
|
49
|
+
injectedRules: string[];
|
|
50
|
+
} | {
|
|
51
|
+
type: "session_init" | "reset_boundary";
|
|
52
|
+
});
|
|
53
|
+
/** Session tree shape consumed by the selector. */
|
|
54
|
+
export interface TreeSelectorNode {
|
|
55
|
+
entry: SessionTreeEntry;
|
|
56
|
+
children: TreeSelectorNode[];
|
|
57
|
+
label?: string;
|
|
58
|
+
}
|
|
59
|
+
import { OverlayPanel } from "../chrome/overlay-box.js";
|
|
60
|
+
/** Filter mode for tree display */
|
|
61
|
+
type FilterMode = TreeFilterMode;
|
|
62
|
+
declare class TreeList implements Component {
|
|
63
|
+
#private;
|
|
64
|
+
private readonly currentLeafId;
|
|
65
|
+
private readonly maxVisibleLines;
|
|
66
|
+
onSelect?: (entryId: string, options: {
|
|
67
|
+
summarize: boolean;
|
|
68
|
+
}) => void;
|
|
69
|
+
onCancel?: () => void;
|
|
70
|
+
onLabelEdit?: (entryId: string, currentLabel: string | undefined) => void;
|
|
71
|
+
constructor(tree: TreeSelectorNode[], currentLeafId: string | null, maxVisibleLines: number, initialFilterMode?: FilterMode, initialSelectedId?: string);
|
|
72
|
+
invalidate(): void;
|
|
73
|
+
dispose(): void;
|
|
74
|
+
getSearchQuery(): string;
|
|
75
|
+
getSelectedNode(): TreeSelectorNode | undefined;
|
|
76
|
+
updateNodeLabel(entryId: string, label: string | undefined): void;
|
|
77
|
+
render(width: number): readonly string[];
|
|
78
|
+
handleInput(keyData: string): void;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Component that renders a session tree selector for navigation
|
|
82
|
+
*/
|
|
83
|
+
export declare class TreeSelectorComponent extends OverlayPanel {
|
|
84
|
+
#private;
|
|
85
|
+
private readonly onLabelChangeCallback?;
|
|
86
|
+
constructor(tree: TreeSelectorNode[], currentLeafId: string | null, terminalHeight: number, onSelect: (entryId: string, options: {
|
|
87
|
+
summarize: boolean;
|
|
88
|
+
}) => void, onCancel: () => void, onLabelChangeCallback?: ((entryId: string, label: string | undefined) => void) | undefined, initialFilterMode?: FilterMode);
|
|
89
|
+
handleInput(keyData: string): void;
|
|
90
|
+
getTreeList(): TreeList;
|
|
91
|
+
}
|
|
92
|
+
export {};
|