@oh-my-pi/pi-tui 18.2.3 → 18.2.5
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 +29 -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/image.d.ts +18 -16
- 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/image.ts +80 -53
- 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 +70 -8
- package/src/utils.ts +8 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { ResolvedThinkingLevel } from "@oh-my-pi/pi-agent-core/thinking";
|
|
2
|
+
import type { ConfiguredThinkingLevel } from "./render/render-utils.js";
|
|
3
|
+
import { ThinkingLevel } from "@oh-my-pi/pi-agent-core/thinking";
|
|
4
|
+
import { Effort } from "@oh-my-pi/pi-catalog/effort";
|
|
5
|
+
import type { Model } from "@oh-my-pi/pi-catalog/types";
|
|
6
|
+
/** Thinking selectors accepted by CLI inputs, in display order. */
|
|
7
|
+
export declare const CLI_THINKING_LEVELS: readonly string[];
|
|
8
|
+
/**
|
|
9
|
+
* Metadata used to render thinking selector values in the coding-agent UI.
|
|
10
|
+
*/
|
|
11
|
+
export interface ThinkingLevelMetadata {
|
|
12
|
+
value: ThinkingLevel;
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parses a provider-facing effort value. Accepts unambiguous abbreviations.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseEffort(value: string | null | undefined): Effort | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Parses an agent-local thinking selector. Accepts unambiguous abbreviations.
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseThinkingLevel(value: string | null | undefined): ThinkingLevel | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Returns display metadata for a thinking selector.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getThinkingLevelMetadata(level: ThinkingLevel): ThinkingLevelMetadata;
|
|
28
|
+
/**
|
|
29
|
+
* Converts an agent-local selector into the effort sent to providers.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toReasoningEffort(level: ThinkingLevel | undefined): Effort | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* True when a selector explicitly requests provider-side reasoning disablement.
|
|
34
|
+
*/
|
|
35
|
+
export declare function shouldDisableReasoning(level: ThinkingLevel | undefined): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Resolves a selector against the current model while preserving explicit "off".
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveThinkingLevelForModel(model: Model | undefined, level: ThinkingLevel | undefined): ResolvedThinkingLevel | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Sentinel selector for the coding-agent "auto" thinking mode. Kept entirely
|
|
42
|
+
* inside the coding-agent layer: it is never an {@link Effort} or
|
|
43
|
+
* {@link ThinkingLevel}, so provider mapping/clamping keeps seeing concrete
|
|
44
|
+
* efforts. The session resolves `auto` to a concrete effort each turn.
|
|
45
|
+
*/
|
|
46
|
+
export declare const AUTO_THINKING: "auto";
|
|
47
|
+
/** A thinking selector as configured by the user — a concrete level or `auto`. */
|
|
48
|
+
export type { ConfiguredThinkingLevel } from "./render/render-utils.js";
|
|
49
|
+
/** Maps the session-level `auto` sentinel to `undefined`; concrete levels pass through. */
|
|
50
|
+
export declare function concreteThinkingLevel(level: ConfiguredThinkingLevel | undefined): ThinkingLevel | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* True when a prewalk hand-off from `current`/`currentLevel` to
|
|
53
|
+
* `target`/`targetLevel` would change nothing observable: same model id, same
|
|
54
|
+
* auto/fixed mode, and the same model-clamped effective effort. Prewalk arms and
|
|
55
|
+
* switches only when this is false.
|
|
56
|
+
*
|
|
57
|
+
* An effort-only delta on the same model id is a legitimate cheapening hand-off
|
|
58
|
+
* — on a reasoning model the effort is the bulk of the cost — so it is NOT a
|
|
59
|
+
* no-op and must still switch. A `targetLevel` of `undefined` means the prewalk
|
|
60
|
+
* pattern carried no explicit `:level` suffix (no effort change requested),
|
|
61
|
+
* which on the same model is a no-op.
|
|
62
|
+
*
|
|
63
|
+
* `auto` mode is compared before efforts: `auto` and a fixed selector that both
|
|
64
|
+
* resolve to `undefined` effort (e.g. `:inherit`) are NOT interchangeable —
|
|
65
|
+
* applying the fixed selector clears per-turn classification, so switching
|
|
66
|
+
* auto↔fixed is always a real change even when the clamped efforts match.
|
|
67
|
+
*
|
|
68
|
+
* Efforts are otherwise compared AFTER model clamping, so a target the model
|
|
69
|
+
* cannot honor (e.g. `:xhigh` on a model capped at `high`) — which
|
|
70
|
+
* `setThinkingLevel` would clamp straight back to the active effort — is
|
|
71
|
+
* recognized as a no-op instead of triggering an ephemeral reset and the
|
|
72
|
+
* plan/checklist nudges for nothing.
|
|
73
|
+
*/
|
|
74
|
+
export declare function prewalkWouldBeNoop(current: Model | undefined, currentLevel: ConfiguredThinkingLevel | undefined, target: Model, targetLevel: ConfiguredThinkingLevel | undefined): boolean;
|
|
75
|
+
/** Metadata used to render the `auto` selector value alongside concrete levels. */
|
|
76
|
+
export interface ConfiguredThinkingLevelMetadata {
|
|
77
|
+
value: ConfiguredThinkingLevel;
|
|
78
|
+
label: string;
|
|
79
|
+
description: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parses a configured thinking selector, accepting `auto` in addition to every
|
|
83
|
+
* value {@link parseThinkingLevel} accepts. {@link parseThinkingLevel} itself
|
|
84
|
+
* stays strict so model-suffix parsing (`model:high`) keeps rejecting `auto`.
|
|
85
|
+
*/
|
|
86
|
+
export declare function parseConfiguredThinkingLevel(value: string | null | undefined): ConfiguredThinkingLevel | undefined;
|
|
87
|
+
/** Returns display metadata for a configured selector, including `auto`. */
|
|
88
|
+
export declare function getConfiguredThinkingLevelMetadata(level: ConfiguredThinkingLevel): ConfiguredThinkingLevelMetadata;
|
|
89
|
+
/**
|
|
90
|
+
* Parses a `--thinking` CLI value. Accepts every {@link parseConfiguredThinkingLevel}
|
|
91
|
+
* selector (`off`, `auto`, `minimal`..`max`) but rejects
|
|
92
|
+
* `inherit`: an explicit `inherit` on the command line would suppress the
|
|
93
|
+
* settings/scoped-model fallback during startup resolution only to resolve back
|
|
94
|
+
* to the provider default, which is never what the user means.
|
|
95
|
+
*/
|
|
96
|
+
export declare function parseCliThinkingLevel(value: string | null | undefined): ConfiguredThinkingLevel | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Resolves an auto-classified effort against the active model's supported
|
|
99
|
+
* range. Unlike {@link clampThinkingLevelForModel}, `auto` never resolves below
|
|
100
|
+
* {@link Effort.Low}: the eligible pool is the model's supported efforts at or
|
|
101
|
+
* above Low (falling back to the full supported set only when the model maxes
|
|
102
|
+
* out below Low). Within that pool the request snaps to the highest level not
|
|
103
|
+
* exceeding it, or the pool minimum when the request is below the pool.
|
|
104
|
+
* `ceiling` bounds the pool from above, so a policy ceiling survives the model
|
|
105
|
+
* clamp: a sparse ladder such as `["max"]` must not snap an `xhigh` request up
|
|
106
|
+
* to `max`. The Low floor is resolved against the model's own ladder *before*
|
|
107
|
+
* the ceiling applies — a ceiling that hides every tier at or above Low means
|
|
108
|
+
* there is nothing legal to pick (`undefined`), not a licence to fall through
|
|
109
|
+
* to a sub-Low tier the model happens to expose.
|
|
110
|
+
*
|
|
111
|
+
* Returns `undefined` for reasoning-capable models without a controllable
|
|
112
|
+
* effort surface (`thinking.efforts` empty — e.g. devin-agent models, where
|
|
113
|
+
* Cascade selects effort by routing to sibling model ids). Matches
|
|
114
|
+
* {@link clampThinkingLevelForModel}: with no effort to pick, `auto` must not
|
|
115
|
+
* forward a concrete effort that would then trip {@link requireSupportedEffort}
|
|
116
|
+
* downstream.
|
|
117
|
+
*/
|
|
118
|
+
export declare function clampAutoThinkingEffort(model: Model | undefined, effort: Effort, ceiling?: Effort): Effort | undefined;
|
|
119
|
+
/** Coarse per-spawn effort selectors accepted by the task tool. */
|
|
120
|
+
export declare const TASK_EFFORTS: readonly ["lo", "med", "hi"];
|
|
121
|
+
/** Coarse task-spawn effort: the lowest, middle, or highest thinking level the target model supports. */
|
|
122
|
+
export type TaskEffort = (typeof TASK_EFFORTS)[number];
|
|
123
|
+
/**
|
|
124
|
+
* Maps a coarse task effort onto the model's supported thinking range:
|
|
125
|
+
* `lo` = lowest supported level, `hi` = highest (whatever the model tops out
|
|
126
|
+
* at — high, xhigh, or max), `med` = the middle (lower of the two middles for
|
|
127
|
+
* an even-sized range). Without a model, maps over the full canonical range.
|
|
128
|
+
* Returns `undefined` when the model has no controllable effort surface, so
|
|
129
|
+
* callers fall back to their default selector (e.g. `auto`). Throws when the
|
|
130
|
+
* configured ceiling is below the model's lowest supported effort.
|
|
131
|
+
*/
|
|
132
|
+
export declare function resolveTaskEffortLevel(model: Model | undefined, effort: TaskEffort, maxEffort?: Effort): Effort | undefined;
|
|
133
|
+
/**
|
|
134
|
+
* Clamps a concrete thinking selector to a per-session effort ceiling (e.g. a
|
|
135
|
+
* task spawn's `task.maxEffort`-capped effort hint). `off`/`inherit`/
|
|
136
|
+
* `undefined` pass through, as do levels already at or below the ceiling.
|
|
137
|
+
* Levels above it snap to the highest model-supported effort at or below the
|
|
138
|
+
* ceiling. A model whose floor exceeds the ceiling has nothing valid to snap
|
|
139
|
+
* to; the requested level is returned unchanged and the caller is responsible
|
|
140
|
+
* for rejecting or skipping such models (see {@link modelSupportsEffortCeiling}).
|
|
141
|
+
*/
|
|
142
|
+
export declare function clampThinkingLevelToCeiling(model: Model | undefined, level: Effort | undefined, ceiling: Effort | undefined): Effort | undefined;
|
|
143
|
+
export declare function clampThinkingLevelToCeiling(model: Model | undefined, level: ThinkingLevel | undefined, ceiling: Effort | undefined): ThinkingLevel | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* True when `model` can honor a thinking-effort ceiling: it either has no
|
|
146
|
+
* controllable effort surface (nothing to cap) or supports at least one effort
|
|
147
|
+
* at or below the ceiling. Retry-fallback candidate filtering uses this to
|
|
148
|
+
* skip models whose floor would force the session above the ceiling.
|
|
149
|
+
*/
|
|
150
|
+
export declare function modelSupportsEffortCeiling(model: Model, ceiling: Effort): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* The provisional concrete level shown while `auto` is configured but before a
|
|
153
|
+
* turn has been classified, and the fallback when classification fails. Prefers
|
|
154
|
+
* the model's `defaultLevel`, otherwise High, clamped into the auto range.
|
|
155
|
+
*
|
|
156
|
+
* Deliberately stays below {@link Effort.Max}: the placeholder must not bill the
|
|
157
|
+
* top tier for a turn nobody classified, so XHigh is passed as a hard ceiling
|
|
158
|
+
* rather than only capping the preferred level — otherwise a sparse `["max"]`
|
|
159
|
+
* ladder would snap straight back up. A model whose ladder offers nothing at or
|
|
160
|
+
* below XHigh therefore has no provisional level, and `auto` leaves the current
|
|
161
|
+
* one in place. Classification itself may still resolve Max on models that
|
|
162
|
+
* expose the tier when the user opts in. Returns `undefined` for non-reasoning
|
|
163
|
+
* models.
|
|
164
|
+
*/
|
|
165
|
+
export declare function resolveProvisionalAutoLevel(model: Model | undefined): Effort | undefined;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type ConfiguredThinkingLevel } from "../render/render-utils.js";
|
|
2
|
+
import type { Theme } from "../theme/theme.js";
|
|
3
|
+
/** Counters displayed alongside an agent name. */
|
|
4
|
+
export interface AgentStats {
|
|
5
|
+
toolCount?: number;
|
|
6
|
+
requests?: number;
|
|
7
|
+
contextTokens?: number;
|
|
8
|
+
contextWindow?: number;
|
|
9
|
+
cost?: number;
|
|
10
|
+
}
|
|
11
|
+
/** Format the shared tool-count, request, context, and cost stat run. */
|
|
12
|
+
export declare function formatAgentStatRun(stats: AgentStats, theme: Theme): string;
|
|
13
|
+
/** Tool-specific presentation layered onto a bounded agent progress row. */
|
|
14
|
+
export interface AgentTreeRowOptions {
|
|
15
|
+
status: "pending" | "running" | "completed" | "failed" | "aborted";
|
|
16
|
+
presentation: "task" | "eval";
|
|
17
|
+
prefix: string;
|
|
18
|
+
id: string;
|
|
19
|
+
width: number;
|
|
20
|
+
model?: string;
|
|
21
|
+
thinkingLevel?: ConfiguredThinkingLevel;
|
|
22
|
+
advisor?: boolean;
|
|
23
|
+
spinnerFrame?: number;
|
|
24
|
+
frozen?: boolean;
|
|
25
|
+
roleBadge?: string;
|
|
26
|
+
statusBadge?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
preview?: string;
|
|
29
|
+
stats?: AgentStats;
|
|
30
|
+
durationMs?: number;
|
|
31
|
+
}
|
|
32
|
+
/** Render an agent row while reserving its identifier and required status badges. */
|
|
33
|
+
export declare function renderAgentTreeRow(options: AgentTreeRowOptions, theme: Theme): {
|
|
34
|
+
line: string;
|
|
35
|
+
descriptionShown: boolean;
|
|
36
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type Component } from "../index.js";
|
|
2
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
3
|
+
import { type Theme } from "../theme/theme.js";
|
|
4
|
+
/** Result for a single question */
|
|
5
|
+
export interface QuestionResult {
|
|
6
|
+
id: string;
|
|
7
|
+
question: string;
|
|
8
|
+
options: string[];
|
|
9
|
+
multi: boolean;
|
|
10
|
+
selectedOptions: string[];
|
|
11
|
+
customInput?: string;
|
|
12
|
+
/** Optional note attached to the selected answer in the rich ask dialog. */
|
|
13
|
+
note?: string;
|
|
14
|
+
/** True when the answer was auto-selected because the dialog timed out. */
|
|
15
|
+
timedOut?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** Answers and redirect metadata displayed for an ask tool result. */
|
|
18
|
+
export interface AskToolDetails {
|
|
19
|
+
question?: string;
|
|
20
|
+
options?: string[];
|
|
21
|
+
multi?: boolean;
|
|
22
|
+
selectedOptions?: string[];
|
|
23
|
+
customInput?: string;
|
|
24
|
+
/** Optional note attached to the selected answer in the rich ask dialog. */
|
|
25
|
+
note?: string;
|
|
26
|
+
/** True when the answer was auto-selected because the dialog timed out. */
|
|
27
|
+
timedOut?: boolean;
|
|
28
|
+
/** Multi-part question mode */
|
|
29
|
+
results?: QuestionResult[];
|
|
30
|
+
/** Chat redirect: the user chose "Chat about this" instead of answering. */
|
|
31
|
+
chatRedirect?: boolean;
|
|
32
|
+
/** Questions surfaced when chatRedirect is true. */
|
|
33
|
+
questions?: string[];
|
|
34
|
+
}
|
|
35
|
+
interface AskRenderOption {
|
|
36
|
+
label: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
}
|
|
39
|
+
interface AskRenderArgs {
|
|
40
|
+
question?: string;
|
|
41
|
+
options?: AskRenderOption[];
|
|
42
|
+
multi?: boolean;
|
|
43
|
+
questions?: Array<{
|
|
44
|
+
id: string;
|
|
45
|
+
question: string;
|
|
46
|
+
options: AskRenderOption[];
|
|
47
|
+
multi?: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Marker glyph for a question option. Single-choice questions render circular radio
|
|
52
|
+
* buttons (pick one); multi-select questions render rectangular checkboxes (pick many).
|
|
53
|
+
*/
|
|
54
|
+
export declare function optionMarker(uiTheme: Theme, multi: boolean | undefined, selected: boolean): string;
|
|
55
|
+
/** Render question forms and their recorded answers. */
|
|
56
|
+
export declare const askToolRenderer: {
|
|
57
|
+
mergeCallAndResult: true;
|
|
58
|
+
renderCall(args: AskRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component;
|
|
59
|
+
renderResult(result: {
|
|
60
|
+
content: Array<{
|
|
61
|
+
type: string;
|
|
62
|
+
text?: string;
|
|
63
|
+
}>;
|
|
64
|
+
details?: AskToolDetails;
|
|
65
|
+
}, _options: RenderResultOptions, uiTheme: Theme): Component;
|
|
66
|
+
};
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Component } from "../tui.js";
|
|
2
|
+
import type { Theme } from "../theme/theme.js";
|
|
3
|
+
import type { OutputMeta } from "./output-meta.js";
|
|
4
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
5
|
+
/** Display metadata returned by ast-edit. */
|
|
6
|
+
export interface AstEditToolDetails {
|
|
7
|
+
totalReplacements: number;
|
|
8
|
+
filesTouched: number;
|
|
9
|
+
filesSearched: number;
|
|
10
|
+
applied: boolean;
|
|
11
|
+
limitReached: boolean;
|
|
12
|
+
parseErrors?: string[];
|
|
13
|
+
/** Total parse error count before {@link PARSE_ERRORS_LIMIT} capping. Omitted when no errors. */
|
|
14
|
+
parseErrorsTotal?: number;
|
|
15
|
+
scopePath?: string;
|
|
16
|
+
files?: string[];
|
|
17
|
+
fileReplacements?: Array<{
|
|
18
|
+
path: string;
|
|
19
|
+
count: number;
|
|
20
|
+
}>;
|
|
21
|
+
meta?: OutputMeta;
|
|
22
|
+
/** Pre-formatted text for the user-visible TUI render. Mirrors `result.text` lines but uses
|
|
23
|
+
* a `│` gutter (no model-only hashline anchors). The TUI uses this directly so it never parses model-facing text. */
|
|
24
|
+
displayContent?: string;
|
|
25
|
+
/** Absolute base directory used during the edit. Used by the renderer to resolve
|
|
26
|
+
* display-relative paths to absolute paths for OSC 8 hyperlinks. */
|
|
27
|
+
searchPath?: string;
|
|
28
|
+
/** Session cwd at edit time. Display header paths are cwd-relative, so the
|
|
29
|
+
* renderer resolves them against this; `searchPath` is the scope target. */
|
|
30
|
+
cwd?: string;
|
|
31
|
+
}
|
|
32
|
+
interface AstEditRenderArgs {
|
|
33
|
+
ops?: Array<{
|
|
34
|
+
pat?: string;
|
|
35
|
+
out?: string;
|
|
36
|
+
}>;
|
|
37
|
+
paths?: string[];
|
|
38
|
+
}
|
|
39
|
+
/** Render AST edit calls and results. */
|
|
40
|
+
export declare const astEditToolRenderer: {
|
|
41
|
+
inline: true;
|
|
42
|
+
renderCall(args: AstEditRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component;
|
|
43
|
+
renderResult(result: {
|
|
44
|
+
content: Array<{
|
|
45
|
+
type: string;
|
|
46
|
+
text?: string;
|
|
47
|
+
}>;
|
|
48
|
+
details?: AstEditToolDetails;
|
|
49
|
+
isError?: boolean;
|
|
50
|
+
}, options: RenderResultOptions, uiTheme: Theme, args?: AstEditRenderArgs): Component;
|
|
51
|
+
mergeCallAndResult: true;
|
|
52
|
+
};
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Component } from "../tui.js";
|
|
2
|
+
import type { Theme } from "../theme/theme.js";
|
|
3
|
+
import type { OutputMeta } from "./output-meta.js";
|
|
4
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
5
|
+
/** Display metadata returned by ast-grep. */
|
|
6
|
+
export interface AstGrepToolDetails {
|
|
7
|
+
matchCount: number;
|
|
8
|
+
fileCount: number;
|
|
9
|
+
filesSearched: number;
|
|
10
|
+
limitReached: boolean;
|
|
11
|
+
parseErrors?: string[];
|
|
12
|
+
/** Total parse error count before {@link PARSE_ERRORS_LIMIT} capping. Omitted when no errors. */
|
|
13
|
+
parseErrorsTotal?: number;
|
|
14
|
+
scopePath?: string;
|
|
15
|
+
files?: string[];
|
|
16
|
+
fileMatches?: Array<{
|
|
17
|
+
path: string;
|
|
18
|
+
count: number;
|
|
19
|
+
}>;
|
|
20
|
+
meta?: OutputMeta;
|
|
21
|
+
/** Pre-formatted text for the user-visible TUI render. Mirrors `result.text` lines but uses
|
|
22
|
+
* a `│` gutter and `*` to mark match lines. The TUI uses this directly so it never parses model-facing text. */
|
|
23
|
+
displayContent?: string;
|
|
24
|
+
/** Absolute base directory used during search. Used by the renderer to resolve
|
|
25
|
+
* display-relative paths to absolute paths for OSC 8 hyperlinks. */
|
|
26
|
+
searchPath?: string;
|
|
27
|
+
/** Session cwd at search time. Display header/match paths are cwd-relative, so
|
|
28
|
+
* the renderer resolves them against this; `searchPath` is the scope target. */
|
|
29
|
+
cwd?: string;
|
|
30
|
+
}
|
|
31
|
+
interface AstGrepRenderArgs {
|
|
32
|
+
pat?: string;
|
|
33
|
+
path?: string | string[];
|
|
34
|
+
/** Legacy pre-`path` argument name; kept so historical transcripts still render a scope. */
|
|
35
|
+
paths?: string[];
|
|
36
|
+
skip?: number;
|
|
37
|
+
}
|
|
38
|
+
/** Render AST grep calls and results. */
|
|
39
|
+
export declare const astGrepToolRenderer: {
|
|
40
|
+
inline: true;
|
|
41
|
+
renderCall(args: AstGrepRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component;
|
|
42
|
+
renderResult(result: {
|
|
43
|
+
content: Array<{
|
|
44
|
+
type: string;
|
|
45
|
+
text?: string;
|
|
46
|
+
}>;
|
|
47
|
+
details?: AstGrepToolDetails;
|
|
48
|
+
isError?: boolean;
|
|
49
|
+
}, options: RenderResultOptions, uiTheme: Theme, args?: AstGrepRenderArgs): Component;
|
|
50
|
+
mergeCallAndResult: true;
|
|
51
|
+
};
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Text } from "../components/text.js";
|
|
2
|
+
import type { Theme } from "../theme/theme.js";
|
|
3
|
+
import type { TruncationResult } from "./streaming-output.js";
|
|
4
|
+
/** Whether a lower or higher metric is better. */
|
|
5
|
+
export type MetricDirection = "lower" | "higher";
|
|
6
|
+
/** Disposition of a completed experiment. */
|
|
7
|
+
export type ExperimentStatus = "keep" | "discard" | "crash" | "checks_failed";
|
|
8
|
+
/** JSON-compatible additional structured experiment information. */
|
|
9
|
+
export type ASIValue = string | number | boolean | null | ASIValue[] | {
|
|
10
|
+
[key: string]: ASIValue;
|
|
11
|
+
};
|
|
12
|
+
/** Named structured experiment observations. */
|
|
13
|
+
export interface ASIData {
|
|
14
|
+
[key: string]: ASIValue;
|
|
15
|
+
}
|
|
16
|
+
/** Numeric metrics indexed by name. */
|
|
17
|
+
export interface NumericMetricMap {
|
|
18
|
+
[key: string]: number;
|
|
19
|
+
}
|
|
20
|
+
/** Name and unit of an experiment metric. */
|
|
21
|
+
export interface MetricDef {
|
|
22
|
+
name: string;
|
|
23
|
+
unit: string;
|
|
24
|
+
}
|
|
25
|
+
/** Recorded metric and disposition of an experiment run. */
|
|
26
|
+
export interface ExperimentResult {
|
|
27
|
+
runNumber: number | null;
|
|
28
|
+
commit: string;
|
|
29
|
+
metric: number;
|
|
30
|
+
metrics: NumericMetricMap;
|
|
31
|
+
status: ExperimentStatus;
|
|
32
|
+
description: string;
|
|
33
|
+
timestamp: number;
|
|
34
|
+
segment: number;
|
|
35
|
+
confidence: number | null;
|
|
36
|
+
asi?: ASIData;
|
|
37
|
+
modifiedPaths: string[];
|
|
38
|
+
scopeDeviations: string[];
|
|
39
|
+
justification: string | null;
|
|
40
|
+
flagged: boolean;
|
|
41
|
+
flaggedReason: string | null;
|
|
42
|
+
}
|
|
43
|
+
/** Current experiment baseline, history, and scope. */
|
|
44
|
+
export interface ExperimentState {
|
|
45
|
+
results: ExperimentResult[];
|
|
46
|
+
bestMetric: number | null;
|
|
47
|
+
bestDirection: MetricDirection;
|
|
48
|
+
metricName: string;
|
|
49
|
+
metricUnit: string;
|
|
50
|
+
secondaryMetrics: MetricDef[];
|
|
51
|
+
name: string | null;
|
|
52
|
+
goal: string | null;
|
|
53
|
+
currentSegment: number;
|
|
54
|
+
maxExperiments: number | null;
|
|
55
|
+
confidence: number | null;
|
|
56
|
+
scopePaths: string[];
|
|
57
|
+
offLimits: string[];
|
|
58
|
+
constraints: string[];
|
|
59
|
+
notes: string;
|
|
60
|
+
branch: string | null;
|
|
61
|
+
baselineCommit: string | null;
|
|
62
|
+
sessionId: number | null;
|
|
63
|
+
}
|
|
64
|
+
/** Live elapsed time and output metadata of a benchmark. */
|
|
65
|
+
export interface RunExperimentProgressDetails {
|
|
66
|
+
phase: "running";
|
|
67
|
+
elapsed: string;
|
|
68
|
+
truncation?: TruncationResult;
|
|
69
|
+
fullOutputPath?: string;
|
|
70
|
+
runDirectory?: string;
|
|
71
|
+
}
|
|
72
|
+
/** Completed benchmark measurements, status, and output. */
|
|
73
|
+
export interface RunDetails {
|
|
74
|
+
runNumber: number;
|
|
75
|
+
runDirectory: string;
|
|
76
|
+
benchmarkLogPath: string;
|
|
77
|
+
command: string;
|
|
78
|
+
exitCode: number | null;
|
|
79
|
+
durationSeconds: number;
|
|
80
|
+
passed: boolean;
|
|
81
|
+
crashed: boolean;
|
|
82
|
+
timedOut: boolean;
|
|
83
|
+
tailOutput: string;
|
|
84
|
+
parsedMetrics: NumericMetricMap | null;
|
|
85
|
+
parsedPrimary: number | null;
|
|
86
|
+
parsedAsi: ASIData | null;
|
|
87
|
+
metricName: string;
|
|
88
|
+
metricUnit: string;
|
|
89
|
+
preRunDirtyPaths: string[];
|
|
90
|
+
abandonedPriorRun: number | null;
|
|
91
|
+
truncation?: TruncationResult;
|
|
92
|
+
fullOutputPath?: string;
|
|
93
|
+
}
|
|
94
|
+
/** Logged experiment result and updated baseline state. */
|
|
95
|
+
export interface LogDetails {
|
|
96
|
+
experiment: ExperimentResult;
|
|
97
|
+
state: ExperimentState;
|
|
98
|
+
wallClockSeconds: number | null;
|
|
99
|
+
scopeDeviations: string[];
|
|
100
|
+
justification: string | null;
|
|
101
|
+
flaggedRuns: Array<{
|
|
102
|
+
runId: number;
|
|
103
|
+
reason: string;
|
|
104
|
+
}>;
|
|
105
|
+
}
|
|
106
|
+
/** Format an integer with comma-separated digit groups. */
|
|
107
|
+
export declare function commas(value: number): string;
|
|
108
|
+
/** Format a number with grouped digits and optional decimals. */
|
|
109
|
+
export declare function fmtNum(value: number, decimals?: number): string;
|
|
110
|
+
/** Format an optional metric value with its unit. */
|
|
111
|
+
export declare function formatNum(value: number | null, unit: string): string;
|
|
112
|
+
/** Filename of the benchmark harness. */
|
|
113
|
+
export declare const HARNESS_FILENAME = "autoresearch.sh";
|
|
114
|
+
/** Default command that executes the benchmark harness. */
|
|
115
|
+
export declare const DEFAULT_HARNESS_COMMAND = "bash autoresearch.sh";
|
|
116
|
+
/** Initialization outcome and experiment state. */
|
|
117
|
+
export interface InitExperimentDetails {
|
|
118
|
+
state: ExperimentState;
|
|
119
|
+
createdSession: boolean;
|
|
120
|
+
bumpedSegment: boolean;
|
|
121
|
+
abandonedRuns: number;
|
|
122
|
+
harnessCommitted: boolean;
|
|
123
|
+
baselineCommit: string | null;
|
|
124
|
+
}
|
|
125
|
+
/** Render init-experiment tool calls and results. */
|
|
126
|
+
export declare const initExperimentToolRenderer: {
|
|
127
|
+
renderCall(args: {
|
|
128
|
+
name: string;
|
|
129
|
+
}, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
130
|
+
renderResult(result: import("./renderer.js").ToolRenderResult<InitExperimentDetails>): Text;
|
|
131
|
+
};
|
|
132
|
+
/** Render log-experiment tool calls and results. */
|
|
133
|
+
export declare const logExperimentToolRenderer: {
|
|
134
|
+
renderCall(args: {
|
|
135
|
+
status: ExperimentStatus;
|
|
136
|
+
description: string;
|
|
137
|
+
}, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
138
|
+
renderResult(result: import("./renderer.js").ToolRenderResult<LogDetails>, _options: import("./renderer.js").RenderResultContextOptions, theme: Theme): Text;
|
|
139
|
+
};
|
|
140
|
+
/** Render run-experiment tool calls and results. */
|
|
141
|
+
export declare const runExperimentToolRenderer: {
|
|
142
|
+
renderCall(_args: unknown, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
143
|
+
renderResult(result: import("./renderer.js").ToolRenderResult<RunDetails | RunExperimentProgressDetails>, options: import("./renderer.js").RenderResultContextOptions, theme: Theme): Text;
|
|
144
|
+
};
|
|
145
|
+
/** Persisted experiment notes after an update. */
|
|
146
|
+
export interface UpdateNotesDetails {
|
|
147
|
+
notes: string;
|
|
148
|
+
}
|
|
149
|
+
/** Render update-notes tool calls and results. */
|
|
150
|
+
export declare const updateNotesToolRenderer: {
|
|
151
|
+
renderCall(args: {
|
|
152
|
+
body: string;
|
|
153
|
+
append_idea?: string;
|
|
154
|
+
}, _options: import("./renderer.js").RenderResultOptions, theme: Theme): Text;
|
|
155
|
+
renderResult(result: import("./renderer.js").ToolRenderResult<UpdateNotesDetails>, _options: import("./renderer.js").RenderResultContextOptions, theme: Theme): Text;
|
|
156
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type * as XtermModule from "@oh-my-pi/pi-utils/vterm";
|
|
2
|
+
import type { Component } from "../tui.js";
|
|
3
|
+
import type { Theme } from "../theme/theme.js";
|
|
4
|
+
/** Resize-only backend exposed by an interactive PTY controller. */
|
|
5
|
+
export interface BashInteractiveTerminalBackend {
|
|
6
|
+
resize(columns: number, rows: number): void;
|
|
7
|
+
}
|
|
8
|
+
/** Interactive terminal overlay driven by an external PTY controller. */
|
|
9
|
+
export declare class BashInteractiveOverlayComponent implements Component {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(command: string, uiTheme: Theme, getTerminalRows: () => number, terminalCtor: typeof XtermModule.Terminal, backend: BashInteractiveTerminalBackend);
|
|
12
|
+
/** Connects normalized keyboard input and overlay lifecycle events to the controller. */
|
|
13
|
+
setHandlers(onInput: (data: string) => void, onDismiss: () => void, onDispose: () => void): void;
|
|
14
|
+
/** Queues a raw terminal output chunk for virtual-terminal rendering. */
|
|
15
|
+
appendOutput(chunk: string): void;
|
|
16
|
+
/** Resolves when the virtual terminal has processed all queued output. */
|
|
17
|
+
flushOutput(): Promise<void>;
|
|
18
|
+
/** Records process completion and stops forwarding keyboard input. */
|
|
19
|
+
setComplete(result: {
|
|
20
|
+
exitCode: number | undefined;
|
|
21
|
+
cancelled: boolean;
|
|
22
|
+
timedOut: boolean;
|
|
23
|
+
}): void;
|
|
24
|
+
handleInput(data: string): void;
|
|
25
|
+
render(width: number): readonly string[];
|
|
26
|
+
invalidate(): void;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { Component } from "../tui.js";
|
|
2
|
+
import { type Theme } from "../theme/theme.js";
|
|
3
|
+
import { type OutputMeta } from "./output-meta.js";
|
|
4
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
5
|
+
/** Default collapsed shell output preview height. */
|
|
6
|
+
export declare const BASH_DEFAULT_PREVIEW_LINES = 10;
|
|
7
|
+
/** LLM-facing footer appended when a tool call becomes a background job. */
|
|
8
|
+
export declare function formatBackgroundNotice(jobId: string): string;
|
|
9
|
+
/** Shell execution metadata used by transcript rendering. */
|
|
10
|
+
export interface BashToolDetails {
|
|
11
|
+
meta?: OutputMeta;
|
|
12
|
+
timeoutSeconds?: number;
|
|
13
|
+
requestedTimeoutSeconds?: number;
|
|
14
|
+
timeoutDisabled?: boolean;
|
|
15
|
+
wallTimeMs?: number;
|
|
16
|
+
/** Exit code of a command that ran to completion but failed (non-zero). */
|
|
17
|
+
exitCode?: number;
|
|
18
|
+
/** True when the command was killed by its timeout deadline (not a failure). */
|
|
19
|
+
timedOut?: boolean;
|
|
20
|
+
/** Live ACP update only; completed results refer to released terminals. */
|
|
21
|
+
terminalId?: string;
|
|
22
|
+
async?: {
|
|
23
|
+
state: "running" | "completed" | "failed";
|
|
24
|
+
jobId: string;
|
|
25
|
+
type: "bash";
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Formats the model-facing command duration notice. */
|
|
29
|
+
export declare function formatWallTimeNotice(wallTimeMs: number): string;
|
|
30
|
+
/** Formats the model-facing command exit status notice. */
|
|
31
|
+
export declare function formatExitCodeNotice(exitCode: number): string;
|
|
32
|
+
/** Shell arguments used to build a command preview. */
|
|
33
|
+
export interface BashRenderArgs {
|
|
34
|
+
command?: string;
|
|
35
|
+
env?: Record<string, unknown>;
|
|
36
|
+
timeout?: number;
|
|
37
|
+
cwd?: string;
|
|
38
|
+
__partialJson?: string;
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
/** Mutable transcript viewport state for shell output. */
|
|
42
|
+
export interface BashRenderContext {
|
|
43
|
+
/** Raw output text */
|
|
44
|
+
output?: string;
|
|
45
|
+
/** Whether output came from artifact storage */
|
|
46
|
+
isFullOutput?: boolean;
|
|
47
|
+
/** Whether output is expanded */
|
|
48
|
+
expanded?: boolean;
|
|
49
|
+
/** Number of preview lines when collapsed */
|
|
50
|
+
previewLines?: number;
|
|
51
|
+
/** Timeout in seconds */
|
|
52
|
+
timeout?: number;
|
|
53
|
+
}
|
|
54
|
+
/** Caller-supplied shell labels and argument projections. */
|
|
55
|
+
export interface ShellRendererConfig<TArgs> {
|
|
56
|
+
resolveTitle: (args: TArgs | undefined, options: RenderResultOptions) => string;
|
|
57
|
+
resolveCommand?: (args: TArgs | undefined) => string | undefined;
|
|
58
|
+
resolveCwd?: (args: TArgs | undefined) => string | undefined;
|
|
59
|
+
resolveEnv?: (args: TArgs | undefined) => Record<string, unknown> | undefined;
|
|
60
|
+
showHeader?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Combines parsed and partially streamed environment assignments. */
|
|
63
|
+
export declare function getBashEnvForDisplay(args: BashRenderArgs): Record<string, unknown> | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Returns the bash command formatted for the result body: the dim `$ cd … &&`
|
|
66
|
+
* prefix joined with syntax-highlighted command lines. The prefix is applied
|
|
67
|
+
* only to the first line so multi-line commands display cleanly — terminals
|
|
68
|
+
* reset SGR state at line boundaries, which made the previous single-string
|
|
69
|
+
* `theme.fg("dim", ...)` form render only the first line as dim.
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatBashCommandLines(args: BashRenderArgs, uiTheme: Theme): string[];
|
|
72
|
+
/** Builds a shell transcript renderer with caller-supplied command labels. */
|
|
73
|
+
export declare function createShellRenderer<TArgs>(config: ShellRendererConfig<TArgs>): {
|
|
74
|
+
renderCall(args: TArgs, options: RenderResultOptions, uiTheme: Theme): Component;
|
|
75
|
+
renderResult(result: {
|
|
76
|
+
content: Array<{
|
|
77
|
+
type: string;
|
|
78
|
+
text?: string;
|
|
79
|
+
}>;
|
|
80
|
+
details?: BashToolDetails;
|
|
81
|
+
isError?: boolean;
|
|
82
|
+
}, options: RenderResultOptions & {
|
|
83
|
+
renderContext?: BashRenderContext;
|
|
84
|
+
}, uiTheme: Theme, args?: TArgs): Component;
|
|
85
|
+
mergeCallAndResult: true;
|
|
86
|
+
inline: true;
|
|
87
|
+
};
|
|
88
|
+
/** Renders bash command previews and output. */
|
|
89
|
+
export declare const bashToolRenderer: {
|
|
90
|
+
renderCall(args: BashRenderArgs, options: RenderResultOptions, uiTheme: Theme): Component;
|
|
91
|
+
renderResult(result: {
|
|
92
|
+
content: {
|
|
93
|
+
type: string;
|
|
94
|
+
text?: string;
|
|
95
|
+
}[];
|
|
96
|
+
details?: BashToolDetails;
|
|
97
|
+
isError?: boolean;
|
|
98
|
+
}, options: RenderResultOptions & {
|
|
99
|
+
renderContext?: BashRenderContext;
|
|
100
|
+
}, uiTheme: Theme, args?: BashRenderArgs | undefined): Component;
|
|
101
|
+
mergeCallAndResult: true;
|
|
102
|
+
inline: true;
|
|
103
|
+
};
|