@linxiraos/pi-tui 1.1.26 → 1.2.0
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 +51 -491
- package/README.md +13 -7
- package/dist/types/active-terminal.d.ts +30 -0
- package/dist/types/app-keybindings.d.ts +7 -2
- package/dist/types/apps/cleanse-board.d.ts +1 -1
- package/dist/types/apps/debug/log-viewer.d.ts +4 -0
- package/dist/types/apps/debug/raw-sse-buffer.d.ts +2 -0
- package/dist/types/apps/git/git-tui.d.ts +5 -4
- package/dist/types/apps/git/help.d.ts +3 -1
- package/dist/types/apps/if-bench-board.d.ts +2 -2
- package/dist/types/apps/setup-model-picker.d.ts +1 -1
- package/dist/types/autocomplete.d.ts +5 -2
- package/dist/types/charts/chart-plan.d.ts +674 -0
- package/dist/types/charts/chart-svg.d.ts +59 -0
- package/dist/types/charts/table-data.d.ts +175 -0
- package/dist/types/chat/assistant-message.d.ts +11 -1
- package/dist/types/chat/chat-transcript-builder.d.ts +3 -0
- package/dist/types/chat/compaction-summary-message.d.ts +1 -0
- package/dist/types/chat/execution-shared.d.ts +6 -5
- package/dist/types/chat/fence-figure.d.ts +42 -0
- package/dist/types/chat/figure-markdown.d.ts +42 -0
- package/dist/types/chat/messages.d.ts +1 -1
- package/dist/types/chat/svg-figure.d.ts +33 -0
- package/dist/types/chat/svg-source.d.ts +49 -0
- package/dist/types/chat/table-chart.d.ts +89 -0
- package/dist/types/chat/tool-execution.d.ts +2 -0
- package/dist/types/chat/user-message.d.ts +17 -4
- package/dist/types/chrome/shared.d.ts +9 -0
- package/dist/types/chrome/status-notice.d.ts +15 -3
- package/dist/types/chrome/transcript-container.d.ts +6 -0
- package/dist/types/components/box.d.ts +1 -0
- package/dist/types/components/disclosure.d.ts +1 -0
- package/dist/types/components/editor.d.ts +23 -5
- package/dist/types/components/form.d.ts +1 -0
- package/dist/types/components/image.d.ts +26 -44
- package/dist/types/components/input.d.ts +2 -1
- package/dist/types/components/key-value-list.d.ts +1 -0
- package/dist/types/components/layout/row.d.ts +1 -0
- package/dist/types/components/layout/stack.d.ts +1 -0
- package/dist/types/components/loader.d.ts +5 -6
- package/dist/types/components/markdown.d.ts +47 -5
- package/dist/types/components/scroll-view.d.ts +1 -0
- package/dist/types/components/section.d.ts +1 -0
- package/dist/types/components/table.d.ts +1 -0
- package/dist/types/components/text.d.ts +1 -0
- package/dist/types/components/tree-view.d.ts +7 -0
- package/dist/types/components/truncated-text.d.ts +1 -0
- package/dist/types/fuzzy.d.ts +29 -1
- package/dist/types/key-hint-format.d.ts +9 -1
- package/dist/types/keybinding-matchers.d.ts +3 -0
- package/dist/types/keybindings.d.ts +1 -1
- package/dist/types/kitty-graphics.d.ts +2 -2
- package/dist/types/loop-watchdog.d.ts +8 -7
- package/dist/types/multiplexers/cmux.d.ts +16 -0
- package/dist/types/multiplexers/herdr.d.ts +26 -0
- package/dist/types/multiplexers/notify.d.ts +13 -0
- package/dist/types/multiplexers/orca.d.ts +12 -0
- package/dist/types/multiplexers/screen.d.ts +9 -0
- package/dist/types/multiplexers/tmux.d.ts +29 -0
- package/dist/types/multiplexers/types.d.ts +100 -0
- package/dist/types/multiplexers/wmux.d.ts +12 -0
- package/dist/types/multiplexers/zellij.d.ts +12 -0
- package/dist/types/native/apply.d.ts +4 -3
- package/dist/types/native/backend.d.ts +5 -4
- package/dist/types/native/blobs.d.ts +7 -3
- package/dist/types/native/encode.d.ts +8 -6
- package/dist/types/native/node.d.ts +36 -5
- package/dist/types/native/overlay.d.ts +8 -3
- package/dist/types/native/settle.d.ts +4 -3
- package/dist/types/overlays/agent-hub-projection.d.ts +6 -5
- package/dist/types/overlays/agent-hub-types.d.ts +9 -0
- package/dist/types/overlays/agent-hub.d.ts +3 -0
- package/dist/types/overlays/agent-transcript-viewer.d.ts +12 -2
- package/dist/types/overlays/agents-hub.d.ts +9 -0
- package/dist/types/overlays/annotation-overlay.d.ts +19 -2
- package/dist/types/overlays/annotation-types.d.ts +2 -0
- package/dist/types/overlays/ask-dialog.d.ts +5 -2
- package/dist/types/overlays/btw-history-panel.d.ts +13 -1
- package/dist/types/overlays/copy-selector.d.ts +1 -0
- package/dist/types/overlays/history-search.d.ts +10 -0
- package/dist/types/overlays/hook-selector.d.ts +9 -4
- package/dist/types/overlays/hub-frame.d.ts +4 -1
- package/dist/types/overlays/jobs-panel.d.ts +1 -7
- package/dist/types/overlays/model-browser.d.ts +54 -7
- package/dist/types/overlays/model-hub.d.ts +37 -0
- package/dist/types/overlays/oauth-selector.d.ts +0 -1
- package/dist/types/overlays/plan-review-overlay.d.ts +3 -2
- package/dist/types/overlays/report-panel.d.ts +68 -0
- package/dist/types/overlays/rewind-selector.d.ts +1 -0
- package/dist/types/overlays/session-observer-registry.d.ts +2 -0
- package/dist/types/overlays/session-selector.d.ts +6 -2
- package/dist/types/overlays/settings-defs.d.ts +1 -0
- package/dist/types/overlays/thinking-selector.d.ts +2 -2
- package/dist/types/overlays/usage-dashboard.d.ts +12 -8
- package/dist/types/overlays/usage-display.d.ts +3 -1
- package/dist/types/prompt/composer-cache.d.ts +0 -16
- package/dist/types/prompt/composer.d.ts +18 -3
- package/dist/types/prompt/custom-editor.d.ts +25 -13
- package/dist/types/prompt/image-source.d.ts +2 -1
- package/dist/types/prompt/interactive-context-helpers.d.ts +5 -1
- package/dist/types/prompt/model-mention-autocomplete.d.ts +1 -1
- package/dist/types/prompt/welcome.d.ts +7 -2
- package/dist/types/render/composite.d.ts +2 -0
- package/dist/types/render/output-pane.d.ts +1 -0
- package/dist/types/render/render-utils.d.ts +1 -0
- package/dist/types/render/tool-card.d.ts +6 -0
- package/dist/types/render/width-aware-text.d.ts +2 -0
- package/dist/types/setup/scenes/types.d.ts +1 -0
- package/dist/types/space-hold.d.ts +40 -25
- package/dist/types/status-line/component.d.ts +3 -0
- package/dist/types/status-line/context-usage.d.ts +7 -5
- package/dist/types/status-line/host.d.ts +4 -1
- package/dist/types/status-line/segments.d.ts +2 -0
- package/dist/types/status-line/types.d.ts +14 -3
- package/dist/types/terminal-capabilities.d.ts +41 -36
- package/dist/types/terminal-multiplexer.d.ts +127 -14
- package/dist/types/terminal.d.ts +23 -16
- package/dist/types/theme/active-symbols.d.ts +1 -1
- package/dist/types/theme/schema.d.ts +11 -2
- package/dist/types/theme/symbols.d.ts +1 -1
- package/dist/types/theme/theme-class.d.ts +7 -0
- package/dist/types/theme/theme.d.ts +1 -1
- package/dist/types/theme/tui-adapters.d.ts +3 -0
- package/dist/types/thinking.d.ts +1 -1
- package/dist/types/tmux.d.ts +11 -4
- package/dist/types/tools/bash.d.ts +7 -2
- package/dist/types/tools/daemon.d.ts +1 -1
- package/dist/types/tools/eval.d.ts +22 -3
- package/dist/types/tools/glob.d.ts +4 -0
- package/dist/types/tools/native-view.d.ts +47 -0
- package/dist/types/tools/output-meta.d.ts +11 -1
- package/dist/types/tools/renderer.d.ts +37 -2
- package/dist/types/tools/streaming-output.d.ts +20 -1
- package/dist/types/tools/task.d.ts +2 -3
- package/dist/types/tools/write.d.ts +9 -2
- package/dist/types/tools/yield.d.ts +22 -0
- package/dist/types/tui.d.ts +36 -0
- package/dist/types/utils.d.ts +6 -0
- package/dist/types/vim.d.ts +19 -5
- package/dist/types/windows-input-mode.d.ts +33 -1
- package/package.json +13 -9
- package/src/active-terminal.d.ts +30 -0
- package/src/active-terminal.ts +80 -0
- package/src/app-keybindings.d.ts +7 -2
- package/src/app-keybindings.ts +7 -2
- package/src/apps/autoresearch-dashboard.ts +7 -3
- package/src/apps/cleanse-board.ts +2 -2
- package/src/apps/cleanse-picker.ts +1 -1
- package/src/apps/debug/log-viewer.ts +188 -72
- package/src/apps/debug/raw-sse-buffer.ts +8 -0
- package/src/apps/debug/raw-sse.ts +39 -5
- package/src/apps/git/diff-pane.ts +96 -23
- package/src/apps/git/git-tui.ts +23 -16
- package/src/apps/git/help.ts +29 -20
- package/src/apps/git/sidebar.ts +8 -3
- package/src/apps/if-bench-board.ts +2 -2
- package/src/apps/ps-top.ts +2 -2
- package/src/apps/setup-model-picker.ts +1 -1
- package/src/autocomplete.d.ts +5 -2
- package/src/autocomplete.ts +67 -43
- package/src/bracketed-paste.ts +10 -3
- package/src/charts/chart-plan.d.ts +674 -0
- package/src/charts/chart-plan.ts +5081 -0
- package/src/charts/chart-svg.d.ts +59 -0
- package/src/charts/chart-svg.ts +4657 -0
- package/src/charts/table-data.d.ts +175 -0
- package/src/charts/table-data.ts +1478 -0
- package/src/chat/advisor-message.ts +11 -0
- package/src/chat/assistant-message.d.ts +11 -1
- package/src/chat/assistant-message.ts +245 -54
- package/src/chat/chat-transcript-builder.d.ts +3 -0
- package/src/chat/chat-transcript-builder.ts +9 -3
- package/src/chat/compaction-summary-message.d.ts +1 -0
- package/src/chat/compaction-summary-message.ts +8 -0
- package/src/chat/execution-shared.d.ts +6 -5
- package/src/chat/execution-shared.ts +42 -25
- package/src/chat/fence-figure.d.ts +42 -0
- package/src/chat/fence-figure.ts +80 -0
- package/src/chat/figure-markdown.d.ts +42 -0
- package/src/chat/figure-markdown.ts +174 -0
- package/src/chat/messages.d.ts +1 -1
- package/src/chat/messages.ts +1 -1
- package/src/chat/read-tool-group.ts +6 -4
- package/src/chat/skill-message.ts +6 -0
- package/src/chat/svg-figure.d.ts +33 -0
- package/src/chat/svg-figure.ts +399 -0
- package/src/chat/svg-source.d.ts +49 -0
- package/src/chat/svg-source.ts +188 -0
- package/src/chat/table-chart.d.ts +89 -0
- package/src/chat/table-chart.ts +294 -0
- package/src/chat/tool-execution.d.ts +2 -0
- package/src/chat/tool-execution.ts +86 -7
- package/src/chat/user-message.d.ts +17 -4
- package/src/chat/user-message.ts +71 -8
- package/src/chrome/shared.ts +53 -0
- package/src/chrome/status-notice.ts +25 -7
- package/src/chrome/transcript-container.d.ts +6 -0
- package/src/chrome/transcript-container.ts +162 -19
- package/src/components/box.d.ts +1 -0
- package/src/components/box.ts +5 -0
- package/src/components/disclosure.d.ts +1 -0
- package/src/components/disclosure.ts +8 -0
- package/src/components/editor.d.ts +23 -5
- package/src/components/editor.ts +316 -47
- package/src/components/form.d.ts +1 -0
- package/src/components/form.ts +8 -0
- package/src/components/image.d.ts +26 -44
- package/src/components/image.ts +115 -152
- package/src/components/input.d.ts +2 -1
- package/src/components/input.ts +17 -7
- package/src/components/key-value-list.d.ts +1 -0
- package/src/components/key-value-list.ts +4 -0
- package/src/components/layout/row.d.ts +1 -0
- package/src/components/layout/row.ts +7 -0
- package/src/components/layout/stack.d.ts +1 -0
- package/src/components/layout/stack.ts +7 -0
- package/src/components/loader.d.ts +5 -6
- package/src/components/loader.ts +10 -17
- package/src/components/markdown.d.ts +47 -5
- package/src/components/markdown.ts +786 -303
- package/src/components/scroll-view.d.ts +1 -0
- package/src/components/scroll-view.ts +5 -0
- package/src/components/section.d.ts +1 -0
- package/src/components/section.ts +5 -0
- package/src/components/settings-list.ts +2 -0
- package/src/components/table.d.ts +1 -0
- package/src/components/table.ts +4 -0
- package/src/components/text.d.ts +1 -0
- package/src/components/text.ts +7 -0
- package/src/components/tree-view.d.ts +7 -0
- package/src/components/tree-view.ts +38 -8
- package/src/components/truncated-text.d.ts +1 -0
- package/src/components/truncated-text.ts +5 -0
- package/src/desktop-notify.ts +3 -2
- package/src/fuzzy.d.ts +29 -1
- package/src/fuzzy.ts +115 -30
- package/src/hotkeys-markdown.ts +9 -2
- package/src/key-hint-format.d.ts +9 -1
- package/src/key-hint-format.ts +26 -11
- package/src/keybinding-matchers.d.ts +3 -0
- package/src/keybinding-matchers.ts +6 -2
- package/src/keybindings.d.ts +1 -1
- package/src/keybindings.ts +1 -1
- package/src/kitty-graphics.d.ts +2 -2
- package/src/kitty-graphics.ts +11 -5
- package/src/loop-watchdog.d.ts +8 -7
- package/src/loop-watchdog.ts +18 -13
- package/src/multiplexers/cmux.d.ts +16 -0
- package/src/multiplexers/cmux.ts +29 -0
- package/src/multiplexers/herdr.d.ts +26 -0
- package/src/multiplexers/herdr.ts +64 -0
- package/src/multiplexers/notify.d.ts +13 -0
- package/src/multiplexers/notify.ts +24 -0
- package/src/multiplexers/orca.d.ts +12 -0
- package/src/multiplexers/orca.ts +16 -0
- package/src/multiplexers/screen.d.ts +9 -0
- package/src/multiplexers/screen.ts +15 -0
- package/src/multiplexers/tmux.d.ts +29 -0
- package/src/multiplexers/tmux.ts +40 -0
- package/src/multiplexers/types.d.ts +100 -0
- package/src/multiplexers/types.ts +110 -0
- package/src/multiplexers/wmux.d.ts +12 -0
- package/src/multiplexers/wmux.ts +16 -0
- package/src/multiplexers/zellij.d.ts +12 -0
- package/src/multiplexers/zellij.ts +24 -0
- package/src/native/apply.d.ts +4 -3
- package/src/native/apply.ts +4 -3
- package/src/native/backend.d.ts +5 -4
- package/src/native/backend.ts +199 -22
- package/src/native/blobs.d.ts +7 -3
- package/src/native/blobs.ts +47 -12
- package/src/native/encode.d.ts +8 -6
- package/src/native/encode.ts +76 -34
- package/src/native/node.d.ts +36 -5
- package/src/native/node.ts +31 -5
- package/src/native/overlay.d.ts +8 -3
- package/src/native/overlay.ts +17 -4
- package/src/native/reconcile.ts +16 -4
- package/src/native/settle.d.ts +4 -3
- package/src/native/settle.ts +4 -3
- package/src/overlays/agent-hub-projection.d.ts +6 -5
- package/src/overlays/agent-hub-projection.ts +124 -13
- package/src/overlays/agent-hub-types.d.ts +9 -0
- package/src/overlays/agent-hub-types.ts +6 -0
- package/src/overlays/agent-hub.ts +48 -29
- package/src/overlays/agent-transcript-viewer.ts +93 -23
- package/src/overlays/agents-hub.ts +28 -8
- package/src/overlays/annotation-overlay.ts +293 -90
- package/src/overlays/annotation-types.ts +2 -0
- package/src/overlays/ask-dialog.ts +10 -17
- package/src/overlays/btw-history-panel.ts +136 -39
- package/src/overlays/copy-selector.d.ts +1 -0
- package/src/overlays/copy-selector.ts +32 -8
- package/src/overlays/extensions/extension-dashboard.ts +4 -4
- package/src/overlays/extensions/state-manager.ts +52 -12
- package/src/overlays/history-search.ts +100 -7
- package/src/overlays/hook-selector.ts +12 -5
- package/src/overlays/hub-frame.ts +19 -1
- package/src/overlays/jobs-panel.ts +33 -52
- package/src/overlays/model-browser.ts +367 -122
- package/src/overlays/model-hub.ts +435 -59
- package/src/overlays/move-overlay.ts +28 -14
- package/src/overlays/oauth-selector.ts +54 -70
- package/src/overlays/pause-screen.ts +2 -2
- package/src/overlays/plan-review-overlay.ts +208 -70
- package/src/overlays/plugin-settings.ts +3 -3
- package/src/overlays/report-panel.ts +191 -0
- package/src/overlays/rewind-selector.ts +88 -17
- package/src/overlays/session-observer-registry.d.ts +2 -0
- package/src/overlays/session-observer-registry.ts +10 -2
- package/src/overlays/session-selector.ts +64 -26
- package/src/overlays/settings-defs.ts +5 -4
- package/src/overlays/settings-selector.ts +33 -8
- package/src/overlays/snapcompact-shape-preview.ts +2 -3
- package/src/overlays/stats-notice.ts +1 -1
- package/src/overlays/thinking-selector.ts +11 -10
- package/src/overlays/tree-selector.ts +41 -20
- package/src/overlays/usage-dashboard.ts +117 -58
- package/src/overlays/usage-display.ts +10 -4
- package/src/overlays/usage-row.ts +22 -8
- package/src/prompt/attachment-chips.ts +15 -11
- package/src/prompt/composer-attachments.ts +6 -4
- package/src/prompt/composer-cache.ts +7 -86
- package/src/prompt/composer.ts +37 -26
- package/src/prompt/custom-editor.ts +282 -105
- package/src/prompt/image-source.ts +2 -1
- package/src/prompt/interactive-context-helpers.ts +32 -18
- package/src/prompt/macos-spelling.ts +7 -0
- package/src/prompt/magic-keywords.ts +11 -2
- package/src/prompt/model-mention-autocomplete.ts +14 -14
- package/src/prompt/queued-messages.ts +6 -4
- package/src/prompt/tips.txt +13 -9
- package/src/prompt/welcome.ts +64 -46
- package/src/prompt/word-completion.ts +38 -5
- package/src/render/composite.d.ts +2 -0
- package/src/render/composite.ts +64 -0
- package/src/render/output-pane.d.ts +1 -0
- package/src/render/output-pane.ts +6 -0
- package/src/render/render-utils.d.ts +1 -0
- package/src/render/render-utils.ts +16 -1
- package/src/render/tool-card.d.ts +6 -0
- package/src/render/tool-card.ts +15 -0
- package/src/render/width-aware-text.d.ts +2 -0
- package/src/render/width-aware-text.ts +5 -0
- package/src/setup/scenes/model.ts +2 -1
- package/src/setup/scenes/types.ts +1 -0
- package/src/space-hold.d.ts +40 -25
- package/src/space-hold.ts +156 -52
- package/src/status-line/component.ts +292 -78
- package/src/status-line/context-usage.ts +21 -46
- package/src/status-line/host.ts +4 -1
- package/src/status-line/segments.ts +40 -22
- package/src/status-line/types.ts +15 -3
- package/src/terminal-capabilities.d.ts +41 -36
- package/src/terminal-capabilities.ts +137 -213
- package/src/terminal-multiplexer.d.ts +127 -14
- package/src/terminal-multiplexer.ts +112 -33
- package/src/terminal.d.ts +23 -16
- package/src/terminal.ts +203 -99
- package/src/theme/active-symbols.d.ts +1 -1
- package/src/theme/active-symbols.ts +1 -1
- package/src/theme/schema-validation.ts +1 -0
- package/src/theme/schema.d.ts +11 -2
- package/src/theme/schema.ts +14 -1
- package/src/theme/session-color.ts +1 -7
- package/src/theme/symbols.d.ts +1 -1
- package/src/theme/symbols.ts +11 -4
- package/src/theme/theme-class.d.ts +7 -0
- package/src/theme/theme-class.ts +26 -1
- package/src/theme/theme-schema.json +5 -1
- package/src/theme/theme.d.ts +1 -1
- package/src/theme/theme.ts +8 -4
- package/src/theme/tui-adapters.d.ts +3 -0
- package/src/theme/tui-adapters.ts +68 -0
- package/src/thinking.d.ts +1 -1
- package/src/thinking.ts +1 -1
- package/src/tmux.d.ts +11 -4
- package/src/tmux.ts +47 -11
- package/src/tools/ast-edit.ts +59 -35
- package/src/tools/ast-grep.ts +35 -16
- package/src/tools/bash.d.ts +7 -2
- package/src/tools/bash.ts +116 -47
- package/src/tools/daemon.d.ts +1 -1
- package/src/tools/daemon.ts +1 -1
- package/src/tools/default-renderer.ts +35 -19
- package/src/tools/edit.ts +142 -120
- package/src/tools/eval-format/index.ts +28 -2
- package/src/tools/eval-format/javascript.ts +7 -5
- package/src/tools/eval.d.ts +22 -3
- package/src/tools/eval.ts +364 -208
- package/src/tools/fetch.ts +5 -6
- package/src/tools/glob.d.ts +4 -0
- package/src/tools/glob.ts +33 -65
- package/src/tools/grep.ts +81 -48
- package/src/tools/index.ts +2 -0
- package/src/tools/lsp.ts +81 -59
- package/src/tools/mcp.ts +111 -68
- package/src/tools/native-view.d.ts +47 -0
- package/src/tools/native-view.ts +102 -1
- package/src/tools/output-meta.d.ts +11 -1
- package/src/tools/output-meta.ts +23 -3
- package/src/tools/read.ts +7 -5
- package/src/tools/renderer.d.ts +37 -2
- package/src/tools/renderer.ts +42 -2
- package/src/tools/streaming-output.d.ts +20 -1
- package/src/tools/streaming-output.ts +154 -50
- package/src/tools/task.d.ts +2 -3
- package/src/tools/task.ts +115 -62
- package/src/tools/todo.ts +119 -30
- package/src/tools/wait.ts +34 -24
- package/src/tools/web-search.ts +1 -1
- package/src/tools/write.d.ts +9 -2
- package/src/tools/write.ts +147 -95
- package/src/tools/yield.d.ts +22 -0
- package/src/tools/yield.ts +225 -0
- package/src/tui.d.ts +36 -0
- package/src/tui.ts +666 -217
- package/src/utils.d.ts +6 -0
- package/src/utils.ts +19 -0
- package/src/vim.d.ts +19 -5
- package/src/vim.ts +333 -18
- package/src/windows-input-mode.d.ts +33 -1
- package/src/windows-input-mode.ts +212 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HangulCompatibilityJamoWidth } from "./utils.js";
|
|
2
2
|
export * from "./terminal-multiplexer.js";
|
|
3
|
-
export {
|
|
3
|
+
export { wrapTmuxPassthrough } from "./tmux.js";
|
|
4
4
|
export declare enum ImageProtocol {
|
|
5
5
|
Kitty = "\u001B_G",
|
|
6
6
|
Iterm2 = "\u001B]1337;File=",
|
|
@@ -11,7 +11,7 @@ export declare enum NotifyProtocol {
|
|
|
11
11
|
Osc99 = "\u001B]99;;",
|
|
12
12
|
Osc9 = "\u001B]9;"
|
|
13
13
|
}
|
|
14
|
-
export type TerminalId = "kitty" | "ghostty" | "wezterm" | "iterm2" | "vscode" | "alacritty" | "warp" | "orca" | "otty" | "rio" | "tern" | "base" | "trueColor";
|
|
14
|
+
export type TerminalId = "kitty" | "ghostty" | "wezterm" | "iterm2" | "vscode" | "alacritty" | "warp" | "orca" | "otty" | "rio" | "tern" | "monstar" | "base" | "trueColor";
|
|
15
15
|
/** Terminal capability details used for rendering and protocol selection. */
|
|
16
16
|
export declare class TerminalInfo {
|
|
17
17
|
readonly id: TerminalId;
|
|
@@ -55,12 +55,6 @@ export declare class TerminalInfo {
|
|
|
55
55
|
formatNotification(message: string | TerminalNotification): string;
|
|
56
56
|
sendNotification(message: string | TerminalNotification): void;
|
|
57
57
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Whether the agent process is running inside a Zellij session. Read fresh on
|
|
60
|
-
* each call (like {@link isInsideTmux}) so a session attached/detached mid-run
|
|
61
|
-
* is observed and tests can toggle `Bun.env.ZELLIJ` per case.
|
|
62
|
-
*/
|
|
63
|
-
export declare function isInsideZellij(env?: NodeJS.ProcessEnv): boolean;
|
|
64
58
|
/**
|
|
65
59
|
* Whether the agent process runs in an SSH session, so the terminal emulator
|
|
66
60
|
* is remote and host-local input/keyboard modes cannot be assumed.
|
|
@@ -96,12 +90,12 @@ export declare function synchronizedOutputUserOverride(env?: NodeJS.ProcessEnv):
|
|
|
96
90
|
* 2. Positive `TERM_FEATURES` advertisement (`Sy`) — survives SSH/mux wrapping.
|
|
97
91
|
* 3. Windows Terminal (1.24+) via `WT_SESSION`, on native win32 and the
|
|
98
92
|
* WSL/SSH-fronted host alike.
|
|
99
|
-
* 4.
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* composite as dirty-row patches — the live viewport tears, with
|
|
104
|
-
* frozen while only the bottom refreshes.
|
|
93
|
+
* 4. A multiplexer session whose pane VTE honors DEC 2026 regardless of its
|
|
94
|
+
* DECRQM reply (Herdr's libghostty pane). Such a multiplexer still owns
|
|
95
|
+
* the grid, so leaked kitty/ghostty identities cannot enable placeholder
|
|
96
|
+
* graphics, but leaving sync off lets CUP-diff paints and split write(2)
|
|
97
|
+
* chunks composite as dirty-row patches — the live viewport tears, with
|
|
98
|
+
* the top frozen while only the bottom refreshes.
|
|
105
99
|
* 5. Known direct terminals with confirmed support. SSH does *not* disable —
|
|
106
100
|
* DEC 2026 passes through SSH when the outer terminal honors it.
|
|
107
101
|
* 6. Everything else starts off, including risky multiplexers; the runtime
|
|
@@ -167,31 +161,29 @@ export declare function hyperlinksUserOverride(env?: NodeJS.ProcessEnv): boolean
|
|
|
167
161
|
* Policy (highest precedence first):
|
|
168
162
|
* 1. Explicit user override (`PI_NO_HYPERLINKS=1` off, `PI_FORCE_HYPERLINKS=1`
|
|
169
163
|
* on). Opt-out wins ties.
|
|
170
|
-
* 2.
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
164
|
+
* 2. Every multiplexer session with a hyperlink policy renders OSC 8 itself
|
|
165
|
+
* (`render`, e.g. Herdr): on. Herdr hides the outer terminal
|
|
166
|
+
* (`TERM=xterm-256color`, no `TERM_PROGRAM`), so the outer terminal's
|
|
167
|
+
* support does not matter.
|
|
174
168
|
* 2b. Zeta workbench pane with no nested screen/tmux: on, for the same
|
|
175
169
|
* reason — the workbench's terminal simulator renders OSC 8 itself and
|
|
176
170
|
* opens links on Ctrl+click (`ZETA_WORKBENCH=1` is injected into every
|
|
177
171
|
* pane PTY; the outer terminal is invisible from inside).
|
|
178
172
|
* 3. Static terminal capability — terminals whose {@link TerminalInfo} marks
|
|
179
173
|
* `hyperlinks: false` (e.g. `base`) stay off unless the user forced on.
|
|
180
|
-
* 4.
|
|
181
|
-
*
|
|
182
|
-
* 5.
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
* 7.
|
|
193
|
-
* no version available, so off.
|
|
194
|
-
* 8. Otherwise honor the static terminal capability.
|
|
174
|
+
* 4. A session that never forwards OSC 8 (`drop`, e.g. GNU screen's `STY`)
|
|
175
|
+
* always off, even when a forwarding multiplexer is also present.
|
|
176
|
+
* 5. Forwarding sessions (`forward`, e.g. `TMUX`): enabled when every one
|
|
177
|
+
* self-reports at least its forwarding version via `TERM_PROGRAM` /
|
|
178
|
+
* `TERM_PROGRAM_VERSION` (tmux 3.4). Older or unknown versions stay off;
|
|
179
|
+
* on outer terminals without the feature configured, tmux silently drops
|
|
180
|
+
* the sequence. Checked before the TERM heuristic because tmux's
|
|
181
|
+
* historical `default-terminal` is `screen-256color`, so `TERM=screen*`
|
|
182
|
+
* inside a tmux session must NOT short-circuit to off.
|
|
183
|
+
* 6. TERM naming a multiplexer whose session markers were stripped: off,
|
|
184
|
+
* since no session proves the multiplexer forwards OSC 8 (screen never
|
|
185
|
+
* does; tmux has no version to check).
|
|
186
|
+
* 7. Otherwise honor the static terminal capability.
|
|
195
187
|
*/
|
|
196
188
|
export declare function shouldEnableHyperlinksByDefault(env?: NodeJS.ProcessEnv, terminalId?: TerminalId): boolean;
|
|
197
189
|
/**
|
|
@@ -296,6 +288,13 @@ export interface ImageRenderOptions {
|
|
|
296
288
|
placementId?: number;
|
|
297
289
|
/** When true (Kitty + {@link imageId}), also return the one-time transmit sequence. */
|
|
298
290
|
includeTransmit?: boolean;
|
|
291
|
+
/**
|
|
292
|
+
* SIXEL sequence for the target pixel size renderImage computes, so the
|
|
293
|
+
* caller can encode off the JS thread: answer `undefined` while the encode
|
|
294
|
+
* is pending (the image's rows stay reserved) and `null` once it failed.
|
|
295
|
+
* Without a provider, renderImage encodes synchronously.
|
|
296
|
+
*/
|
|
297
|
+
sixel?: (widthPx: number, heightPx: number) => string | null | undefined;
|
|
299
298
|
}
|
|
300
299
|
export declare function getCellDimensions(): CellDimensions;
|
|
301
300
|
export declare function setCellDimensions(dims: CellDimensions): void;
|
|
@@ -336,7 +335,7 @@ export interface ParsedKittyPlacementLine {
|
|
|
336
335
|
/**
|
|
337
336
|
* Parse a frame line that consists solely of a Kitty direct placement (the
|
|
338
337
|
* last line of an {@link Image} block). Returns null for anything else —
|
|
339
|
-
* placeholder grids,
|
|
338
|
+
* placeholder grids, sixel/iTerm2 payloads — so
|
|
340
339
|
* callers fall back to writing the line verbatim.
|
|
341
340
|
*/
|
|
342
341
|
export declare function parseKittyDirectPlacementLine(line: string): ParsedKittyPlacementLine | null;
|
|
@@ -376,8 +375,8 @@ export declare function encodeKittyDeleteAllImages(): string;
|
|
|
376
375
|
/**
|
|
377
376
|
* Delete a single placement of an image (`d=i`, lowercase): removes its cells
|
|
378
377
|
* and registry entry but keeps the transmitted data, so a later `a=p` under a
|
|
379
|
-
* fresh placement id needs no retransmit.
|
|
380
|
-
*
|
|
378
|
+
* fresh placement id needs no retransmit. The frame writer uses this before
|
|
379
|
+
* replacing a live image without deleting its archived copies.
|
|
381
380
|
*/
|
|
382
381
|
export declare function encodeKittyDeletePlacement(imageId: number, placementId: number): string;
|
|
383
382
|
export declare function encodeITerm2(base64Data: string, options?: {
|
|
@@ -393,6 +392,12 @@ export declare function getJpegDimensions(base64Data: string): ImageDimensions |
|
|
|
393
392
|
export declare function getGifDimensions(base64Data: string): ImageDimensions | null;
|
|
394
393
|
export declare function getWebpDimensions(base64Data: string): ImageDimensions | null;
|
|
395
394
|
export declare function getImageDimensions(base64Data: string, mimeType: string): ImageDimensions | null;
|
|
395
|
+
/**
|
|
396
|
+
* SIXEL sequence for `base64Data` at the given pixel size, encoded on the JS
|
|
397
|
+
* thread; `null` when the encode fails. For output that cannot wait for an
|
|
398
|
+
* off-thread encode.
|
|
399
|
+
*/
|
|
400
|
+
export declare function encodeSixelNow(base64Data: string, widthPx: number, heightPx: number): string | null;
|
|
396
401
|
export declare function renderImage(base64Data: string, imageDimensions: ImageDimensions, options?: ImageRenderOptions): {
|
|
397
402
|
sequence?: string;
|
|
398
403
|
lines?: string[];
|
|
@@ -1,20 +1,133 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function isInsideHerdr(env?: NodeJS.ProcessEnv): boolean;
|
|
3
|
-
/** Terminal multiplexers zeta recognizes as owning the screen grid. */
|
|
4
|
-
export type TerminalMultiplexer = "herdr" | "tmux" | "screen" | "zellij" | "cmux" | "wmux";
|
|
1
|
+
import type { TerminalMultiplexerModule, TerminalMultiplexerNotificationRequest } from "./multiplexers/types.js";
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* Every multiplexer omp recognizes, in classification order within each
|
|
4
|
+
* precedence tier. Adding a multiplexer means adding its module here.
|
|
5
|
+
*/
|
|
6
|
+
declare const registry: readonly [{
|
|
7
|
+
readonly id: "herdr";
|
|
8
|
+
readonly precedence: "session";
|
|
9
|
+
readonly sessionEnvKeys: readonly ["HERDR_ENV", "HERDR_PANE_ID", "HERDR_TAB_ID", "HERDR_WORKSPACE_ID"];
|
|
10
|
+
readonly ownsScreenGrid: true;
|
|
11
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
12
|
+
readonly notifier: {
|
|
13
|
+
readonly tier: "pane";
|
|
14
|
+
readonly send: ({ message, env }: TerminalMultiplexerNotificationRequest) => boolean;
|
|
15
|
+
};
|
|
16
|
+
readonly hyperlinks: "render";
|
|
17
|
+
readonly honorsSynchronizedOutput: true;
|
|
18
|
+
readonly imagesRequireOverride: true;
|
|
19
|
+
}, {
|
|
20
|
+
readonly id: "tmux";
|
|
21
|
+
readonly precedence: "session";
|
|
22
|
+
readonly sessionEnvKeys: readonly ["TMUX"];
|
|
23
|
+
readonly termPrefix: "tmux";
|
|
24
|
+
readonly ownsScreenGrid: true;
|
|
25
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
26
|
+
readonly notifier: {
|
|
27
|
+
readonly tier: "inBand";
|
|
28
|
+
readonly send: ({ sequence, write }: TerminalMultiplexerNotificationRequest) => boolean;
|
|
29
|
+
};
|
|
30
|
+
readonly hyperlinks: {
|
|
31
|
+
readonly forward: {
|
|
32
|
+
readonly termProgram: "tmux";
|
|
33
|
+
readonly major: 3;
|
|
34
|
+
readonly minor: 4;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
readonly backgroundColorCache: {
|
|
38
|
+
readonly passthrough: typeof import("./tmux.js").wrapTmuxPassthrough;
|
|
39
|
+
readonly settleMs: 100;
|
|
40
|
+
};
|
|
41
|
+
readonly expandsRepPadding: true;
|
|
42
|
+
readonly expiresSynchronizedOutput: true;
|
|
43
|
+
readonly altRestoreEndsSynchronizedOutput: true;
|
|
44
|
+
readonly growsBeforeSigwinch: true;
|
|
45
|
+
}, {
|
|
46
|
+
readonly id: "screen";
|
|
47
|
+
readonly precedence: "session";
|
|
48
|
+
readonly sessionEnvKeys: readonly ["STY"];
|
|
49
|
+
readonly termPrefix: "screen";
|
|
50
|
+
readonly ownsScreenGrid: true;
|
|
51
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
52
|
+
readonly hyperlinks: "drop";
|
|
53
|
+
}, {
|
|
54
|
+
readonly id: "zellij";
|
|
55
|
+
readonly precedence: "session";
|
|
56
|
+
readonly sessionEnvKeys: readonly ["ZELLIJ"];
|
|
57
|
+
readonly ownsScreenGrid: true;
|
|
58
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
59
|
+
readonly notifier: {
|
|
60
|
+
readonly tier: "inBand";
|
|
61
|
+
readonly send: ({ sequence, write }: TerminalMultiplexerNotificationRequest) => boolean;
|
|
62
|
+
};
|
|
63
|
+
readonly backgroundQueryBrokenOn: readonly ["darwin"];
|
|
64
|
+
}, {
|
|
65
|
+
readonly id: "cmux";
|
|
66
|
+
readonly precedence: "session";
|
|
67
|
+
readonly sessionEnvKeys: readonly ["CMUX_WORKSPACE_ID", "CMUX_SURFACE_ID", "CMUX_REMOTE_TRANSPORT"];
|
|
68
|
+
readonly ownsScreenGrid: true;
|
|
69
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
70
|
+
readonly notifier: {
|
|
71
|
+
readonly tier: "surface";
|
|
72
|
+
readonly send: ({ message, env }: TerminalMultiplexerNotificationRequest) => boolean;
|
|
73
|
+
};
|
|
74
|
+
}, {
|
|
75
|
+
readonly id: "wmux";
|
|
76
|
+
readonly precedence: "session";
|
|
77
|
+
readonly sessionEnvKeys: readonly ["WMUX", "WMUX_SURFACE_ID"];
|
|
78
|
+
readonly ownsScreenGrid: true;
|
|
79
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
80
|
+
}, {
|
|
81
|
+
readonly id: "orca";
|
|
82
|
+
readonly precedence: "outerApp";
|
|
83
|
+
readonly sessionEnvKeys: readonly ["ORCA_PANE_KEY", "ORCA_WORKTREE_ID"];
|
|
84
|
+
readonly ownsScreenGrid: false;
|
|
85
|
+
readonly isInside: (env?: NodeJS.ProcessEnv) => boolean;
|
|
86
|
+
}];
|
|
87
|
+
/** Terminal multiplexers omp recognizes. */
|
|
88
|
+
export type TerminalMultiplexer = (typeof registry)[number]["id"];
|
|
89
|
+
/** Every environment variable multiplexer classification reads, including the TERM fallback. */
|
|
90
|
+
export declare const TERMINAL_MULTIPLEXER_ENV_KEYS: readonly string[];
|
|
91
|
+
/**
|
|
92
|
+
* Whether an explicit session marker identifies the current provider.
|
|
93
|
+
*
|
|
94
|
+
* TERM is intentionally excluded: it is a classification fallback, not proof
|
|
95
|
+
* that a particular multiplexer session owns the current grid.
|
|
96
|
+
*/
|
|
97
|
+
export declare function hasTerminalMultiplexerSession(multiplexer: TerminalMultiplexer, env?: NodeJS.ProcessEnv): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Every multiplexer whose explicit session markers are present, in registry
|
|
100
|
+
* order. Nested sessions all appear; TERM is not consulted.
|
|
101
|
+
*/
|
|
102
|
+
export declare function terminalMultiplexerSessions(env?: NodeJS.ProcessEnv): TerminalMultiplexerModule<TerminalMultiplexer>[];
|
|
103
|
+
/**
|
|
104
|
+
* The multiplexer TERM names, whether or not its session markers survived.
|
|
105
|
+
* This is classification's TERM fallback; session markers are not consulted.
|
|
106
|
+
*/
|
|
107
|
+
export declare function terminalMultiplexerForTerm(env?: NodeJS.ProcessEnv): TerminalMultiplexerModule<TerminalMultiplexer> | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Registry entry for the multiplexer hosting the current process, or
|
|
110
|
+
* `undefined` for a direct terminal. Same precedence as
|
|
111
|
+
* {@link classifyTerminalMultiplexer}.
|
|
112
|
+
*/
|
|
113
|
+
export declare function classifyTerminalMultiplexerModule(env?: NodeJS.ProcessEnv): TerminalMultiplexerModule<TerminalMultiplexer> | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Classify which terminal multiplexer hosts the current process, or `null` for
|
|
116
|
+
* a direct terminal. Single source of truth for both the render-path gate
|
|
8
117
|
* (`isInsideTerminalMultiplexer`) and the debug snapshot label.
|
|
9
118
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* overrides and can be set outside a CMUX/WMUX terminal. wmux is a Windows
|
|
15
|
-
* multiplexer (Electron + xterm.js) modeled on cmux/herdr that repaints its
|
|
16
|
-
* pane in place and exports WMUX=1 plus a native WMUX_SURFACE_ID.
|
|
119
|
+
* Session markers are authoritative. TERM can also survive when those markers
|
|
120
|
+
* are stripped (`sudo` without -E, `su`, env-sanitizing launchers/ssh), so a
|
|
121
|
+
* `tmux`/`screen` TERM prefix comes next. Outer applications such as Orca rank
|
|
122
|
+
* last so a multiplexer running inside them wins.
|
|
17
123
|
*/
|
|
18
124
|
export declare function classifyTerminalMultiplexer(env?: NodeJS.ProcessEnv): TerminalMultiplexer | null;
|
|
19
|
-
/** True when
|
|
125
|
+
/** True when the classified multiplexer owns the current screen grid. */
|
|
20
126
|
export declare function isInsideTerminalMultiplexer(env?: NodeJS.ProcessEnv): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Offer a notification to every active session's notifier, innermost tier
|
|
129
|
+
* first. Returns whether one delivered it; otherwise the terminal fallback
|
|
130
|
+
* applies unchanged.
|
|
131
|
+
*/
|
|
132
|
+
export declare function routeTerminalMultiplexerNotification(request: TerminalMultiplexerNotificationRequest): boolean;
|
|
133
|
+
export {};
|
package/dist/types/terminal.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type TspHello } from "./native/encode.js";
|
|
2
|
+
export { writeTerminalSequence, writeThroughActiveTerminal } from "./active-terminal.js";
|
|
2
3
|
/**
|
|
3
4
|
* Split `data` into chunks whose encoded UTF-8 byte length is no greater than
|
|
4
5
|
* `maxChunkBytes`, preferring a line boundary (`\n`) as the cut point so
|
|
@@ -69,16 +70,6 @@ export declare class StdoutStallWatchdog {
|
|
|
69
70
|
}
|
|
70
71
|
/** Record alternate-screen state (called by the TUI on `?1049h`/`?1049l` writes). */
|
|
71
72
|
export declare function setAltScreenActive(active: boolean): void;
|
|
72
|
-
/**
|
|
73
|
-
* Route an out-of-band escape sequence (e.g. an OSC title update) through the
|
|
74
|
-
* active terminal's output path. While a TUI owns stdout, frame paints go
|
|
75
|
-
* through the off-thread write pump and can split across multiple write(2)
|
|
76
|
-
* calls; a direct main-thread `process.stdout.write` can land between two of
|
|
77
|
-
* them — mid escape sequence — and the host terminal then prints the payload
|
|
78
|
-
* as literal text at the cursor position. Returns false when no terminal has
|
|
79
|
-
* started, in which case the caller owns stdout and may write directly.
|
|
80
|
-
*/
|
|
81
|
-
export declare function writeThroughActiveTerminal(data: string): boolean;
|
|
82
73
|
/**
|
|
83
74
|
* Emergency terminal restore - call this from signal/crash handlers
|
|
84
75
|
* Resets terminal state without requiring access to the ProcessTerminal instance
|
|
@@ -137,13 +128,21 @@ export type TspHelloHandler = (hello: TspHello | null) => void;
|
|
|
137
128
|
export type CursorShape = "default" | "block" | "underline" | "bar";
|
|
138
129
|
export declare const CURSOR_SHAPE_CODES: Record<CursorShape, number>;
|
|
139
130
|
export interface Terminal {
|
|
131
|
+
/**
|
|
132
|
+
* Start the terminal with input, resize, and host-disconnect handlers.
|
|
133
|
+
* Unless input is deferred, this sends capability probes; a terminal that
|
|
134
|
+
* cannot parse one may leave concealed bytes on the cursor row, so the
|
|
135
|
+
* caller repaints after starting.
|
|
136
|
+
*/
|
|
140
137
|
start(onInput: (data: string) => void, onResize: () => void, onDisconnect?: () => void, options?: TerminalStartOptions): void;
|
|
141
138
|
/**
|
|
142
139
|
* Take ownership of stdin after a `deferInput` start: enable raw mode,
|
|
143
140
|
* attach input handlers, and run the capability probes start() skipped.
|
|
144
141
|
* Bytes the user typed in cooked mode meanwhile are replayed through
|
|
145
|
-
* `onInput`. No-op when input was never deferred.
|
|
146
|
-
*
|
|
142
|
+
* `onInput`. No-op when input was never deferred. Like {@link start}, the
|
|
143
|
+
* probes may leave concealed bytes on the cursor row, so the caller
|
|
144
|
+
* repaints afterwards. Optional so custom Terminals built against older
|
|
145
|
+
* pi-tui versions keep working.
|
|
147
146
|
*/
|
|
148
147
|
enableInput?(): void;
|
|
149
148
|
stop(): void;
|
|
@@ -231,6 +230,12 @@ export interface Terminal {
|
|
|
231
230
|
* `status` is the DECRPM value when the terminal answered DECRQM.
|
|
232
231
|
*/
|
|
233
232
|
onPrivateModeReport?(callback: PrivateModeReportHandler): void;
|
|
233
|
+
/**
|
|
234
|
+
* Report whether DA1 advertises SIXEL (attribute 4), replaying the latest
|
|
235
|
+
* advertisement to late subscribers. A missing attribute does not rule out
|
|
236
|
+
* support discovered through another graphics query.
|
|
237
|
+
*/
|
|
238
|
+
onSixelSupport?(callback: (supported: boolean) => void): void;
|
|
234
239
|
/**
|
|
235
240
|
* Register a callback fired once the startup Glyph Protocol handshake
|
|
236
241
|
* resolves (see {@link GlyphProtocolReportHandler}). A subscriber that
|
|
@@ -299,10 +304,11 @@ export declare class ProcessTerminal implements Terminal {
|
|
|
299
304
|
onAppearanceReport(callback: (appearance: TerminalAppearance, requestToken?: TerminalAppearanceRequestToken) => void): () => void;
|
|
300
305
|
/**
|
|
301
306
|
* Re-query the terminal background through the startup DA1-sentinel FIFO,
|
|
302
|
-
* pending/queued gating, parsing, dedup, and appearance callbacks. Inside
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
307
|
+
* pending/queued gating, parsing, dedup, and appearance callbacks. Inside a
|
|
308
|
+
* multiplexer that answers OSC 11 from a cache (tmux), only this explicit
|
|
309
|
+
* path first passes an OSC 11 query to the outer terminal, waits briefly for
|
|
310
|
+
* the multiplexer to consume the response into its cache, then reads that
|
|
311
|
+
* cache with a direct query. The outer query deliberately has
|
|
306
312
|
* no DA1 sentinel: multiplexers can decode a fragmented DA1 response as a key
|
|
307
313
|
* sequence and leak the remaining bytes into the editor. Startup and Mode 2031
|
|
308
314
|
* probes remain direct. Suppressed while inactive, headless, or after teardown.
|
|
@@ -310,6 +316,7 @@ export declare class ProcessTerminal implements Terminal {
|
|
|
310
316
|
refreshAppearance(requestToken?: TerminalAppearanceRequestToken): TerminalAppearanceRequestToken | void;
|
|
311
317
|
onPrivateModeReport(callback: PrivateModeReportHandler): void;
|
|
312
318
|
onGlyphProtocolReport(callback: GlyphProtocolReportHandler): void;
|
|
319
|
+
onSixelSupport(callback: (supported: boolean) => void): void;
|
|
313
320
|
onTspHello(callback: TspHelloHandler): void;
|
|
314
321
|
get tspProbePending(): boolean;
|
|
315
322
|
get tspExpected(): boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Active theme's symbol lookup without importing `./theme` (which pulls the
|
|
3
3
|
* native addon through `@linxiraos/pi-natives`). Key-hint formatting runs on
|
|
4
|
-
* CLI paths that must stay addon-free (`
|
|
4
|
+
* CLI paths that must stay addon-free (`zetacode --version`, help), so it reads the
|
|
5
5
|
* active theme through this mirror; `./theme` publishes every assignment here.
|
|
6
6
|
*/
|
|
7
7
|
import { type SymbolKey } from "./symbols.js";
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { SpinnerFramesOverride } from "./symbols.js";
|
|
2
2
|
export type ColorValue = string | number;
|
|
3
|
+
/**
|
|
4
|
+
* Tokens a theme is allowed to omit. They resolve to the terminal default
|
|
5
|
+
* foreground, so `Theme.fg()` stays total for callers that paint a token a theme
|
|
6
|
+
* never declared (e.g. a `modelTags.<role>.color` reference) while
|
|
7
|
+
* `Theme.hasColor()` still reports them as unset.
|
|
8
|
+
*/
|
|
9
|
+
export declare const OPTIONAL_THEME_COLOR_RECORD: {
|
|
10
|
+
assistantMessageText: true;
|
|
11
|
+
};
|
|
3
12
|
export interface ThemeJson {
|
|
4
13
|
$schema?: string;
|
|
5
14
|
name: string;
|
|
6
15
|
vars?: Record<string, ColorValue>;
|
|
7
|
-
colors: Omit<Record<ThemeColor | ThemeBg, ColorValue>, "thinkingMax"> & {
|
|
16
|
+
colors: Omit<Record<ThemeColor | ThemeBg, ColorValue>, "thinkingMax" | keyof typeof OPTIONAL_THEME_COLOR_RECORD> & Partial<Record<keyof typeof OPTIONAL_THEME_COLOR_RECORD, ColorValue>> & {
|
|
8
17
|
thinkingMax?: ColorValue;
|
|
9
18
|
};
|
|
10
19
|
export?: {
|
|
@@ -36,7 +45,7 @@ export interface ThemeJson {
|
|
|
36
45
|
spinnerFrames?: SpinnerFramesOverride;
|
|
37
46
|
};
|
|
38
47
|
}
|
|
39
|
-
export type ThemeColor = "accent" | "border" | "borderAccent" | "borderMuted" | "success" | "error" | "warning" | "muted" | "dim" | "text" | "thinkingText" | "userMessageText" | "customMessageText" | "customMessageLabel" | "toolTitle" | "toolOutput" | "mdHeading" | "mdLink" | "mdLinkUrl" | "mdCode" | "mdCodeBlock" | "mdCodeBlockBorder" | "mdQuote" | "mdQuoteBorder" | "mdHr" | "mdListBullet" | "toolDiffAdded" | "toolDiffRemoved" | "toolDiffContext" | "syntaxComment" | "syntaxKeyword" | "syntaxFunction" | "syntaxVariable" | "syntaxString" | "syntaxNumber" | "syntaxType" | "syntaxOperator" | "syntaxPunctuation" | "thinkingOff" | "thinkingMinimal" | "thinkingLow" | "thinkingMedium" | "thinkingHigh" | "thinkingXhigh" | "thinkingMax" | "bashMode" | "pythonMode" | "statusLineSep" | "statusLineModel" | "statusLinePath" | "statusLineGitClean" | "statusLineGitDirty" | "statusLineContext" | "statusLineSpend" | "statusLineStaged" | "statusLineDirty" | "statusLineUntracked" | "statusLineOutput" | "statusLineCost" | "statusLineSubagents";
|
|
48
|
+
export type ThemeColor = "accent" | "border" | "borderAccent" | "borderMuted" | "success" | "error" | "warning" | "muted" | "dim" | "text" | "assistantMessageText" | "thinkingText" | "userMessageText" | "customMessageText" | "customMessageLabel" | "toolTitle" | "toolOutput" | "mdHeading" | "mdLink" | "mdLinkUrl" | "mdCode" | "mdCodeBlock" | "mdCodeBlockBorder" | "mdQuote" | "mdQuoteBorder" | "mdHr" | "mdListBullet" | "toolDiffAdded" | "toolDiffRemoved" | "toolDiffContext" | "syntaxComment" | "syntaxKeyword" | "syntaxFunction" | "syntaxVariable" | "syntaxString" | "syntaxNumber" | "syntaxType" | "syntaxOperator" | "syntaxPunctuation" | "thinkingOff" | "thinkingMinimal" | "thinkingLow" | "thinkingMedium" | "thinkingHigh" | "thinkingXhigh" | "thinkingMax" | "bashMode" | "pythonMode" | "statusLineSep" | "statusLineModel" | "statusLinePath" | "statusLineGitClean" | "statusLineGitDirty" | "statusLineContext" | "statusLineSpend" | "statusLineStaged" | "statusLineDirty" | "statusLineUntracked" | "statusLineOutput" | "statusLineCost" | "statusLineSubagents";
|
|
40
49
|
/** Check if a string is a valid ThemeColor value */
|
|
41
50
|
export declare function isValidThemeColor(color: string): color is ThemeColor;
|
|
42
51
|
export type ThemeBg = "selectedBg" | "userMessageBg" | "customMessageBg" | "toolPendingBg" | "toolSuccessBg" | "toolErrorBg" | "statusLineBg";
|
|
@@ -2,7 +2,7 @@ export type SymbolPreset = "unicode" | "nerd" | "ascii";
|
|
|
2
2
|
/**
|
|
3
3
|
* All available symbol keys organized by category.
|
|
4
4
|
*/
|
|
5
|
-
export type SymbolKey = "status.success" | "status.error" | "status.warning" | "status.info" | "status.pending" | "status.disabled" | "status.enabled" | "status.running" | "status.shadowed" | "status.aborted" | "status.done" | "nav.cursor" | "nav.selected" | "nav.expand" | "nav.collapse" | "nav.back" | "tree.branch" | "tree.last" | "tree.vertical" | "tree.horizontal" | "tree.hook" | "progress.filled" | "progress.empty" | "context.speculation" | "context.compaction" | "boxRound.topLeft" | "boxRound.topRight" | "boxRound.bottomLeft" | "boxRound.bottomRight" | "boxRound.horizontal" | "boxRound.vertical" | "boxDotted.horizontal" | "boxDotted.vertical" | "boxSharp.topLeft" | "boxSharp.topRight" | "boxSharp.bottomLeft" | "boxSharp.bottomRight" | "boxSharp.horizontal" | "boxSharp.vertical" | "boxSharp.cross" | "boxSharp.teeDown" | "boxSharp.teeUp" | "boxSharp.teeRight" | "boxSharp.teeLeft" | "sep.powerline" | "sep.powerlineThin" | "sep.powerlineLeft" | "sep.powerlineRight" | "sep.powerlineThinLeft" | "sep.powerlineThinRight" | "sep.powerlineCapLeft" | "sep.block" | "sep.space" | "sep.asciiLeft" | "sep.asciiRight" | "sep.dot" | "sep.slash" | "sep.pipe" | "icon.model" | "icon.plan" | "icon.prewalk" | "icon.goal" | "icon.pause" | "icon.loop" | "icon.folder" | "icon.worktree" | "icon.search" | "icon.scratchFolder" | "icon.file" | "icon.git" | "icon.branch" | "icon.pr" | "icon.pin" | "icon.tokens" | "icon.context" | "icon.cost" | "icon.subscription" | "icon.advisor" | "icon.advisorClosed" | "icon.time" | "icon.omp" | "icon.ghost" | "icon.agents" | "icon.job" | "icon.cache" | "icon.cacheMiss" | "icon.input" | "icon.output" | "icon.throughput" | "icon.intelligence" | "icon.host" | "icon.session" | "icon.package" | "icon.warning" | "icon.rewind" | "icon.auto" | "icon.fast" | "icon.extensionSkill" | "icon.extensionTool" | "icon.extensionSlashCommand" | "icon.extensionMcp" | "icon.extensionRule" | "icon.extensionHook" | "icon.extensionPrompt" | "icon.extensionContextFile" | "icon.extensionInstruction" | "icon.vimNormal" | "icon.vimInsert" | "icon.vimVisual" | "icon.vimVisualLine" | "cmd.action" | "cmd.prompt" | "cmd.extension" | "cmd.settings" | "cmd.gear" | "cmd.shield" | "cmd.wave" | "cmd.compass" | "cmd.inbox" | "cmd.swap" | "cmd.expand" | "cmd.computer" | "cmd.eye" | "cmd.todo" | "cmd.stats" | "cmd.news" | "cmd.keyboard" | "cmd.export" | "cmd.clipboard" | "cmd.share" | "cmd.broadcast" | "cmd.globe" | "cmd.copy" | "cmd.plus" | "cmd.restart" | "cmd.eraser" | "cmd.trash" | "cmd.compress" | "cmd.vibrate" | "cmd.handoff" | "cmd.history" | "cmd.question" | "cmd.rocket" | "cmd.stethoscope" | "cmd.redo" | "cmd.bug" | "cmd.memory" | "cmd.pencil" | "cmd.folderMove" | "cmd.folderPlus" | "cmd.folderMinus" | "cmd.hammer" | "cmd.power" | "cmd.cart" | "icon.mic" | "icon.camera" | "thinking.minimal" | "thinking.low" | "thinking.medium" | "thinking.high" | "thinking.xhigh" | "thinking.max" | "thinking.autoPending" | "checkbox.checked" | "checkbox.unchecked" | "radio.selected" | "radio.unselected" | "format.bullet" | "format.dash" | "format.bracketLeft" | "format.bracketRight" | "md.quoteBorder" | "md.hrChar" | "md.bullet" | "md.colorSwatch" | "advisor.rail" | "skill.rail" | "lang.default" | "lang.typescript" | "lang.javascript" | "lang.python" | "lang.rust" | "lang.go" | "lang.java" | "lang.c" | "lang.cpp" | "lang.csharp" | "lang.ruby" | "lang.julia" | "lang.php" | "lang.swift" | "lang.kotlin" | "lang.shell" | "lang.html" | "lang.css" | "lang.json" | "lang.yaml" | "lang.markdown" | "lang.sql" | "lang.docker" | "lang.lua" | "lang.text" | "lang.env" | "lang.toml" | "lang.xml" | "lang.ini" | "lang.conf" | "lang.log" | "lang.csv" | "lang.tsv" | "lang.image" | "lang.pdf" | "lang.archive" | "lang.binary" | "chip.image" | "chip.video" | "chip.paste" | "tab.appearance" | "tab.model" | "tab.interaction" | "tab.context" | "tab.files" | "tab.shell" | "tab.tools" | "tab.memory" | "tab.tasks" | "tab.providers" | "tool.write" | "tool.edit" | "tool.bash" | "tool.ssh" | "tool.lsp" | "tool.gh" | "tool.webSearch" | "tool.exa" | "tool.browser" | "tool.eval" | "tool.debug" | "tool.mcp" | "tool.job" | "tool.launch" | "tool.task" | "tool.todo" | "tool.memory" | "tool.ask" | "tool.resolve" | "tool.review" | "tool.goal" | "tool.irc" | "tool.delete" | "tool.move" | "key.ctrl" | "key.ctrlMac" | "key.shift" | "key.alt" | "key.altMac" | "key.super" | "key.superMac" | "key.joiner" | "key.enter" | "key.esc" | "key.tab" | "key.backspace" | "key.delete" | "key.space" | "key.up" | "key.down" | "key.left" | "key.right";
|
|
5
|
+
export type SymbolKey = "status.success" | "status.error" | "status.warning" | "status.info" | "status.pending" | "status.disabled" | "status.enabled" | "status.running" | "status.shadowed" | "status.aborted" | "status.done" | "nav.cursor" | "nav.selected" | "nav.expand" | "nav.collapse" | "nav.back" | "tree.branch" | "tree.last" | "tree.vertical" | "tree.horizontal" | "tree.hook" | "progress.filled" | "progress.empty" | "context.speculation" | "context.compaction" | "boxRound.topLeft" | "boxRound.topRight" | "boxRound.bottomLeft" | "boxRound.bottomRight" | "boxRound.horizontal" | "boxRound.vertical" | "boxDotted.horizontal" | "boxDotted.vertical" | "boxSharp.topLeft" | "boxSharp.topRight" | "boxSharp.bottomLeft" | "boxSharp.bottomRight" | "boxSharp.horizontal" | "boxSharp.vertical" | "boxSharp.cross" | "boxSharp.teeDown" | "boxSharp.teeUp" | "boxSharp.teeRight" | "boxSharp.teeLeft" | "sep.powerline" | "sep.powerlineThin" | "sep.powerlineLeft" | "sep.powerlineRight" | "sep.powerlineThinLeft" | "sep.powerlineThinRight" | "sep.powerlineCapLeft" | "sep.block" | "sep.space" | "sep.asciiLeft" | "sep.asciiRight" | "sep.dot" | "sep.slash" | "sep.pipe" | "icon.model" | "icon.plan" | "icon.prewalk" | "icon.goal" | "icon.pause" | "icon.loop" | "icon.folder" | "icon.worktree" | "icon.search" | "icon.scratchFolder" | "icon.file" | "icon.git" | "icon.branch" | "icon.pr" | "icon.pin" | "icon.tokens" | "icon.context" | "icon.cost" | "icon.subscription" | "icon.advisor" | "icon.advisorClosed" | "icon.time" | "icon.omp" | "icon.ghost" | "icon.agents" | "icon.job" | "icon.cache" | "icon.cacheMiss" | "icon.input" | "icon.output" | "icon.throughput" | "icon.intelligence" | "icon.host" | "icon.session" | "icon.package" | "icon.warning" | "icon.rewind" | "icon.auto" | "icon.fast" | "icon.extensionSkill" | "icon.extensionTool" | "icon.extensionSlashCommand" | "icon.extensionMcp" | "icon.extensionRule" | "icon.extensionHook" | "icon.extensionPrompt" | "icon.extensionContextFile" | "icon.extensionInstruction" | "icon.vimNormal" | "icon.vimInsert" | "icon.vimVisual" | "icon.vimVisualLine" | "icon.vimReplace" | "cmd.action" | "cmd.prompt" | "cmd.extension" | "cmd.settings" | "cmd.gear" | "cmd.shield" | "cmd.wave" | "cmd.compass" | "cmd.inbox" | "cmd.swap" | "cmd.expand" | "cmd.computer" | "cmd.eye" | "cmd.todo" | "cmd.stats" | "cmd.news" | "cmd.keyboard" | "cmd.export" | "cmd.clipboard" | "cmd.share" | "cmd.broadcast" | "cmd.globe" | "cmd.copy" | "cmd.plus" | "cmd.restart" | "cmd.eraser" | "cmd.trash" | "cmd.compress" | "cmd.vibrate" | "cmd.handoff" | "cmd.history" | "cmd.question" | "cmd.rocket" | "cmd.stethoscope" | "cmd.redo" | "cmd.bug" | "cmd.memory" | "cmd.pencil" | "cmd.folderMove" | "cmd.folderPlus" | "cmd.folderMinus" | "cmd.hammer" | "cmd.power" | "cmd.cart" | "icon.mic" | "icon.camera" | "thinking.minimal" | "thinking.low" | "thinking.medium" | "thinking.high" | "thinking.xhigh" | "thinking.max" | "thinking.autoPending" | "checkbox.checked" | "checkbox.unchecked" | "radio.selected" | "radio.unselected" | "format.bullet" | "format.dash" | "format.bracketLeft" | "format.bracketRight" | "md.quoteBorder" | "md.hrChar" | "md.bullet" | "md.colorSwatch" | "advisor.rail" | "skill.rail" | "lang.default" | "lang.typescript" | "lang.javascript" | "lang.python" | "lang.rust" | "lang.go" | "lang.java" | "lang.c" | "lang.cpp" | "lang.csharp" | "lang.ruby" | "lang.julia" | "lang.php" | "lang.swift" | "lang.kotlin" | "lang.shell" | "lang.html" | "lang.css" | "lang.json" | "lang.yaml" | "lang.markdown" | "lang.sql" | "lang.docker" | "lang.lua" | "lang.text" | "lang.env" | "lang.toml" | "lang.xml" | "lang.ini" | "lang.conf" | "lang.log" | "lang.csv" | "lang.tsv" | "lang.image" | "lang.pdf" | "lang.archive" | "lang.binary" | "chip.image" | "chip.video" | "chip.paste" | "tab.appearance" | "tab.model" | "tab.interaction" | "tab.context" | "tab.files" | "tab.shell" | "tab.tools" | "tab.memory" | "tab.tasks" | "tab.providers" | "tool.write" | "tool.edit" | "tool.bash" | "tool.ssh" | "tool.lsp" | "tool.gh" | "tool.webSearch" | "tool.exa" | "tool.browser" | "tool.eval" | "tool.debug" | "tool.mcp" | "tool.job" | "tool.launch" | "tool.task" | "tool.todo" | "tool.memory" | "tool.ask" | "tool.resolve" | "tool.review" | "tool.goal" | "tool.irc" | "tool.delete" | "tool.move" | "key.ctrl" | "key.ctrlMac" | "key.shift" | "key.alt" | "key.altMac" | "key.super" | "key.superMac" | "key.joiner" | "key.enter" | "key.esc" | "key.tab" | "key.backspace" | "key.delete" | "key.space" | "key.up" | "key.down" | "key.left" | "key.right";
|
|
6
6
|
export type SymbolMap = Record<SymbolKey, string>;
|
|
7
7
|
/**
|
|
8
8
|
* Icon vocabulary for slash-command autocomplete type indicators. Each name
|
|
@@ -54,6 +54,13 @@ export declare class Theme {
|
|
|
54
54
|
* against. Built once per instance and frozen; callers share the object.
|
|
55
55
|
*/
|
|
56
56
|
get sessionAccentInputs(): SessionAccentTheme;
|
|
57
|
+
/**
|
|
58
|
+
* True when the theme paints `color` with a real foreground — i.e. the token
|
|
59
|
+
* exists and is not the empty string (terminal default, `\x1b[39m`). Optional
|
|
60
|
+
* tokens absent from the theme JSON are also false. Callers use this to keep
|
|
61
|
+
* terminal-default behavior byte-for-byte when an optional token is unset.
|
|
62
|
+
*/
|
|
63
|
+
hasColor(color: ThemeColor): boolean;
|
|
57
64
|
fg(color: ThemeColor, text: string): string;
|
|
58
65
|
/** Apply a foreground, replacing terminal-default tokens with the theme's contrast-safe fallback. */
|
|
59
66
|
fgResolved(color: ThemeColor, text: string): string;
|
|
@@ -6,7 +6,7 @@ export { getAvailableThemes, getAvailableThemesWithPaths, getThemeByName, type T
|
|
|
6
6
|
export { isValidThemeColor, type ThemeBg, type ThemeColor } from "./schema.js";
|
|
7
7
|
export { getAvailableSymbolPresets, isValidSymbolPreset, type SpinnerType, type SymbolKey, type SymbolPreset, } from "./symbols.js";
|
|
8
8
|
export { Theme } from "./theme-class.js";
|
|
9
|
-
export { createHighlightStream, getEditorTheme, getMarkdownTheme, getSelectListTheme, getSettingsListTheme, getSymbolTheme, highlightCode, setMarkdownMermaidRendering, warmHighlighter, } from "./tui-adapters.js";
|
|
9
|
+
export { createHighlightStream, getEditorTheme, getMarkdownTheme, getMarkdownThemeWithLinkTargets, getSelectListTheme, getSettingsListTheme, getSymbolTheme, highlightCode, setMarkdownMermaidRendering, warmHighlighter, } from "./tui-adapters.js";
|
|
10
10
|
/** Active theme; imports remain live across initialization, previews, and theme switches. */
|
|
11
11
|
export declare var theme: Theme;
|
|
12
12
|
type ThemeBinding = (value: Theme) => void;
|
|
@@ -16,6 +16,9 @@ export declare function createHighlightStream(lang?: string, highlightTheme?: Th
|
|
|
16
16
|
/** Warm native syntax grammars off-thread once per process. */
|
|
17
17
|
export declare function warmHighlighter(): Promise<void>;
|
|
18
18
|
export declare function getSymbolTheme(): SymbolTheme;
|
|
19
|
+
/** Only themes assembled here have stable callbacks and private link state. */
|
|
20
|
+
export declare function canCacheMarkdownListItems(candidate: MarkdownTheme): boolean;
|
|
21
|
+
export declare function getMarkdownThemeWithLinkTargets(targets: ReadonlyMap<string, string>): MarkdownTheme;
|
|
19
22
|
export declare function setMarkdownMermaidRendering(enabled: boolean): void;
|
|
20
23
|
export declare function getMarkdownTheme(): MarkdownTheme;
|
|
21
24
|
export declare function getSelectListTheme(): SelectListTheme;
|
package/dist/types/thinking.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { ThinkingLevel } from "@linxiraos/pi-agent-core/thinking";
|
|
|
4
4
|
import { Effort } from "@linxiraos/pi-catalog/effort";
|
|
5
5
|
import type { Model } from "@linxiraos/pi-catalog/types";
|
|
6
6
|
/** Thinking selectors accepted by CLI inputs, in display order. */
|
|
7
|
-
export declare const CLI_THINKING_LEVELS: readonly
|
|
7
|
+
export declare const CLI_THINKING_LEVELS: readonly ConfiguredThinkingLevel[];
|
|
8
8
|
/**
|
|
9
9
|
* Metadata used to render thinking selector values in the coding-agent UI.
|
|
10
10
|
*/
|
package/dist/types/tmux.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function isInsideTmux(env?: NodeJS.ProcessEnv): boolean;
|
|
3
|
-
/** Wrap a control sequence in tmux's DCS passthrough envelope. */
|
|
4
|
-
export declare function wrapTmuxPassthrough(payload: string): string;
|
|
1
|
+
export { wrapTmuxPassthrough } from "./multiplexers/tmux.js";
|
|
5
2
|
/** Pass a control sequence through tmux, leaving direct-terminal output unchanged. */
|
|
6
3
|
export declare function wrapTmuxPassthroughIfNeeded(payload: string, env?: NodeJS.ProcessEnv): string;
|
|
4
|
+
/**
|
|
5
|
+
* Whether the terminal hosting this tmux session draws TSP programs natively:
|
|
6
|
+
* it sets the session user option `@tern-tsp` while it watches the session.
|
|
7
|
+
*/
|
|
8
|
+
export declare function tmuxSessionSpeaksTsp(env?: NodeJS.ProcessEnv): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Stop (`on` false) or restore (`on` true) tmux turning this pane's APC
|
|
11
|
+
* strings into its title, which would otherwise swallow every TSP message.
|
|
12
|
+
*/
|
|
13
|
+
export declare function setTmuxPaneApcTitles(on: boolean, env?: NodeJS.ProcessEnv): void;
|
|
7
14
|
/**
|
|
8
15
|
* Resolve the terminal emulator name recorded for this tmux client.
|
|
9
16
|
*
|
|
@@ -4,8 +4,13 @@ import { type OutputMeta } from "./output-meta.js";
|
|
|
4
4
|
import type { NativeToolView, RenderResultContextOptions, RenderResultOptions } from "./renderer.js";
|
|
5
5
|
/** Default collapsed shell output preview height. */
|
|
6
6
|
export declare const BASH_DEFAULT_PREVIEW_LINES = 10;
|
|
7
|
-
/**
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* LLM-facing footer appended when a tool call becomes a background job. It states the job's kill
|
|
9
|
+
* deadline (`timeoutSec`, `undefined` when disabled) so the model knows the job will die at it before
|
|
10
|
+
* it waits on the result. The deadline counts the job's whole run time, not time left from now: an
|
|
11
|
+
* auto-backgrounded call has already spent its foreground wait.
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatBackgroundNotice(jobId: string, timeoutSec: number | undefined): string;
|
|
9
14
|
/** Shell execution metadata used by transcript rendering. */
|
|
10
15
|
export interface BashToolDetails {
|
|
11
16
|
meta?: OutputMeta;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Launch-broker daemon types shared by services, `proc://`, and `
|
|
1
|
+
/** Launch-broker daemon types shared by services, `proc://`, and `zetacode ps`. */
|
|
2
2
|
/** Stable lifecycle states exposed by the launch broker. */
|
|
3
3
|
export type DaemonState = "starting" | "running" | "ready" | "restarting" | "stopping" | "exited" | "failed";
|
|
4
4
|
/** Restart behavior applied after an unexpected daemon exit. */
|
|
@@ -24,6 +24,8 @@ export interface EvalCellResult {
|
|
|
24
24
|
durationMs?: number;
|
|
25
25
|
exitCode?: number;
|
|
26
26
|
statusEvents?: EvalStatusEvent[];
|
|
27
|
+
/** Discrete events dropped from the front of `statusEvents` (see {@link recordStatusEvent}). */
|
|
28
|
+
statusEventsElided?: number;
|
|
27
29
|
hasMarkdown?: boolean;
|
|
28
30
|
}
|
|
29
31
|
/** Tool result detail object surfaced to the UI/transcript. */
|
|
@@ -32,6 +34,8 @@ export interface EvalToolDetails {
|
|
|
32
34
|
jsonOutputs?: unknown[];
|
|
33
35
|
images?: ImageContent[];
|
|
34
36
|
statusEvents?: EvalStatusEvent[];
|
|
37
|
+
/** Discrete events dropped from the front of `statusEvents` (see {@link recordStatusEvent}). */
|
|
38
|
+
statusEventsElided?: number;
|
|
35
39
|
isError?: boolean;
|
|
36
40
|
meta?: OutputMeta;
|
|
37
41
|
/** First backend that produced cells. Kept for transcript compatibility. */
|
|
@@ -74,13 +78,28 @@ export declare function statusEventKey(event: {
|
|
|
74
78
|
op: string;
|
|
75
79
|
[key: string]: unknown;
|
|
76
80
|
}): string | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Discrete status events a log keeps. A cell polling a helper in a loop emits
|
|
83
|
+
* one event per call (hundreds of thousands), and every live update and the
|
|
84
|
+
* persisted tool result would otherwise carry them all.
|
|
85
|
+
*/
|
|
86
|
+
export declare const MAX_STATUS_EVENTS = 200;
|
|
87
|
+
/** A status event list plus the count of discrete events dropped from its front. */
|
|
88
|
+
export type StatusEventLog = Pick<EvalCellResult, "statusEvents" | "statusEventsElided">;
|
|
77
89
|
/**
|
|
78
90
|
* Append or replace a status event. Progress snapshots (see
|
|
79
91
|
* {@link statusEventKey}) coalesce in place, preserving first-seen order; every
|
|
80
|
-
* other op is a discrete action and simply appends.
|
|
81
|
-
* list bounded even when a subagent or batch emits hundreds of progress ticks.
|
|
92
|
+
* other op is a discrete action and simply appends.
|
|
82
93
|
*/
|
|
83
94
|
export declare function upsertStatusEvent(events: EvalStatusEvent[], event: EvalStatusEvent): void;
|
|
95
|
+
/**
|
|
96
|
+
* {@link upsertStatusEvent} into a bounded log. Past {@link MAX_STATUS_EVENTS},
|
|
97
|
+
* the oldest discrete event is dropped and counted. Snapshots stay, since agent
|
|
98
|
+
* cards read them, and so does the newest committed `todo` result, which the
|
|
99
|
+
* session todo panel refreshes from. Renderers already show only the newest
|
|
100
|
+
* events behind an "… N earlier" row.
|
|
101
|
+
*/
|
|
102
|
+
export declare function recordStatusEvent(log: StatusEventLog, event: EvalStatusEvent): void;
|
|
84
103
|
/** Render eval code cells, structured display output, and progress events. */
|
|
85
104
|
export declare const evalToolRenderer: {
|
|
86
105
|
animatedPendingPreview: true;
|
|
@@ -95,7 +114,7 @@ export declare const evalToolRenderer: {
|
|
|
95
114
|
}, options: RenderResultOptions & {
|
|
96
115
|
renderContext?: EvalRenderContext;
|
|
97
116
|
}, uiTheme: Theme, _args?: EvalRenderArgs): Component;
|
|
98
|
-
describeCall(args: EvalRenderArgs,
|
|
117
|
+
describeCall(args: EvalRenderArgs, options: RenderResultOptions): NativeToolView;
|
|
99
118
|
describeResult(result: {
|
|
100
119
|
content: Array<{
|
|
101
120
|
type: string;
|
|
@@ -12,6 +12,10 @@ export interface GlobToolDetails {
|
|
|
12
12
|
fileCount?: number;
|
|
13
13
|
files?: string[];
|
|
14
14
|
truncated?: boolean;
|
|
15
|
+
/** The scan hit the tool deadline, so the listed files are an incomplete
|
|
16
|
+
* set rather than a complete answer. Distinct from `truncated`, which also
|
|
17
|
+
* covers result-limit and output truncation. */
|
|
18
|
+
timedOut?: boolean;
|
|
15
19
|
error?: string;
|
|
16
20
|
/** Working directory at search time. Used by the renderer to resolve relative
|
|
17
21
|
* file paths to absolute paths for OSC 8 hyperlinks. */
|