@sagmans/dsh-tui 0.12.1 → 0.14.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/.agents/skills/dsh-tui-dogfood/SKILL.md +18 -2
- package/.agents/skills/dsh-tui-dogfood/references/home-state.md +4 -4
- package/.agents/skills/dsh-tui-dogfood/scripts/clone-links.mjs +19 -11
- package/.agents/skills/dsh-tui-dogfood/scripts/run-plugin-from-worktree.sh +31 -9
- package/.agents/skills/dsh-tui-update-models/SKILL.md +1 -1
- package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +6 -6
- package/.agents/skills/dsh-tui-update-models/scripts/dump-model-catalog.mjs +21 -13
- package/README.md +61 -23
- package/cordis.patch.yml +2 -0
- package/lib/agent/fork.d.ts +3 -1
- package/lib/agent/fork.d.ts.map +1 -1
- package/lib/agent/fork.js +2 -0
- package/lib/agent/fork.js.map +1 -1
- package/lib/agent/history.d.ts +14 -22
- package/lib/agent/history.d.ts.map +1 -1
- package/lib/agent/history.js +20 -14
- package/lib/agent/history.js.map +1 -1
- package/lib/agent/host.d.ts.map +1 -1
- package/lib/agent/host.js +6 -0
- package/lib/agent/host.js.map +1 -1
- package/lib/agent/model.d.ts +10 -8
- package/lib/agent/model.d.ts.map +1 -1
- package/lib/agent/model.js +9 -7
- package/lib/agent/model.js.map +1 -1
- package/lib/agent/present.d.ts +1 -1
- package/lib/agent/present.d.ts.map +1 -1
- package/lib/agent/present.js +1 -1
- package/lib/agent/present.js.map +1 -1
- package/lib/agent/presets.d.ts +4 -1
- package/lib/agent/presets.d.ts.map +1 -1
- package/lib/agent/presets.js +9 -2
- package/lib/agent/presets.js.map +1 -1
- package/lib/agent/projections.d.ts +8 -2
- package/lib/agent/projections.d.ts.map +1 -1
- package/lib/agent/projections.js +8 -2
- package/lib/agent/projections.js.map +1 -1
- package/lib/agent/prompt-history.d.ts +8 -48
- package/lib/agent/prompt-history.d.ts.map +1 -1
- package/lib/agent/prompt-history.js +34 -15
- package/lib/agent/prompt-history.js.map +1 -1
- package/lib/agent/status.d.ts +9 -24
- package/lib/agent/status.d.ts.map +1 -1
- package/lib/agent/status.js +7 -2
- package/lib/agent/status.js.map +1 -1
- package/lib/agent/undo.d.ts +2 -4
- package/lib/agent/undo.d.ts.map +1 -1
- package/lib/agent/undo.js +10 -5
- package/lib/agent/undo.js.map +1 -1
- package/lib/cards/composition.d.ts +7 -7
- package/lib/cards/composition.d.ts.map +1 -1
- package/lib/cards/composition.js +13 -12
- package/lib/cards/composition.js.map +1 -1
- package/lib/cards/presenter.d.ts +11 -14
- package/lib/cards/presenter.d.ts.map +1 -1
- package/lib/cards/presenter.js +40 -19
- package/lib/cards/presenter.js.map +1 -1
- package/lib/cards/preview.d.ts.map +1 -1
- package/lib/cards/preview.js +5 -1
- package/lib/cards/preview.js.map +1 -1
- package/lib/cards.d.ts +17 -23
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +27 -12
- package/lib/cards.js.map +1 -1
- package/lib/compat/probe.d.ts +2 -5
- package/lib/compat/probe.d.ts.map +1 -1
- package/lib/compat/probe.js +2 -2
- package/lib/compat/probe.js.map +1 -1
- package/lib/compat/section.d.ts +5 -4
- package/lib/compat/section.d.ts.map +1 -1
- package/lib/compat/section.js +4 -0
- package/lib/compat/section.js.map +1 -1
- package/lib/config.d.ts +0 -3
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +7 -1
- package/lib/config.js.map +1 -1
- package/lib/export.d.ts +5 -7
- package/lib/export.d.ts.map +1 -1
- package/lib/export.js +48 -10
- package/lib/export.js.map +1 -1
- package/lib/fold-cursor.d.ts +3 -3
- package/lib/fold-cursor.d.ts.map +1 -1
- package/lib/fold-cursor.js +5 -3
- package/lib/fold-cursor.js.map +1 -1
- package/lib/gates/question-card.d.ts +3 -38
- package/lib/gates/question-card.d.ts.map +1 -1
- package/lib/gates/question-card.js +13 -10
- package/lib/gates/question-card.js.map +1 -1
- package/lib/gates/questions.d.ts +14 -8
- package/lib/gates/questions.d.ts.map +1 -1
- package/lib/gates/questions.js +25 -18
- package/lib/gates/questions.js.map +1 -1
- package/lib/gates.d.ts +17 -25
- package/lib/gates.d.ts.map +1 -1
- package/lib/gates.js +2 -4
- package/lib/gates.js.map +1 -1
- package/lib/herdr/client.d.ts +10 -12
- package/lib/herdr/client.d.ts.map +1 -1
- package/lib/herdr/client.js +9 -8
- package/lib/herdr/client.js.map +1 -1
- package/lib/herdr/constants.d.ts +3 -2
- package/lib/herdr/constants.d.ts.map +1 -1
- package/lib/herdr/constants.js +3 -2
- package/lib/herdr/constants.js.map +1 -1
- package/lib/herdr/reporter.d.ts +4 -39
- package/lib/herdr/reporter.d.ts.map +1 -1
- package/lib/herdr/reporter.js +13 -19
- package/lib/herdr/reporter.js.map +1 -1
- package/lib/herdr/state.d.ts +4 -3
- package/lib/herdr/state.d.ts.map +1 -1
- package/lib/herdr/state.js +6 -5
- package/lib/herdr/state.js.map +1 -1
- package/lib/host/preset-files.d.ts +0 -17
- package/lib/host/preset-files.d.ts.map +1 -1
- package/lib/host/preset-files.js +7 -2
- package/lib/host/preset-files.js.map +1 -1
- package/lib/host/roster.d.ts +1 -1
- package/lib/host/roster.d.ts.map +1 -1
- package/lib/host/roster.js +3 -3
- package/lib/host/roster.js.map +1 -1
- package/lib/host/runner.d.ts +2 -5
- package/lib/host/runner.d.ts.map +1 -1
- package/lib/host/runner.js +2 -5
- package/lib/host/runner.js.map +1 -1
- package/lib/identity.d.ts +6 -3
- package/lib/identity.d.ts.map +1 -1
- package/lib/identity.js +18 -3
- package/lib/identity.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +42 -14
- package/lib/index.js.map +1 -1
- package/lib/injection.d.ts.map +1 -1
- package/lib/injection.js +1 -0
- package/lib/injection.js.map +1 -1
- package/lib/input/action-catalog.d.ts.map +1 -1
- package/lib/input/action-catalog.js +4 -0
- package/lib/input/action-catalog.js.map +1 -1
- package/lib/input/actions.d.ts +4 -3
- package/lib/input/actions.d.ts.map +1 -1
- package/lib/input/actions.js +8 -3
- package/lib/input/actions.js.map +1 -1
- package/lib/input/completion.d.ts +3 -11
- package/lib/input/completion.d.ts.map +1 -1
- package/lib/input/completion.js +8 -6
- package/lib/input/completion.js.map +1 -1
- package/lib/input/file-index.d.ts +1 -12
- package/lib/input/file-index.d.ts.map +1 -1
- package/lib/input/file-index.js +21 -17
- package/lib/input/file-index.js.map +1 -1
- package/lib/input/file-search.d.ts +6 -3
- package/lib/input/file-search.d.ts.map +1 -1
- package/lib/input/file-search.js +29 -10
- package/lib/input/file-search.js.map +1 -1
- package/lib/input/fuzzy.d.ts +6 -12
- package/lib/input/fuzzy.d.ts.map +1 -1
- package/lib/input/fuzzy.js +18 -27
- package/lib/input/fuzzy.js.map +1 -1
- package/lib/input/ghost.d.ts +5 -5
- package/lib/input/ghost.d.ts.map +1 -1
- package/lib/input/ghost.js +4 -3
- package/lib/input/ghost.js.map +1 -1
- package/lib/input/key-press.d.ts +8 -7
- package/lib/input/key-press.d.ts.map +1 -1
- package/lib/input/key-press.js +8 -6
- package/lib/input/key-press.js.map +1 -1
- package/lib/input/keymap-conflicts.d.ts +6 -6
- package/lib/input/keymap-conflicts.d.ts.map +1 -1
- package/lib/input/keymap-conflicts.js +6 -6
- package/lib/input/keymap-conflicts.js.map +1 -1
- package/lib/input/keymap.d.ts +6 -18
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +7 -10
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/match.js +4 -4
- package/lib/input/match.js.map +1 -1
- package/lib/input/submission.d.ts +7 -3
- package/lib/input/submission.d.ts.map +1 -1
- package/lib/input/submission.js +2 -2
- package/lib/input/submission.js.map +1 -1
- package/lib/input/workspace-files.d.ts +1 -2
- package/lib/input/workspace-files.d.ts.map +1 -1
- package/lib/input/workspace-files.js +20 -11
- package/lib/input/workspace-files.js.map +1 -1
- package/lib/input.d.ts +6 -0
- package/lib/input.d.ts.map +1 -1
- package/lib/input.js +34 -1
- package/lib/input.js.map +1 -1
- package/lib/install-skills.d.ts +5 -22
- package/lib/install-skills.d.ts.map +1 -1
- package/lib/install-skills.js +18 -18
- package/lib/install-skills.js.map +1 -1
- package/lib/jobs.d.ts +10 -5
- package/lib/jobs.d.ts.map +1 -1
- package/lib/jobs.js +39 -13
- package/lib/jobs.js.map +1 -1
- package/lib/keymaps.d.ts.map +1 -1
- package/lib/keymaps.js +2 -0
- package/lib/keymaps.js.map +1 -1
- package/lib/keys-command.d.ts +1 -1
- package/lib/keys-command.d.ts.map +1 -1
- package/lib/model-list.d.ts +0 -27
- package/lib/model-list.d.ts.map +1 -1
- package/lib/model-list.js +1 -1
- package/lib/model-list.js.map +1 -1
- package/lib/moshi.d.ts +13 -0
- package/lib/moshi.d.ts.map +1 -0
- package/lib/moshi.js +130 -0
- package/lib/moshi.js.map +1 -0
- package/lib/spacing.d.ts +0 -7
- package/lib/spacing.d.ts.map +1 -1
- package/lib/spacing.js +1 -1
- package/lib/spacing.js.map +1 -1
- package/lib/startup.d.ts +1 -1
- package/lib/startup.d.ts.map +1 -1
- package/lib/startup.js +9 -1
- package/lib/startup.js.map +1 -1
- package/lib/stash/lock.d.ts +1 -37
- package/lib/stash/lock.d.ts.map +1 -1
- package/lib/stash/lock.js +41 -35
- package/lib/stash/lock.js.map +1 -1
- package/lib/stash/paths.d.ts +8 -7
- package/lib/stash/paths.d.ts.map +1 -1
- package/lib/stash/paths.js +21 -17
- package/lib/stash/paths.js.map +1 -1
- package/lib/stash/private-fs.d.ts +14 -5
- package/lib/stash/private-fs.d.ts.map +1 -1
- package/lib/stash/private-fs.js +30 -8
- package/lib/stash/private-fs.js.map +1 -1
- package/lib/stash/schema.d.ts +3 -6
- package/lib/stash/schema.d.ts.map +1 -1
- package/lib/stash/schema.js +11 -9
- package/lib/stash/schema.js.map +1 -1
- package/lib/stash/store.d.ts +9 -40
- package/lib/stash/store.d.ts.map +1 -1
- package/lib/stash/store.js +26 -24
- package/lib/stash/store.js.map +1 -1
- package/lib/stash.d.ts +7 -11
- package/lib/stash.d.ts.map +1 -1
- package/lib/stash.js +18 -11
- package/lib/stash.js.map +1 -1
- package/lib/subagents.d.ts +9 -9
- package/lib/subagents.d.ts.map +1 -1
- package/lib/subagents.js +19 -18
- package/lib/subagents.js.map +1 -1
- package/lib/surface/appearance-preferences.d.ts.map +1 -1
- package/lib/surface/appearance-preferences.js +7 -0
- package/lib/surface/appearance-preferences.js.map +1 -1
- package/lib/surface/appearance.d.ts.map +1 -1
- package/lib/surface/appearance.js +7 -2
- package/lib/surface/appearance.js.map +1 -1
- package/lib/surface/background-work.d.ts +2 -0
- package/lib/surface/background-work.d.ts.map +1 -1
- package/lib/surface/background-work.js +45 -36
- package/lib/surface/background-work.js.map +1 -1
- package/lib/surface/commands.d.ts.map +1 -1
- package/lib/surface/commands.js +17 -9
- package/lib/surface/commands.js.map +1 -1
- package/lib/surface/modal-input.d.ts +4 -0
- package/lib/surface/modal-input.d.ts.map +1 -1
- package/lib/surface/modal-input.js +81 -46
- package/lib/surface/modal-input.js.map +1 -1
- package/lib/surface/model-choice.d.ts.map +1 -1
- package/lib/surface/model-choice.js +10 -8
- package/lib/surface/model-choice.js.map +1 -1
- package/lib/surface/plugin-actions.d.ts.map +1 -1
- package/lib/surface/plugin-actions.js +4 -0
- package/lib/surface/plugin-actions.js.map +1 -1
- package/lib/surface/preset-choice.d.ts.map +1 -1
- package/lib/surface/preset-choice.js +15 -17
- package/lib/surface/preset-choice.js.map +1 -1
- package/lib/surface/prompt-input.js +1 -1
- package/lib/surface/prompt-input.js.map +1 -1
- package/lib/surface/prompt-memory.d.ts +7 -6
- package/lib/surface/prompt-memory.d.ts.map +1 -1
- package/lib/surface/prompt-memory.js +3 -3
- package/lib/surface/session-lifecycle.d.ts +7 -1
- package/lib/surface/session-lifecycle.d.ts.map +1 -1
- package/lib/surface/session-lifecycle.js +17 -12
- package/lib/surface/session-lifecycle.js.map +1 -1
- package/lib/surface/session-picker.js +1 -1
- package/lib/surface/session-picker.js.map +1 -1
- package/lib/surface/session-view.d.ts +1 -1
- package/lib/surface/session-view.d.ts.map +1 -1
- package/lib/surface/session-view.js +4 -5
- package/lib/surface/session-view.js.map +1 -1
- package/lib/surface/staged-turns.d.ts.map +1 -1
- package/lib/surface/staged-turns.js +8 -4
- package/lib/surface/staged-turns.js.map +1 -1
- package/lib/surface/terminal-lifecycle.d.ts +1 -1
- package/lib/surface/terminal-lifecycle.d.ts.map +1 -1
- package/lib/surface/terminal-lifecycle.js +8 -5
- package/lib/surface/terminal-lifecycle.js.map +1 -1
- package/lib/terminal/bell.d.ts +0 -2
- package/lib/terminal/bell.d.ts.map +1 -1
- package/lib/terminal/bell.js +2 -1
- package/lib/terminal/bell.js.map +1 -1
- package/lib/terminal/clipboard.d.ts +4 -4
- package/lib/terminal/clipboard.js +4 -4
- package/lib/terminal/external-editor.d.ts +4 -60
- package/lib/terminal/external-editor.d.ts.map +1 -1
- package/lib/terminal/external-editor.js +28 -40
- package/lib/terminal/external-editor.js.map +1 -1
- package/lib/terminal/host-writes.d.ts +7 -18
- package/lib/terminal/host-writes.d.ts.map +1 -1
- package/lib/terminal/host-writes.js +19 -18
- package/lib/terminal/host-writes.js.map +1 -1
- package/lib/terminal/input.d.ts +6 -0
- package/lib/terminal/input.d.ts.map +1 -0
- package/lib/terminal/input.js +15 -0
- package/lib/terminal/input.js.map +1 -0
- package/lib/terminal/restore.d.ts +2 -1
- package/lib/terminal/restore.d.ts.map +1 -1
- package/lib/terminal/signals.d.ts +2 -1
- package/lib/terminal/signals.d.ts.map +1 -1
- package/lib/terminal/signals.js +1 -1
- package/lib/terminal/signals.js.map +1 -1
- package/lib/terminal/title.d.ts +1 -11
- package/lib/terminal/title.d.ts.map +1 -1
- package/lib/terminal/title.js +5 -4
- package/lib/terminal/title.js.map +1 -1
- package/lib/terminal/warning-screen.d.ts +11 -2
- package/lib/terminal/warning-screen.d.ts.map +1 -1
- package/lib/terminal/warning-screen.js +166 -22
- package/lib/terminal/warning-screen.js.map +1 -1
- package/lib/terminal-text/scan.d.ts +4 -5
- package/lib/terminal-text/scan.d.ts.map +1 -1
- package/lib/terminal-text/scan.js +16 -9
- package/lib/terminal-text/scan.js.map +1 -1
- package/lib/terminal-text/sgr.d.ts +4 -3
- package/lib/terminal-text/sgr.d.ts.map +1 -1
- package/lib/terminal-text/sgr.js +9 -14
- package/lib/terminal-text/sgr.js.map +1 -1
- package/lib/terminal-text.d.ts +7 -12
- package/lib/terminal-text.d.ts.map +1 -1
- package/lib/terminal-text.js +32 -23
- package/lib/terminal-text.js.map +1 -1
- package/lib/text.d.ts +8 -14
- package/lib/text.d.ts.map +1 -1
- package/lib/text.js +14 -15
- package/lib/text.js.map +1 -1
- package/lib/theme-capability.d.ts +3 -15
- package/lib/theme-capability.d.ts.map +1 -1
- package/lib/theme-capability.js +18 -15
- package/lib/theme-capability.js.map +1 -1
- package/lib/theme-defaults.d.ts +3 -57
- package/lib/theme-defaults.d.ts.map +1 -1
- package/lib/theme-defaults.js +25 -14
- package/lib/theme-defaults.js.map +1 -1
- package/lib/theme-files.d.ts +16 -32
- package/lib/theme-files.d.ts.map +1 -1
- package/lib/theme-files.js +43 -27
- package/lib/theme-files.js.map +1 -1
- package/lib/theme-resolver.d.ts +3 -3
- package/lib/theme-resolver.d.ts.map +1 -1
- package/lib/theme-resolver.js +9 -6
- package/lib/theme-resolver.js.map +1 -1
- package/lib/theme-schema.d.ts +7 -42
- package/lib/theme-schema.d.ts.map +1 -1
- package/lib/theme-schema.js +9 -11
- package/lib/theme-schema.js.map +1 -1
- package/lib/theme-settings.d.ts +19 -10
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/theme-settings.js +23 -17
- package/lib/theme-settings.js.map +1 -1
- package/lib/theme-tokens.d.ts +6 -12
- package/lib/theme-tokens.d.ts.map +1 -1
- package/lib/theme-tokens.js +2 -2
- package/lib/theme-tokens.js.map +1 -1
- package/lib/theme.d.ts +5 -10
- package/lib/theme.d.ts.map +1 -1
- package/lib/theme.js +11 -18
- package/lib/theme.js.map +1 -1
- package/lib/todo-guard.d.ts +8 -4
- package/lib/todo-guard.d.ts.map +1 -1
- package/lib/todo-guard.js +17 -6
- package/lib/todo-guard.js.map +1 -1
- package/lib/tokens.d.ts +0 -2
- package/lib/tokens.d.ts.map +1 -1
- package/lib/tokens.js +1 -1
- package/lib/tokens.js.map +1 -1
- package/lib/tool-display.d.ts +1 -13
- package/lib/tool-display.d.ts.map +1 -1
- package/lib/tool-display.js +4 -4
- package/lib/tool-display.js.map +1 -1
- package/lib/transcript/message-content.d.ts.map +1 -1
- package/lib/transcript/message-content.js +31 -9
- package/lib/transcript/message-content.js.map +1 -1
- package/lib/transcript/tool-calls.d.ts +9 -7
- package/lib/transcript/tool-calls.d.ts.map +1 -1
- package/lib/transcript/tool-calls.js +27 -20
- package/lib/transcript/tool-calls.js.map +1 -1
- package/lib/transcript.d.ts +15 -18
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +70 -41
- package/lib/transcript.js.map +1 -1
- package/lib/ui/copy.d.ts +5 -4
- package/lib/ui/copy.d.ts.map +1 -1
- package/lib/ui/copy.js +9 -6
- package/lib/ui/copy.js.map +1 -1
- package/lib/ui/diff.d.ts +0 -30
- package/lib/ui/diff.d.ts.map +1 -1
- package/lib/ui/diff.js +16 -9
- package/lib/ui/diff.js.map +1 -1
- package/lib/ui/dock.d.ts +12 -10
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +27 -14
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts +5 -4
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +17 -9
- package/lib/ui/editor.js.map +1 -1
- package/lib/ui/frame.d.ts +4 -12
- package/lib/ui/frame.d.ts.map +1 -1
- package/lib/ui/frame.js +6 -6
- package/lib/ui/frame.js.map +1 -1
- package/lib/ui/gap.d.ts +0 -4
- package/lib/ui/gap.d.ts.map +1 -1
- package/lib/ui/gap.js +4 -3
- package/lib/ui/gap.js.map +1 -1
- package/lib/ui/gate-input.d.ts +3 -3
- package/lib/ui/gate-input.d.ts.map +1 -1
- package/lib/ui/gate-input.js +9 -9
- package/lib/ui/gate-input.js.map +1 -1
- package/lib/ui/layout.d.ts +1 -8
- package/lib/ui/layout.d.ts.map +1 -1
- package/lib/ui/layout.js +10 -11
- package/lib/ui/layout.js.map +1 -1
- package/lib/ui/markdown.d.ts +3 -5
- package/lib/ui/markdown.d.ts.map +1 -1
- package/lib/ui/markdown.js +18 -7
- package/lib/ui/markdown.js.map +1 -1
- package/lib/ui/mermaid.d.ts +0 -11
- package/lib/ui/mermaid.d.ts.map +1 -1
- package/lib/ui/mermaid.js +32 -17
- package/lib/ui/mermaid.js.map +1 -1
- package/lib/ui/picker-card.d.ts +4 -8
- package/lib/ui/picker-card.d.ts.map +1 -1
- package/lib/ui/picker-card.js +17 -15
- package/lib/ui/picker-card.js.map +1 -1
- package/lib/ui/picker.d.ts +11 -17
- package/lib/ui/picker.d.ts.map +1 -1
- package/lib/ui/picker.js +36 -17
- package/lib/ui/picker.js.map +1 -1
- package/lib/ui/queue.d.ts.map +1 -1
- package/lib/ui/queue.js +11 -1
- package/lib/ui/queue.js.map +1 -1
- package/lib/ui/stash-picker.d.ts +1 -10
- package/lib/ui/stash-picker.d.ts.map +1 -1
- package/lib/ui/stash-picker.js +4 -4
- package/lib/ui/stash-picker.js.map +1 -1
- package/lib/ui/status.d.ts +2 -19
- package/lib/ui/status.d.ts.map +1 -1
- package/lib/ui/status.js +15 -17
- package/lib/ui/status.js.map +1 -1
- package/lib/ui/view/document.d.ts +33 -0
- package/lib/ui/view/document.d.ts.map +1 -0
- package/lib/ui/view/document.js +96 -0
- package/lib/ui/view/document.js.map +1 -0
- package/lib/ui/view/gate-card.d.ts +2 -0
- package/lib/ui/view/gate-card.d.ts.map +1 -1
- package/lib/ui/view/gate-card.js +12 -10
- package/lib/ui/view/gate-card.js.map +1 -1
- package/lib/ui/view/tool-card.d.ts +7 -4
- package/lib/ui/view/tool-card.d.ts.map +1 -1
- package/lib/ui/view/tool-card.js +12 -17
- package/lib/ui/view/tool-card.js.map +1 -1
- package/lib/ui/view/transcript-message.d.ts +7 -7
- package/lib/ui/view/transcript-message.d.ts.map +1 -1
- package/lib/ui/view/transcript-message.js +19 -10
- package/lib/ui/view/transcript-message.js.map +1 -1
- package/lib/ui/view.d.ts +53 -84
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +79 -158
- package/lib/ui/view.js.map +1 -1
- package/lib/work.d.ts +13 -10
- package/lib/work.d.ts.map +1 -1
- package/lib/work.js +30 -8
- package/lib/work.js.map +1 -1
- package/package.json +12 -7
- package/presets/cordis.patch.yml +1 -0
- package/presets/minimal.patch.yml +1 -0
- package/presets/ptc.patch.yml +1 -0
- package/presets/standard.patch.yml +1 -0
- package/themes/deepseek-blue.yaml +38 -51
- package/themes/marine-static.yaml +27 -35
- package/themes/pine-slope.yaml +13 -11
- package/themes/polar-drift.yaml +6 -0
- package/themes/violet-orbit.yaml +14 -18
- package/themes/wine-thicket.yaml +13 -13
package/lib/terminal-text/sgr.js
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* this surface owns, not a property of either.
|
|
8
8
|
*/
|
|
9
9
|
import { sgrBackgroundPrefix, sgrPrefix } from "../theme-capability.js";
|
|
10
|
-
import { ESC, RESET
|
|
11
|
-
|
|
10
|
+
import { ESC, RESET } from "./scan.js";
|
|
11
|
+
const CSI = `${ESC}[`;
|
|
12
12
|
/** The attributes a run may carry, in the order they are emitted. */
|
|
13
13
|
const ATTRIBUTES = ['bold', 'dim', 'italic', 'underline', 'inverse', 'strike'];
|
|
14
14
|
const ATTRIBUTE_ON = {
|
|
@@ -28,6 +28,7 @@ const ATTRIBUTE_OFF = {
|
|
|
28
28
|
strike: `${CSI}29m`,
|
|
29
29
|
};
|
|
30
30
|
const SGR_ATTRIBUTE_ON = { 1: 'bold', 2: 'dim', 3: 'italic', 4: 'underline', 7: 'inverse', 9: 'strike' };
|
|
31
|
+
// Normalize accepted intensity resets to modeled attributes instead of forwarding SGR 21 to the terminal.
|
|
31
32
|
const SGR_ATTRIBUTE_OFF = {
|
|
32
33
|
21: ['bold', 'dim'],
|
|
33
34
|
22: ['bold', 'dim'],
|
|
@@ -75,27 +76,19 @@ function hasAttribute(style, attribute) {
|
|
|
75
76
|
*
|
|
76
77
|
* The element's own colour is the ground state rather than a reset, because a
|
|
77
78
|
* tool that ends a coloured run must not clear the colour the card drew it in;
|
|
78
|
-
* a full reset is never emitted
|
|
79
|
+
* a full reset is never emitted. Inherited attributes are not modeled here,
|
|
80
|
+
* so targeted attribute resets can still clear attributes from the base.
|
|
79
81
|
*/
|
|
80
82
|
export function encoder(color, base) {
|
|
81
83
|
if (color === 'none')
|
|
82
84
|
return { between: () => '' };
|
|
83
|
-
const groundCodes = (style) => {
|
|
84
|
-
let out = '';
|
|
85
|
-
for (const attribute of ATTRIBUTES)
|
|
86
|
-
if (hasAttribute(style, attribute))
|
|
87
|
-
out += ATTRIBUTE_OFF[attribute];
|
|
88
|
-
if (style.fg !== undefined)
|
|
89
|
-
out += GROUND_FG + base;
|
|
90
|
-
if (style.bg !== undefined)
|
|
91
|
-
out += GROUND_BG + base;
|
|
92
|
-
return out;
|
|
93
|
-
};
|
|
94
85
|
return {
|
|
95
86
|
between(previous, next) {
|
|
96
87
|
if (previous === next)
|
|
97
88
|
return '';
|
|
98
89
|
let out = '';
|
|
90
|
+
// Reset before enabling new attributes so a shared reset cannot erase a newly enabled intensity bit.
|
|
91
|
+
// Unchanged intensity bits are not reapplied, so reset 22 can still clear one of them.
|
|
99
92
|
for (const attribute of ATTRIBUTES) {
|
|
100
93
|
if (hasAttribute(previous, attribute) && !hasAttribute(next, attribute))
|
|
101
94
|
out += ATTRIBUTE_OFF[attribute];
|
|
@@ -112,6 +105,7 @@ export function encoder(color, base) {
|
|
|
112
105
|
},
|
|
113
106
|
};
|
|
114
107
|
}
|
|
108
|
+
// Keep known colour operands out of attribute parsing; unknown kinds have no owned operand span.
|
|
115
109
|
function colourFor(params, at, color) {
|
|
116
110
|
const kind = params[at + 1];
|
|
117
111
|
if (kind === EXTENDED_INDEXED) {
|
|
@@ -160,6 +154,7 @@ export function applySgr(style, params, color) {
|
|
|
160
154
|
const extended = colourFor(params, at, color);
|
|
161
155
|
if (extended.next <= at)
|
|
162
156
|
break;
|
|
157
|
+
// An unusable colour request returns to the element colour rather than retaining an earlier tool colour.
|
|
163
158
|
next = extended.code === undefined
|
|
164
159
|
? { ...next, ...(param === EXTENDED_FG ? { fg: undefined } : { bg: undefined }) }
|
|
165
160
|
: { ...next, ...(param === EXTENDED_FG ? { fg: extended.code } : { bg: extended.code }) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgr.js","sourceRoot":"","sources":["../../src/terminal-text/sgr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAA;AACxF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sgr.js","sourceRoot":"","sources":["../../src/terminal-text/sgr.ts"],"names":[],"mappings":"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"}
|
package/lib/terminal-text.d.ts
CHANGED
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
* every sequence a terminal would *act* on is consumed, so it acts on
|
|
13
13
|
* nothing. Bytes that are not a sequence are still spelled out rather than
|
|
14
14
|
* dropped, because silently swallowing text would hide what a tool said.
|
|
15
|
-
* - {@link escapeTerminalText}
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* - {@link escapeTerminalText} keeps controls visible in literal labels,
|
|
16
|
+
* questions, and stored text rather than allowing them to repaint content.
|
|
17
|
+
* Line feeds preserve rows; callers can expand tabs or keep them for a buffer.
|
|
18
18
|
*
|
|
19
19
|
* Sharing one scanner matters for more than agreement: pi-tui's own escape
|
|
20
20
|
* scanner recognises less than a terminal does (a `\x1b[?25l` left in a drawn
|
|
@@ -22,10 +22,8 @@
|
|
|
22
22
|
* sequence that is not SGR must be gone before any width is measured.
|
|
23
23
|
*/
|
|
24
24
|
import type { ColourMode } from './theme-capability.ts';
|
|
25
|
-
/** Columns between tab stops: the POSIX default, and what every terminal still uses. */
|
|
26
|
-
export declare const TAB_STOP = 8;
|
|
27
25
|
/** Whether a tab is drawn on its stop, or kept for a buffer that will hold it. */
|
|
28
|
-
|
|
26
|
+
type TabPolicy = 'expand' | 'keep';
|
|
29
27
|
export interface EscapeTextOptions {
|
|
30
28
|
/** The column the text starts at, so its first tab lands on the terminal's next stop. */
|
|
31
29
|
readonly column?: number | undefined;
|
|
@@ -39,12 +37,8 @@ export interface RenderTextOptions {
|
|
|
39
37
|
readonly column?: number | undefined;
|
|
40
38
|
}
|
|
41
39
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* The column is what makes a tab land where it landed for the tool that wrote
|
|
46
|
-
* it: a row indented by four columns reaches its stop four columns later than
|
|
47
|
-
* the same row at the left edge.
|
|
40
|
+
* Account for the insertion column so tab expansion stays aligned after layout
|
|
41
|
+
* indentation. Retained tabs let buffer consumers apply their own stops.
|
|
48
42
|
*/
|
|
49
43
|
export declare function escapeTerminalText(raw: string, options?: EscapeTextOptions): string;
|
|
50
44
|
/**
|
|
@@ -69,4 +63,5 @@ export declare function renderTerminalText(raw: string, options: RenderTextOptio
|
|
|
69
63
|
* is the same glitch as half a colour code.
|
|
70
64
|
*/
|
|
71
65
|
export declare function clipVisibleGraphemes(raw: string, limit: number): string;
|
|
66
|
+
export {};
|
|
72
67
|
//# sourceMappingURL=terminal-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-text.d.ts","sourceRoot":"","sources":["../src/terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"terminal-text.d.ts","sourceRoot":"","sources":["../src/terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAOvD,kFAAkF;AAClF,KAAK,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;AAElC,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAkCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAkCvF;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAkFlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBvE"}
|
package/lib/terminal-text.js
CHANGED
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
* every sequence a terminal would *act* on is consumed, so it acts on
|
|
13
13
|
* nothing. Bytes that are not a sequence are still spelled out rather than
|
|
14
14
|
* dropped, because silently swallowing text would hide what a tool said.
|
|
15
|
-
* - {@link escapeTerminalText}
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* - {@link escapeTerminalText} keeps controls visible in literal labels,
|
|
16
|
+
* questions, and stored text rather than allowing them to repaint content.
|
|
17
|
+
* Line feeds preserve rows; callers can expand tabs or keep them for a buffer.
|
|
18
18
|
*
|
|
19
19
|
* Sharing one scanner matters for more than agreement: pi-tui's own escape
|
|
20
20
|
* scanner recognises less than a terminal does (a `\x1b[?25l` left in a drawn
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
import { visibleWidth } from '@earendil-works/pi-tui';
|
|
25
25
|
import { NEEDS_READING, scan, spellControls } from "./terminal-text/scan.js";
|
|
26
26
|
import { GROUND, applySgr, encoder } from "./terminal-text/sgr.js";
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/** Keep tab widths predictable for wrapping; this surface uses eight-column stops. */
|
|
28
|
+
const TAB_STOP = 8;
|
|
29
29
|
const GRAPHEMES = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
|
30
30
|
/** How many characters a reader sees in this piece, which is what a row budget pays for. */
|
|
31
31
|
function visibleLength(piece) {
|
|
@@ -36,6 +36,10 @@ function visibleLength(piece) {
|
|
|
36
36
|
count += 1;
|
|
37
37
|
return count;
|
|
38
38
|
}
|
|
39
|
+
// A visible escape is four or six characters, not the one control that produced it.
|
|
40
|
+
case 'control': return spellControls(piece.raw).length;
|
|
41
|
+
// The eventual insertion column is unknown here, so a tab may need a full stop of visible spaces.
|
|
42
|
+
case 'tab': return TAB_STOP;
|
|
39
43
|
case 'sgr':
|
|
40
44
|
case 'consumed':
|
|
41
45
|
case 'incomplete': return 0;
|
|
@@ -53,12 +57,8 @@ function nextStop(column) {
|
|
|
53
57
|
return (Math.floor(column / TAB_STOP) + 1) * TAB_STOP;
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* The column is what makes a tab land where it landed for the tool that wrote
|
|
60
|
-
* it: a row indented by four columns reaches its stop four columns later than
|
|
61
|
-
* the same row at the left edge.
|
|
60
|
+
* Account for the insertion column so tab expansion stays aligned after layout
|
|
61
|
+
* indentation. Retained tabs let buffer consumers apply their own stops.
|
|
62
62
|
*/
|
|
63
63
|
export function escapeTerminalText(raw, options = {}) {
|
|
64
64
|
const tab = options.tab ?? 'expand';
|
|
@@ -114,27 +114,36 @@ export function renderTerminalText(raw, options) {
|
|
|
114
114
|
const codes = encoder(color, base);
|
|
115
115
|
let style = GROUND;
|
|
116
116
|
let previous = GROUND;
|
|
117
|
-
|
|
117
|
+
const cells = new Map();
|
|
118
118
|
let cursor = column;
|
|
119
119
|
let out = '';
|
|
120
120
|
const write = (text, width) => {
|
|
121
121
|
if (width === 0) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
// Cursor adjacency, not repaint insertion order, decides which retained glyph owns a combining mark.
|
|
123
|
+
const preceding = cells.get(cursor - 1);
|
|
124
|
+
if (preceding !== undefined && preceding.col + preceding.width === cursor)
|
|
125
|
+
preceding.text += text;
|
|
125
126
|
return;
|
|
126
127
|
}
|
|
127
|
-
|
|
128
|
-
let
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
// Column ownership bounds overwrite work to the graphemes it actually replaces.
|
|
129
|
+
for (let col = cursor; col < cursor + width; col++) {
|
|
130
|
+
const replaced = cells.get(col);
|
|
131
|
+
if (replaced === undefined)
|
|
132
|
+
continue;
|
|
133
|
+
for (let occupied = replaced.col; occupied < replaced.col + replaced.width; occupied++)
|
|
134
|
+
cells.delete(occupied);
|
|
135
|
+
}
|
|
136
|
+
const cell = { col: cursor, width, text, style };
|
|
137
|
+
for (let col = cursor; col < cursor + width; col++)
|
|
138
|
+
cells.set(col, cell);
|
|
132
139
|
cursor += width;
|
|
133
140
|
};
|
|
134
141
|
const flush = () => {
|
|
135
|
-
if (cells.
|
|
142
|
+
if (cells.size > 0) {
|
|
136
143
|
let drawn = column;
|
|
137
|
-
|
|
144
|
+
// Repaint insertion order differs from screen order; sort once per completed row.
|
|
145
|
+
const ordered = [...cells].filter(([col, cell]) => col === cell.col).map(([, cell]) => cell).sort((left, right) => left.col - right.col);
|
|
146
|
+
for (const cell of ordered) {
|
|
138
147
|
if (cell.col > drawn) {
|
|
139
148
|
out += codes.between(previous, GROUND);
|
|
140
149
|
previous = GROUND;
|
|
@@ -146,7 +155,7 @@ export function renderTerminalText(raw, options) {
|
|
|
146
155
|
drawn = cell.col + cell.width;
|
|
147
156
|
}
|
|
148
157
|
}
|
|
149
|
-
cells
|
|
158
|
+
cells.clear();
|
|
150
159
|
cursor = column;
|
|
151
160
|
};
|
|
152
161
|
for (const piece of scan(raw)) {
|
package/lib/terminal-text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-text.js","sourceRoot":"","sources":["../src/terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAc,MAAM,yBAAyB,CAAA;AACxF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"terminal-text.js","sourceRoot":"","sources":["../src/terminal-text.ts"],"names":[],"mappings":"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"}
|
package/lib/text.d.ts
CHANGED
|
@@ -14,15 +14,10 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { type EscapeTextOptions } from './terminal-text.ts';
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* terminal acting on it. A tab is the exception that is not spelled: it is
|
|
22
|
-
* expanded to the stop the tool that wrote it used, because a stop the layout
|
|
23
|
-
* cannot predict would desynchronize wrapping. Text that is *drawn* is not read
|
|
24
|
-
* this way at all — it goes through `renderTerminalText`, which interprets the
|
|
25
|
-
* sequences a terminal would have interpreted.
|
|
17
|
+
* Keep controls visible in literal labels and questions rather than allowing
|
|
18
|
+
* them to repaint content. Line feeds preserve rows; tabs normally expand to
|
|
19
|
+
* this surface's stops so wrapping can predict their width. Terminal-like output
|
|
20
|
+
* instead uses `renderTerminalText` to interpret safe styling and repaint behavior.
|
|
26
21
|
*/
|
|
27
22
|
export declare function displayText(raw: string, options?: EscapeTextOptions): string;
|
|
28
23
|
/** One row of text: every run of line breaks becomes the space between its rows. */
|
|
@@ -47,12 +42,11 @@ export declare function tailGraphemes(text: string, limit: number): string;
|
|
|
47
42
|
/**
|
|
48
43
|
* Text as the clusters a reader would count.
|
|
49
44
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* clusters is what keeps a drawn run from ending inside a character.
|
|
45
|
+
* Comparing clusters keeps a drawn run from ending inside a character. A caller
|
|
46
|
+
* with a work budget can stop after the first excess cluster without retaining
|
|
47
|
+
* the rest of an oversized row; callers without a budget still keep every one.
|
|
54
48
|
*/
|
|
55
|
-
export declare function splitGraphemes(text: string): string[];
|
|
49
|
+
export declare function splitGraphemes(text: string, limit: number): string[];
|
|
56
50
|
/** The form of text that is safe to put back into a live editor. */
|
|
57
51
|
export declare function stripControlCharacters(text: string): string;
|
|
58
52
|
//# sourceMappingURL=text.d.ts.map
|
package/lib/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG/E;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAE5E;AAaD,oFAAoF;AACpF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAKD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpE;AAqBD,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|
package/lib/text.js
CHANGED
|
@@ -14,15 +14,10 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { escapeTerminalText } from "./terminal-text.js";
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* terminal acting on it. A tab is the exception that is not spelled: it is
|
|
22
|
-
* expanded to the stop the tool that wrote it used, because a stop the layout
|
|
23
|
-
* cannot predict would desynchronize wrapping. Text that is *drawn* is not read
|
|
24
|
-
* this way at all — it goes through `renderTerminalText`, which interprets the
|
|
25
|
-
* sequences a terminal would have interpreted.
|
|
17
|
+
* Keep controls visible in literal labels and questions rather than allowing
|
|
18
|
+
* them to repaint content. Line feeds preserve rows; tabs normally expand to
|
|
19
|
+
* this surface's stops so wrapping can predict their width. Terminal-like output
|
|
20
|
+
* instead uses `renderTerminalText` to interpret safe styling and repaint behavior.
|
|
26
21
|
*/
|
|
27
22
|
export function displayText(raw, options) {
|
|
28
23
|
return escapeTerminalText(raw, options);
|
|
@@ -86,15 +81,19 @@ export function tailGraphemes(text, limit) {
|
|
|
86
81
|
/**
|
|
87
82
|
* Text as the clusters a reader would count.
|
|
88
83
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* clusters is what keeps a drawn run from ending inside a character.
|
|
84
|
+
* Comparing clusters keeps a drawn run from ending inside a character. A caller
|
|
85
|
+
* with a work budget can stop after the first excess cluster without retaining
|
|
86
|
+
* the rest of an oversized row; callers without a budget still keep every one.
|
|
93
87
|
*/
|
|
94
|
-
export function splitGraphemes(text) {
|
|
88
|
+
export function splitGraphemes(text, limit) {
|
|
95
89
|
const clusters = [];
|
|
96
|
-
|
|
90
|
+
if (limit <= 0)
|
|
91
|
+
return clusters;
|
|
92
|
+
for (const { segment } of GRAPHEMES.segment(text)) {
|
|
97
93
|
clusters.push(segment);
|
|
94
|
+
if (clusters.length >= limit)
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
98
97
|
return clusters;
|
|
99
98
|
}
|
|
100
99
|
/**
|
package/lib/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAA0B,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAA0B,MAAM,oBAAoB,CAAA;AAG/E;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,OAA2B;IAClE,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAE1C,oFAAoF;AACpF,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,yFAAyF;AACzF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;AAE5E;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa;IACxD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,6EAA6E;IAC7E,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;YAAE,MAAK;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IACvD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,6EAA6E;IAC7E,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzE,OAAO,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa;IACxD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtB,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK;YAAE,MAAK;IACrC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,6BAA6B,GACjC,yFAAyF,CAAA;AAE3F,oEAAoE;AACpE,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;AACxD,CAAC"}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
/** How much colour the terminal can be trusted with. */
|
|
2
2
|
export type ColourMode = 'truecolor' | '256' | '16' | 'none';
|
|
3
|
-
/** An ANSI palette index, 0-255. */
|
|
4
|
-
export type AnsiIndex = number;
|
|
5
|
-
/** An RGB triple. */
|
|
6
|
-
export interface Rgb {
|
|
7
|
-
readonly r: number;
|
|
8
|
-
readonly g: number;
|
|
9
|
-
readonly b: number;
|
|
10
|
-
}
|
|
11
|
-
/** A parsed colour: an RGB triple, or a palette index. */
|
|
12
|
-
export type ParsedColour = Rgb | AnsiIndex;
|
|
13
|
-
/** Which layer an SGR colour code addresses. */
|
|
14
|
-
export type ColourLayer = 'fg' | 'bg';
|
|
15
3
|
/**
|
|
16
4
|
* Decide the colour budget from the environment.
|
|
17
5
|
*
|
|
@@ -24,9 +12,9 @@ export declare function detectColourMode(env: Record<string, string | undefined>
|
|
|
24
12
|
/**
|
|
25
13
|
* The SGR prefix that starts a foreground colour, or empty when colour is off.
|
|
26
14
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
15
|
+
* Approximation keeps hue families and receding greys recognizable on weaker
|
|
16
|
+
* terminals; neither cube rounding nor base-palette heuristics guarantee the
|
|
17
|
+
* nearest available shade.
|
|
30
18
|
*/
|
|
31
19
|
export declare function sgrPrefix(spec: string | number, mode: ColourMode): string;
|
|
32
20
|
/** The SGR prefix that starts a background colour, or empty when colour is off. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-capability.d.ts","sourceRoot":"","sources":["../src/theme-capability.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"theme-capability.d.ts","sourceRoot":"","sources":["../src/theme-capability.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;AAkE5D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,UAAU,CAWpF;AAwGD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzE;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAEnF"}
|
package/lib/theme-capability.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/** Bound palette indices and RGB channels before they become terminal parameters. */
|
|
1
2
|
const HEX = /^#([0-9a-f]{6})$/iu;
|
|
2
3
|
const MAX_INDEX = 255;
|
|
3
4
|
const HEX_MAX = 0xff;
|
|
4
5
|
const CUBE_LEVELS = 5;
|
|
6
|
+
/** Split coloured roles between normal and bright slots without discarding their hue family. */
|
|
5
7
|
const MID_GREY = 128;
|
|
6
8
|
/** The base SGR codes for a layer, normal and bright. */
|
|
7
9
|
const FG_NORMAL = 30;
|
|
@@ -31,11 +33,12 @@ const BRIGHT_WHITE_SLOT = 15;
|
|
|
31
33
|
/**
|
|
32
34
|
* A colour this far from grey keeps its hue family when degraded to 16 colours.
|
|
33
35
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
+
* Preserve hue distinctions for additions and warnings instead of reducing
|
|
37
|
+
* every colour to a brightness-only grey. Exact threshold calibration remains
|
|
38
|
+
* undocumented.
|
|
36
39
|
*/
|
|
37
40
|
const GREY_CHROMA = 30;
|
|
38
|
-
/**
|
|
41
|
+
/** Preserve a receding-to-bright grey hierarchy within four available slots; these are heuristic cutoffs, not contrast guarantees. */
|
|
39
42
|
const GREY_BLACK_MAX = 64;
|
|
40
43
|
const GREY_LIGHT_MAX = 160;
|
|
41
44
|
const GREY_WHITE_MAX = 224;
|
|
@@ -60,6 +63,7 @@ export function detectColourMode(env) {
|
|
|
60
63
|
return 'truecolor';
|
|
61
64
|
if ((env.TERM ?? '').includes('256color'))
|
|
62
65
|
return '256';
|
|
66
|
+
// Retain base-palette styling without advertising extended-colour support; this fallback is a policy, not a capability probe.
|
|
63
67
|
return '16';
|
|
64
68
|
}
|
|
65
69
|
/** Parse a colour specification, or `undefined` when it is not one. */
|
|
@@ -83,7 +87,7 @@ function slotCode(slot, layer) {
|
|
|
83
87
|
return bright + (slot - 8);
|
|
84
88
|
return normal;
|
|
85
89
|
}
|
|
86
|
-
/**
|
|
90
|
+
/** Approximate RGB for indexed terminals; uniform rounding does not guarantee the nearest non-linear xterm shade. */
|
|
87
91
|
function cubeIndex(rgb) {
|
|
88
92
|
const level = (value) => Math.round((value / HEX_MAX) * CUBE_LEVELS);
|
|
89
93
|
return 16 + 36 * level(rgb.r) + 6 * level(rgb.g) + level(rgb.b);
|
|
@@ -107,9 +111,8 @@ function indexToRgb(index) {
|
|
|
107
111
|
/**
|
|
108
112
|
* The hue slot a non-grey triple belongs to.
|
|
109
113
|
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* plain red on a 16-colour terminal.
|
|
114
|
+
* Keep mixed hue families distinct from a dominant primary channel so warning
|
|
115
|
+
* amber need not reduce to plain red on a 16-colour terminal.
|
|
113
116
|
*/
|
|
114
117
|
function hueSlot(rgb) {
|
|
115
118
|
const max = Math.max(rgb.r, rgb.g, rgb.b);
|
|
@@ -128,15 +131,15 @@ function hueSlot(rgb) {
|
|
|
128
131
|
return HUE_BLUE;
|
|
129
132
|
}
|
|
130
133
|
/**
|
|
131
|
-
*
|
|
134
|
+
* A base-palette approximation for a triple.
|
|
132
135
|
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* black or white is what made the degraded palette unreadable.
|
|
136
|
+
* Preserve separate roles for receding greys and coloured additions or warnings
|
|
137
|
+
* rather than reducing every role to black or white.
|
|
136
138
|
*/
|
|
137
139
|
function degradeTo16(rgb) {
|
|
138
140
|
const max = Math.max(rgb.r, rgb.g, rgb.b);
|
|
139
141
|
const min = Math.min(rgb.r, rgb.g, rgb.b);
|
|
142
|
+
// A coarse channel average separates shade levels within the small palette; it is not perceptual luminance.
|
|
140
143
|
const level = Math.round((rgb.r + rgb.g + rgb.b) / 3);
|
|
141
144
|
if (max - min < GREY_CHROMA) {
|
|
142
145
|
if (level >= GREY_WHITE_MAX)
|
|
@@ -150,7 +153,7 @@ function degradeTo16(rgb) {
|
|
|
150
153
|
const slot = hueSlot(rgb);
|
|
151
154
|
return level >= MID_GREY ? slot + 8 : slot;
|
|
152
155
|
}
|
|
153
|
-
/**
|
|
156
|
+
/** Ignore invalid colour forms so malformed input cannot become terminal parameters or interrupt text rendering. */
|
|
154
157
|
function colourSgr(spec, mode, layer) {
|
|
155
158
|
if (mode === 'none')
|
|
156
159
|
return '';
|
|
@@ -176,9 +179,9 @@ function colourSgr(spec, mode, layer) {
|
|
|
176
179
|
/**
|
|
177
180
|
* The SGR prefix that starts a foreground colour, or empty when colour is off.
|
|
178
181
|
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
+
* Approximation keeps hue families and receding greys recognizable on weaker
|
|
183
|
+
* terminals; neither cube rounding nor base-palette heuristics guarantee the
|
|
184
|
+
* nearest available shade.
|
|
182
185
|
*/
|
|
183
186
|
export function sgrPrefix(spec, mode) {
|
|
184
187
|
return colourSgr(spec, mode, 'fg');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-capability.js","sourceRoot":"","sources":["../src/theme-capability.ts"],"names":[],"mappings":"AAmBA,MAAM,GAAG,GAAG,oBAAoB,CAAA;AAChC,MAAM,SAAS,GAAG,GAAG,CAAA;AACrB,MAAM,OAAO,GAAG,IAAI,CAAA;AACpB,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,QAAQ,GAAG,GAAG,CAAA;AAEpB,yDAAyD;AACzD,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,SAAS,GAAG,GAAG,CAAA;AACrB,qFAAqF;AACrF,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,SAAS,GAAG,CAAC,CAAA;AACnB,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,SAAS,GAAG,GAAG,CAAA;AACrB,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,mFAAmF;AACnF,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAErD,yEAAyE;AACzE,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,SAAS,GAAG,CAAC,CAAA;AACnB,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B
|
|
1
|
+
{"version":3,"file":"theme-capability.js","sourceRoot":"","sources":["../src/theme-capability.ts"],"names":[],"mappings":"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"}
|