@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,425 @@
|
|
|
1
|
+
import type { Usage } from "@oh-my-pi/pi-ai";
|
|
2
|
+
import type { ThemeColor } from "../theme/theme.js";
|
|
3
|
+
import type { ConfiguredThinkingLevel } from "../render/render-utils.js";
|
|
4
|
+
import { type Component } from "../tui.js";
|
|
5
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
6
|
+
import { type Theme } from "../theme/theme.js";
|
|
7
|
+
/** Render context threaded in from `ToolExecutionComponent.#buildRenderContext`. */
|
|
8
|
+
interface TaskRenderContext {
|
|
9
|
+
hasResult?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The block left the transcript live region (detached spawn the transcript
|
|
12
|
+
* has moved past, or a sealed block): progress rows render static gray, so
|
|
13
|
+
* commit-eligible rows do not repaint after entering native scrollback.
|
|
14
|
+
*/
|
|
15
|
+
frozen?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Wall clock for time-derived rows (current-tool elapsed, retry countdown).
|
|
18
|
+
* The component freezes it once the block settles or any of its rows enter
|
|
19
|
+
* native scrollback, so identical-input rebuilds stay byte-identical with
|
|
20
|
+
* committed history. Absent: render with the live clock.
|
|
21
|
+
*/
|
|
22
|
+
nowMs?: number;
|
|
23
|
+
}
|
|
24
|
+
type TaskRenderOptions = RenderResultOptions & {
|
|
25
|
+
renderContext?: TaskRenderContext;
|
|
26
|
+
};
|
|
27
|
+
/** Formats sanitized task identifiers as hierarchy breadcrumbs. */
|
|
28
|
+
export declare function formatTaskId(id: string): string;
|
|
29
|
+
/** Dim `⟨agent⟩` badge for a non-default agent type; empty for the generic worker. */
|
|
30
|
+
export declare function agentTypeBadge(agent: string | undefined, theme: Theme): string;
|
|
31
|
+
/**
|
|
32
|
+
* Render the tool call arguments.
|
|
33
|
+
*/
|
|
34
|
+
export declare function renderCall(args: TaskParams, options: TaskRenderOptions, theme: Theme): Component;
|
|
35
|
+
/**
|
|
36
|
+
* Render the tool result.
|
|
37
|
+
*/
|
|
38
|
+
export declare function renderResult(result: {
|
|
39
|
+
content: Array<{
|
|
40
|
+
type: string;
|
|
41
|
+
text?: string;
|
|
42
|
+
}>;
|
|
43
|
+
details?: TaskToolDetails;
|
|
44
|
+
isError?: boolean;
|
|
45
|
+
}, options: TaskRenderOptions, theme: Theme, args?: TaskParams): Component;
|
|
46
|
+
/** Tests whether a persisted tool result carries a task snapshot. */
|
|
47
|
+
export declare function isTaskToolDetails(value: unknown): value is TaskToolDetails;
|
|
48
|
+
/**
|
|
49
|
+
* Subagent ids visible on a task tool card, for click-to-focus hit-testing.
|
|
50
|
+
* Reads `progress[]` (in-flight) and `results[]` (settled) defensively — card
|
|
51
|
+
* details arrive as `unknown` through the tool-result pipeline — and recurses
|
|
52
|
+
* into the same nested snapshots the card renders (`extractedToolData.task`
|
|
53
|
+
* details plus the in-flight snapshot), so a click on a nested worker row
|
|
54
|
+
* resolves to that worker instead of an outer agent. Callers intersect with
|
|
55
|
+
* the live registry, which decides focusability and recency.
|
|
56
|
+
*/
|
|
57
|
+
export declare function taskCardAgentIds(details: unknown): string[];
|
|
58
|
+
/** Renders settled child-task snapshots with bounded recursion and cycle detection. */
|
|
59
|
+
export declare function renderNestedTaskResults(detailsList: TaskToolDetails[], expanded: boolean, theme: Theme, seen?: WeakSet<object>, depth?: number, maxWidth?: number): string[];
|
|
60
|
+
/** Renders task calls and their live or settled agent results. */
|
|
61
|
+
export declare const taskToolRenderer: {
|
|
62
|
+
renderCall: typeof renderCall;
|
|
63
|
+
renderResult: typeof renderResult;
|
|
64
|
+
mergeCallAndResult: true;
|
|
65
|
+
};
|
|
66
|
+
/** Source of an agent definition */
|
|
67
|
+
export type AgentSource = "bundled" | "user" | "project";
|
|
68
|
+
/**
|
|
69
|
+
* Enforcement policy for a structured subagent output schema.
|
|
70
|
+
*
|
|
71
|
+
* `permissive` preserves legacy retry-budget overrides; `strict` turns every
|
|
72
|
+
* invalid final payload, including an exhausted retry override, into a failed
|
|
73
|
+
* `schema_violation` result.
|
|
74
|
+
*/
|
|
75
|
+
export type StructuredSubagentSchemaMode = "permissive" | "strict";
|
|
76
|
+
/** Origin of the schema selected for a structured subagent invocation. */
|
|
77
|
+
export type StructuredSubagentSchemaSource = "caller" | "agent" | "session" | "none";
|
|
78
|
+
/** Final validation state of a structured subagent invocation. */
|
|
79
|
+
export type StructuredSubagentValidationStatus = "valid" | "invalid" | "unavailable";
|
|
80
|
+
/**
|
|
81
|
+
* Parsed structured completion and its schema-validation metadata.
|
|
82
|
+
*
|
|
83
|
+
* `data` is present whenever a payload could be assembled or parsed, even when
|
|
84
|
+
* strict validation rejects it. `error` explains unavailable or invalid
|
|
85
|
+
* validation without requiring consumers to parse presentation text.
|
|
86
|
+
*/
|
|
87
|
+
export interface StructuredSubagentOutput {
|
|
88
|
+
source: StructuredSubagentSchemaSource;
|
|
89
|
+
mode: StructuredSubagentSchemaMode;
|
|
90
|
+
status: StructuredSubagentValidationStatus;
|
|
91
|
+
data?: unknown;
|
|
92
|
+
error?: string;
|
|
93
|
+
}
|
|
94
|
+
/** Display cap for a normalized one-line label (roster line, registry `displayName`, prompt field). */
|
|
95
|
+
export declare const LABEL_MAX = 80;
|
|
96
|
+
/** Single task item. Fields are optional defensively: args stream in token by token. */
|
|
97
|
+
export interface TaskItem {
|
|
98
|
+
/** Stable agent name; becomes the registry/IRC id. Default = generated AdjectiveNoun. */
|
|
99
|
+
name?: string;
|
|
100
|
+
/** Agent type to run this item (e.g. "scout"). Defaults to the spawn policy's default agent. */
|
|
101
|
+
agent?: string;
|
|
102
|
+
/** The work; required by the schema. */
|
|
103
|
+
task?: string;
|
|
104
|
+
/** Per-spawn thinking effort: lowest/middle/highest level the resolved model supports. Overrides the agent's default selector (e.g. `auto`). */
|
|
105
|
+
effort?: "lo" | "med" | "hi";
|
|
106
|
+
/** Caller-provided output schema; its presence overrides the selected agent's schema. */
|
|
107
|
+
outputSchema?: unknown;
|
|
108
|
+
/** Validation behavior for a caller-provided or inherited output schema. */
|
|
109
|
+
schemaMode?: "permissive" | "strict";
|
|
110
|
+
/** Eval-defined tool names exposed to this child. */
|
|
111
|
+
tools?: string[];
|
|
112
|
+
/** Run this spawn in an isolated worktree (batch form; flat form carries it top-level). */
|
|
113
|
+
isolated?: boolean;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Runtime params union over both wire shapes. The model sees exactly one shape
|
|
117
|
+
* (`{ context, tasks[] }` when `task.batch` is on, `{ name?, agent?, task }`
|
|
118
|
+
* otherwise); runtime stays permissive so internal callers and stale
|
|
119
|
+
* transcripts using the flat form keep working under either setting.
|
|
120
|
+
*/
|
|
121
|
+
export interface TaskParams {
|
|
122
|
+
/** Stable agent name (flat form). */
|
|
123
|
+
name?: string;
|
|
124
|
+
/** Agent type to spawn (flat form); omitted values resolve from the session spawn policy. */
|
|
125
|
+
agent?: string;
|
|
126
|
+
/** The work (flat form). */
|
|
127
|
+
task?: string;
|
|
128
|
+
/** Per-spawn thinking effort (flat form): lowest/middle/highest level the resolved model supports. */
|
|
129
|
+
effort?: "lo" | "med" | "hi";
|
|
130
|
+
/** Caller-provided output schema; its presence overrides the selected agent's schema. */
|
|
131
|
+
outputSchema?: unknown;
|
|
132
|
+
/** Validation behavior for a caller-provided or inherited output schema. */
|
|
133
|
+
schemaMode?: "permissive" | "strict";
|
|
134
|
+
/** Eval-defined tool names exposed to the flat-form child. */
|
|
135
|
+
tools?: string[];
|
|
136
|
+
/** Batch form (`task.batch`): one subagent per item. */
|
|
137
|
+
tasks?: TaskItem[];
|
|
138
|
+
/** Batch form: shared background prepended to every assignment; required by the batch schema. */
|
|
139
|
+
context?: string;
|
|
140
|
+
/** Run in an isolated worktree (flat form; per-item in batch form). */
|
|
141
|
+
isolated?: boolean;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* One-line, length-capped label safe for a single roster line, a registry
|
|
145
|
+
* `displayName`, or a system-prompt field. Collapses every run of whitespace
|
|
146
|
+
* AND control/format characters — including U+0085 NEL, ESC/ANSI, and the
|
|
147
|
+
* zero-width separators that `\s` misses — to a single space, then caps length.
|
|
148
|
+
* So untrusted text (a generated task label, a peer activity gist) can neither
|
|
149
|
+
* break the line, inject prompt structure, nor smuggle terminal escapes. Caps at
|
|
150
|
+
* `max` characters (clamped to >= 1; default `LABEL_MAX`), appending an ellipsis when truncated.
|
|
151
|
+
*/
|
|
152
|
+
export declare function oneLineLabel(text: string, max?: number): string;
|
|
153
|
+
/** A code review finding reported by the reviewer agent */
|
|
154
|
+
export interface ReviewFinding {
|
|
155
|
+
title: string;
|
|
156
|
+
body: string;
|
|
157
|
+
priority: number;
|
|
158
|
+
confidence: number;
|
|
159
|
+
file_path: string;
|
|
160
|
+
line_start: number;
|
|
161
|
+
line_end: number;
|
|
162
|
+
}
|
|
163
|
+
/** Review summary submitted by the reviewer agent */
|
|
164
|
+
export interface ReviewSummary {
|
|
165
|
+
overall_correctness: "correct" | "incorrect";
|
|
166
|
+
explanation: string;
|
|
167
|
+
confidence: number;
|
|
168
|
+
}
|
|
169
|
+
/** Structured review data extracted from reviewer agent */
|
|
170
|
+
export interface ReviewData {
|
|
171
|
+
findings: ReviewFinding[];
|
|
172
|
+
summary?: ReviewSummary;
|
|
173
|
+
}
|
|
174
|
+
/** Details extracted from a subagent `yield` tool call for final-result assembly and task rendering. */
|
|
175
|
+
export interface YieldItem {
|
|
176
|
+
data?: unknown;
|
|
177
|
+
status?: "success" | "aborted";
|
|
178
|
+
error?: string;
|
|
179
|
+
/** A string label is terminal; a non-empty array of labels is incremental. */
|
|
180
|
+
type?: string | string[];
|
|
181
|
+
/** Resolve this yield's payload from the latest durable assistant text instead of `data`. */
|
|
182
|
+
useLastTurn?: boolean;
|
|
183
|
+
/** True when an incremental workpool yield completed every item in its batch. */
|
|
184
|
+
complete?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Set by the in-tool yield validator when it exhausted its retry budget and
|
|
187
|
+
* accepted schema-invalid data anyway. The executor preserves that override
|
|
188
|
+
* during post-mortem validation.
|
|
189
|
+
*/
|
|
190
|
+
schemaOverridden?: boolean;
|
|
191
|
+
}
|
|
192
|
+
/** Progress tracking for a single agent */
|
|
193
|
+
export interface AgentProgress {
|
|
194
|
+
index: number;
|
|
195
|
+
id: string;
|
|
196
|
+
agent: string;
|
|
197
|
+
agentSource: AgentSource;
|
|
198
|
+
status: "pending" | "running" | "completed" | "failed" | "aborted";
|
|
199
|
+
task: string;
|
|
200
|
+
assignment?: string;
|
|
201
|
+
description?: string;
|
|
202
|
+
lastIntent?: string;
|
|
203
|
+
currentTool?: string;
|
|
204
|
+
currentToolArgs?: string;
|
|
205
|
+
currentToolStartMs?: number;
|
|
206
|
+
recentTools: Array<{
|
|
207
|
+
tool: string;
|
|
208
|
+
args: string;
|
|
209
|
+
endMs: number;
|
|
210
|
+
}>;
|
|
211
|
+
recentOutput: string[];
|
|
212
|
+
toolCount: number;
|
|
213
|
+
/** Count of assistant requests (assistant message_end events) across the run. Drives the soft request budget guard. */
|
|
214
|
+
requests: number;
|
|
215
|
+
/** Cumulative input + output + cacheWrite tokens across all turns. Excludes cacheRead (re-reads cached context every turn, making cumulative sum misleading). */
|
|
216
|
+
tokens: number;
|
|
217
|
+
/**
|
|
218
|
+
* Current per-turn context size: latest assistant message's `usage.totalTokens`.
|
|
219
|
+
* This is the number to compare against `contextWindow` — what compaction
|
|
220
|
+
* decides on, what the user typically reads as "how full is the context".
|
|
221
|
+
* Distinct from `tokens`, which is a lifetime billing-volume counter.
|
|
222
|
+
*/
|
|
223
|
+
contextTokens?: number;
|
|
224
|
+
/** Model's context window in tokens, when known. Lets the UI render `<curr>/<window>` gauges. */
|
|
225
|
+
contextWindow?: number;
|
|
226
|
+
/** Cumulative billing cost in USD, accumulated incrementally from message_end events. */
|
|
227
|
+
cost: number;
|
|
228
|
+
durationMs: number;
|
|
229
|
+
modelOverride?: string | string[];
|
|
230
|
+
/** Explicit pre-expansion model role alias selected for this run. */
|
|
231
|
+
modelRole?: string;
|
|
232
|
+
/** Resolved model display string in the form `<provider>/<id>`, optionally suffixed with `:<thinkingLevel>` when the level was set explicitly. Undefined when the model could not be resolved. */
|
|
233
|
+
resolvedModel?: string;
|
|
234
|
+
/** Provider/id including routing, with no added thinking suffix. */
|
|
235
|
+
resolvedModelIdentity?: string;
|
|
236
|
+
/** Explicit thinking metadata; never inferred from the model identity. */
|
|
237
|
+
resolvedThinkingLevel?: ConfiguredThinkingLevel;
|
|
238
|
+
/** True when {@link resolvedModel} is the target of an active retry fallback (not the originally configured model). Lets observer-only UIs (collab guests, Agent Hub rows with no live session) flag the fallback and keep the provider. */
|
|
239
|
+
resolvedModelIsFallback?: boolean;
|
|
240
|
+
/** True when a live advisor was attached to this run's session, not merely enabled in settings. */
|
|
241
|
+
advisor?: boolean;
|
|
242
|
+
/** Data extracted by registered subprocess tool handlers (keyed by tool name) */
|
|
243
|
+
extractedToolData?: Record<string, unknown[]>;
|
|
244
|
+
/**
|
|
245
|
+
* Auto-retry state when the subagent is sleeping between provider retries
|
|
246
|
+
* (e.g. 429 rate-limit with retry-after). Cleared when the retry resolves
|
|
247
|
+
* or fails. Surfacing this to the parent prevents the task tool from
|
|
248
|
+
* looking indefinitely "in progress" when a child is actually blocked on
|
|
249
|
+
* provider quota.
|
|
250
|
+
*/
|
|
251
|
+
retryState?: {
|
|
252
|
+
attempt: number;
|
|
253
|
+
maxAttempts: number;
|
|
254
|
+
delayMs: number;
|
|
255
|
+
errorMessage: string;
|
|
256
|
+
startedAtMs: number;
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* Terminal retry failure surfaced once the subagent gave up retrying
|
|
260
|
+
* (e.g. retry-after exceeded the cap, or all attempts exhausted). Carries
|
|
261
|
+
* the final error so the parent UI can render "blocked: rate-limited"
|
|
262
|
+
* instead of waiting for a status that never arrives.
|
|
263
|
+
*/
|
|
264
|
+
retryFailure?: {
|
|
265
|
+
attempt: number;
|
|
266
|
+
errorMessage: string;
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* Snapshot of the most recent `task` tool call's in-flight `TaskToolDetails`,
|
|
270
|
+
* captured from `tool_execution_update`. Lets the parent UI surface live
|
|
271
|
+
* nested-subagent progress while this agent is still inside its own `task`
|
|
272
|
+
* call. Cleared when the call ends — finalized data lives in
|
|
273
|
+
* `extractedToolData.task` after that.
|
|
274
|
+
*/
|
|
275
|
+
inflightTaskDetails?: TaskToolDetails;
|
|
276
|
+
}
|
|
277
|
+
/** Result from a single agent execution */
|
|
278
|
+
export interface SingleResult {
|
|
279
|
+
index: number;
|
|
280
|
+
id: string;
|
|
281
|
+
agent: string;
|
|
282
|
+
agentSource: AgentSource;
|
|
283
|
+
task: string;
|
|
284
|
+
assignment?: string;
|
|
285
|
+
description?: string;
|
|
286
|
+
lastIntent?: string;
|
|
287
|
+
exitCode: number;
|
|
288
|
+
output: string;
|
|
289
|
+
stderr: string;
|
|
290
|
+
truncated: boolean;
|
|
291
|
+
/**
|
|
292
|
+
* Parsed structured completion and validation metadata, when this invocation
|
|
293
|
+
* selected an output schema or strict schema mode.
|
|
294
|
+
*/
|
|
295
|
+
structuredOutput?: StructuredSubagentOutput;
|
|
296
|
+
durationMs: number;
|
|
297
|
+
/** Cumulative input + output + cacheWrite tokens across all turns. Excludes cacheRead (re-reads cached context every turn, making cumulative sum misleading). */
|
|
298
|
+
tokens: number;
|
|
299
|
+
/** Count of assistant requests (assistant message_end events) across the run. */
|
|
300
|
+
requests: number;
|
|
301
|
+
/** Latest per-turn context size at task completion. See `AgentProgress.contextTokens`. */
|
|
302
|
+
contextTokens?: number;
|
|
303
|
+
/** Model's context window in tokens, when known. */
|
|
304
|
+
contextWindow?: number;
|
|
305
|
+
modelOverride?: string | string[];
|
|
306
|
+
/** Explicit pre-expansion model role alias selected for this run. */
|
|
307
|
+
modelRole?: string;
|
|
308
|
+
/** Resolved model display string in the form `<provider>/<id>`, optionally suffixed with `:<thinkingLevel>` when the level was set explicitly. Omitted from tool-result JSON when undefined to keep wire payloads small. */
|
|
309
|
+
resolvedModel?: string;
|
|
310
|
+
/** Retains the unambiguous identity from {@link AgentProgress.resolvedModelIdentity}. */
|
|
311
|
+
resolvedModelIdentity?: string;
|
|
312
|
+
/** Retains {@link AgentProgress.resolvedThinkingLevel} after settlement. */
|
|
313
|
+
resolvedThinkingLevel?: ConfiguredThinkingLevel;
|
|
314
|
+
/** True when {@link resolvedModel} is the target of an active retry fallback. Mirrors {@link AgentProgress.resolvedModelIsFallback} onto the settled result. */
|
|
315
|
+
resolvedModelIsFallback?: boolean;
|
|
316
|
+
/** Retains {@link AgentProgress.advisor} after the advised session is disposed. */
|
|
317
|
+
advisor?: boolean;
|
|
318
|
+
error?: string;
|
|
319
|
+
aborted?: boolean;
|
|
320
|
+
abortReason?: string;
|
|
321
|
+
/** Aggregated usage from the subprocess, accumulated incrementally from message_end events. */
|
|
322
|
+
usage?: Usage;
|
|
323
|
+
/** Output path for the task result */
|
|
324
|
+
outputPath?: string;
|
|
325
|
+
/**
|
|
326
|
+
* Ran inside an isolation worktree. Such agents are parked without a
|
|
327
|
+
* reviver once the worktree is torn down, so they are never resumable or
|
|
328
|
+
* messageable after the run — summaries must not suggest otherwise.
|
|
329
|
+
*/
|
|
330
|
+
isolated?: boolean;
|
|
331
|
+
/** Patch path for isolated worktree output */
|
|
332
|
+
patchPath?: string;
|
|
333
|
+
/**
|
|
334
|
+
* Whether `patchPath` holds a non-empty root-repo diff. `false` when the
|
|
335
|
+
* agent's changes all live in nested repos (see `nestedPatchPaths`), so
|
|
336
|
+
* summaries do not claim the root patch captured anything.
|
|
337
|
+
*/
|
|
338
|
+
hasRootChanges?: boolean;
|
|
339
|
+
/** Branch name for isolated branch-mode output */
|
|
340
|
+
branchName?: string;
|
|
341
|
+
/**
|
|
342
|
+
* Baseline commit SHA the task branch was created from. Passed to
|
|
343
|
+
* `mergeTaskBranches` so cherry-pick uses the inclusive range
|
|
344
|
+
* `branchBaseSha..branchName` and preserves every agent commit's message.
|
|
345
|
+
*/
|
|
346
|
+
branchBaseSha?: string;
|
|
347
|
+
/** Nested repo patches to apply after parent merge */
|
|
348
|
+
nestedPatches?: NestedRepoPatch[];
|
|
349
|
+
/**
|
|
350
|
+
* On-disk copies of `nestedPatches`, one file per nested repo, written
|
|
351
|
+
* before the isolation workspace is torn down. The workspace is the only
|
|
352
|
+
* other copy of that work, so these paths are the durable record.
|
|
353
|
+
*/
|
|
354
|
+
nestedPatchPaths?: string[];
|
|
355
|
+
/** Data extracted by registered subprocess tool handlers (keyed by tool name) */
|
|
356
|
+
extractedToolData?: Record<string, unknown[]>;
|
|
357
|
+
/**
|
|
358
|
+
* Terminal retry failure, when the subagent exited because the auto-retry
|
|
359
|
+
* loop gave up (retry-after exceeded the cap, or all attempts exhausted).
|
|
360
|
+
* Lets the parent task tool surface a "blocked: rate-limited" outcome
|
|
361
|
+
* instead of a generic failure.
|
|
362
|
+
*/
|
|
363
|
+
retryFailure?: {
|
|
364
|
+
attempt: number;
|
|
365
|
+
errorMessage: string;
|
|
366
|
+
};
|
|
367
|
+
/** Output metadata for agent:// URL integration */
|
|
368
|
+
outputMeta?: {
|
|
369
|
+
lineCount: number;
|
|
370
|
+
charCount: number;
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
/** Tool details for TUI rendering */
|
|
374
|
+
export interface TaskToolDetails {
|
|
375
|
+
projectAgentsDir: string | null;
|
|
376
|
+
results: SingleResult[];
|
|
377
|
+
totalDurationMs: number;
|
|
378
|
+
/** Aggregated usage across all subagents. */
|
|
379
|
+
usage?: Usage;
|
|
380
|
+
outputPaths?: string[];
|
|
381
|
+
progress?: AgentProgress[];
|
|
382
|
+
async?: {
|
|
383
|
+
state: "running" | "completed" | "failed";
|
|
384
|
+
jobId: string;
|
|
385
|
+
type: "task";
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
/** Patch and baseline metadata for an isolated nested repository. */
|
|
389
|
+
export interface NestedRepoPatch {
|
|
390
|
+
relativePath: string;
|
|
391
|
+
patch: string;
|
|
392
|
+
}
|
|
393
|
+
/** Severity level of a review finding. */
|
|
394
|
+
export type FindingPriority = "P0" | "P1" | "P2" | "P3";
|
|
395
|
+
/** Severity ordering, glyph, and color for a review finding. */
|
|
396
|
+
export interface FindingPriorityInfo {
|
|
397
|
+
ord: 0 | 1 | 2 | 3;
|
|
398
|
+
symbol: "status.error" | "status.warning" | "status.info";
|
|
399
|
+
color: ThemeColor;
|
|
400
|
+
}
|
|
401
|
+
/** Review severity levels in descending priority. */
|
|
402
|
+
export declare const PRIORITY_LABELS: FindingPriority[];
|
|
403
|
+
/** Tests whether a value is a supported review severity. */
|
|
404
|
+
export declare function isFindingPriority(value: unknown): value is FindingPriority;
|
|
405
|
+
/** Returns display metadata for a review severity. */
|
|
406
|
+
export declare function getPriorityInfo(priority: FindingPriority): FindingPriorityInfo;
|
|
407
|
+
/** Validated source location and content of a review finding. */
|
|
408
|
+
export interface FindingDetails {
|
|
409
|
+
title: string;
|
|
410
|
+
body: string;
|
|
411
|
+
priority: FindingPriority;
|
|
412
|
+
confidence: number;
|
|
413
|
+
file_path: string;
|
|
414
|
+
line_start: number;
|
|
415
|
+
line_end: number;
|
|
416
|
+
}
|
|
417
|
+
/** Validates and normalizes a persisted review finding. */
|
|
418
|
+
export declare function parseFindingDetails(value: unknown): FindingDetails | undefined;
|
|
419
|
+
/** SubmitReviewDetails - used for rendering review results from yield tool */
|
|
420
|
+
export interface SubmitReviewDetails {
|
|
421
|
+
overall_correctness: "correct" | "incorrect";
|
|
422
|
+
explanation: string;
|
|
423
|
+
confidence: number;
|
|
424
|
+
}
|
|
425
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Terminal as XtermTerminal } from "@oh-my-pi/pi-utils/vterm";
|
|
2
|
+
import type * as XtermModule from "@oh-my-pi/pi-utils/vterm";
|
|
3
|
+
/** Lazily load the headless terminal shared by PTY display paths. */
|
|
4
|
+
export declare function loadXtermTerminal(): Promise<typeof XtermModule.Terminal>;
|
|
5
|
+
/** Applies the active tool-output color while preserving safe styles from a virtual terminal row. */
|
|
6
|
+
export declare function styleTerminalRow(row: string, baseForeground: string): string;
|
|
7
|
+
/** Reads terminal screen rows as sanitized text plus only the styles the TUI may replay. */
|
|
8
|
+
export declare function readTerminalRows(terminal: XtermTerminal, startRow: number, rowCount: number): string[];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Component } from "../index.js";
|
|
2
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
3
|
+
import { type Theme } from "../theme/theme.js";
|
|
4
|
+
/** Streamed private scratchpad text. */
|
|
5
|
+
export type ThinkRenderArgs = {
|
|
6
|
+
thoughts?: string;
|
|
7
|
+
};
|
|
8
|
+
/** Render private scratchpad text without a result block. */
|
|
9
|
+
export declare const thinkToolRenderer: {
|
|
10
|
+
inline: true;
|
|
11
|
+
renderCall(args: ThinkRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component;
|
|
12
|
+
renderResult(): undefined;
|
|
13
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { Component } from "../index.js";
|
|
2
|
+
import type { RenderResultOptions } from "./renderer.js";
|
|
3
|
+
import type { Theme } from "../theme/theme.js";
|
|
4
|
+
/** Lifecycle state of a todo item. */
|
|
5
|
+
export type TodoStatus = "pending" | "in_progress" | "completed" | "abandoned" | "blocked";
|
|
6
|
+
/** Operation names accepted by the todo tool and echoed in successful result details. */
|
|
7
|
+
export type TodoOperation = "init" | "start" | "done" | "rm" | "drop" | "block" | "unblock" | "append" | "view";
|
|
8
|
+
/** A task displayed within a todo phase. */
|
|
9
|
+
export interface TodoItem {
|
|
10
|
+
content: string;
|
|
11
|
+
status: TodoStatus;
|
|
12
|
+
/** When `status === "blocked"`, an optional note on what the task is waiting for. */
|
|
13
|
+
blocker?: string;
|
|
14
|
+
details?: string;
|
|
15
|
+
notes?: string[];
|
|
16
|
+
}
|
|
17
|
+
/** A named group of todo tasks. */
|
|
18
|
+
export interface TodoPhase {
|
|
19
|
+
name: string;
|
|
20
|
+
tasks: TodoItem[];
|
|
21
|
+
}
|
|
22
|
+
/** A task that became complete in the latest update. */
|
|
23
|
+
export interface TodoCompletionTransition {
|
|
24
|
+
phase: string;
|
|
25
|
+
content: string;
|
|
26
|
+
}
|
|
27
|
+
/** Todo snapshot and transitions displayed after an operation. */
|
|
28
|
+
export interface TodoToolDetails {
|
|
29
|
+
/** Operation that produced this snapshot; absent on legacy transcript entries. */
|
|
30
|
+
op?: TodoOperation;
|
|
31
|
+
phases: TodoPhase[];
|
|
32
|
+
storage: "session" | "memory";
|
|
33
|
+
completedTasks?: TodoCompletionTransition[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Report whether `content` likely names the same work as any entry in
|
|
37
|
+
* `descriptions`. Used by the sticky todo panel to light up a pending todo
|
|
38
|
+
* when an in-flight subagent is doing the work for it, without requiring
|
|
39
|
+
* the caller to flip the todo's status.
|
|
40
|
+
*
|
|
41
|
+
* Matching is normalize-then-equal first (lowercased; punctuation and
|
|
42
|
+
* whitespace runs both collapsed to a single space; trimmed), with a
|
|
43
|
+
* substring fallback in either direction so minor wording drift
|
|
44
|
+
* ("Sonnet #2: bug scan" vs "Sonnet #2") still links up. The substring
|
|
45
|
+
* fallback requires at least {@link TODO_DESCRIPTION_MIN_OVERLAP} chars on
|
|
46
|
+
* the contained side.
|
|
47
|
+
*/
|
|
48
|
+
export declare function todoMatchesAnyDescription(content: string, descriptions: readonly string[]): boolean;
|
|
49
|
+
/** Whether a todo is settled: completed or deliberately abandoned. Shared so
|
|
50
|
+
* the collapsed viewport, the HUD progress counters, and the HUD's closed-todo
|
|
51
|
+
* auto-clear can never disagree about what "done" hides. */
|
|
52
|
+
export declare function isClosedTodo<T extends {
|
|
53
|
+
status: TodoStatus;
|
|
54
|
+
}>(task: T): boolean;
|
|
55
|
+
/** Result of {@link selectCollapsedTodos}: the rows to render plus an optional
|
|
56
|
+
* summary line (empty string ⇒ no summary row). */
|
|
57
|
+
export interface CollapsedTodoSelection<T> {
|
|
58
|
+
items: T[];
|
|
59
|
+
summary: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Walking-viewport selection for a phase's collapsed todo preview (#5873).
|
|
63
|
+
*
|
|
64
|
+
* Applied to `tasks` in todo order: the open tasks run through
|
|
65
|
+
* {@link selectWithinCap}, led by the last {@link COLLAPSED_CLOSED_CONTEXT}
|
|
66
|
+
* closed tasks in todo order so a checked row remains visible even when callers
|
|
67
|
+
* complete work out of sequence. The lead is additive — it never costs an open
|
|
68
|
+
* row — and a phase with no open work left falls back to its closed tasks so the
|
|
69
|
+
* sticky HUD's closed-todo persistence still has something to render.
|
|
70
|
+
*
|
|
71
|
+
* `summary` counts the open tasks that did not fit; the closed lead is context,
|
|
72
|
+
* not part of the budget.
|
|
73
|
+
*/
|
|
74
|
+
export declare function selectCollapsedTodos<T extends {
|
|
75
|
+
status: TodoStatus;
|
|
76
|
+
}>(tasks: T[], isMatched: (task: T) => boolean, cap: number): CollapsedTodoSelection<T>;
|
|
77
|
+
type TodoRenderOp = {
|
|
78
|
+
op?: string;
|
|
79
|
+
task?: string;
|
|
80
|
+
phase?: string;
|
|
81
|
+
items?: string[];
|
|
82
|
+
};
|
|
83
|
+
/** New single-op shape `{op,...}`; legacy `{ops:[...]}` still seen in old transcripts. */
|
|
84
|
+
type TodoRenderArgs = TodoRenderOp & {
|
|
85
|
+
ops?: TodoRenderOp[];
|
|
86
|
+
};
|
|
87
|
+
/** One-based ASCII roman numeral for display (I, II, III, IV, …). */
|
|
88
|
+
export declare function phaseRomanNumeral(oneBasedIndex: number): string;
|
|
89
|
+
/**
|
|
90
|
+
* Display-only phase header: `I. Foundation`. State and prompts never see this.
|
|
91
|
+
*
|
|
92
|
+
* Sanitized for the same reason task labels are: this is a render boundary and
|
|
93
|
+
* the name may carry provider or session text holding control sequences. The
|
|
94
|
+
* raw `phase.name` stays the lookup key everywhere else.
|
|
95
|
+
*/
|
|
96
|
+
export declare function formatPhaseDisplayName(name: string, oneBasedIndex: number): string;
|
|
97
|
+
/** Frames held before revealing a completion strike. */
|
|
98
|
+
export declare const TODO_STRIKE_HOLD_FRAMES = 2;
|
|
99
|
+
/** Frames used to reveal a completion strike. */
|
|
100
|
+
export declare const TODO_STRIKE_REVEAL_FRAMES = 12;
|
|
101
|
+
/** Total frames in the completion strike animation. */
|
|
102
|
+
export declare const TODO_STRIKE_TOTAL_FRAMES: number;
|
|
103
|
+
/** Wire the live-subagent description source for {@link todoToolRenderer}. */
|
|
104
|
+
export declare function setActiveTodoDescriptionsProvider(provider: () => readonly string[]): void;
|
|
105
|
+
/** Render todo operations and phased task snapshots. */
|
|
106
|
+
export declare const todoToolRenderer: {
|
|
107
|
+
renderCall(args: TodoRenderArgs, options: RenderResultOptions, uiTheme: Theme): Component;
|
|
108
|
+
renderResult(result: {
|
|
109
|
+
content: Array<{
|
|
110
|
+
type: string;
|
|
111
|
+
text?: string;
|
|
112
|
+
}>;
|
|
113
|
+
details?: TodoToolDetails;
|
|
114
|
+
isError?: boolean;
|
|
115
|
+
}, options: RenderResultOptions, uiTheme: Theme, args?: TodoRenderArgs): Component;
|
|
116
|
+
mergeCallAndResult: true;
|
|
117
|
+
};
|
|
118
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Structured tool failure shared by selector parsing and host tool execution. */
|
|
2
|
+
export declare class ToolError extends Error {
|
|
3
|
+
readonly context?: Record<string, unknown> | undefined;
|
|
4
|
+
constructor(message: string, context?: Record<string, unknown> | undefined);
|
|
5
|
+
/** Render error for LLM consumption. Override for custom formatting. */
|
|
6
|
+
render(): string;
|
|
7
|
+
}
|