@sagmans/dsh-tui 0.13.0 → 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 +16 -12
- 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 +4 -4
- 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 +4 -3
- package/lib/input/file-search.d.ts.map +1 -1
- package/lib/input/file-search.js +8 -5
- 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.map +1 -1
- package/lib/input.js +3 -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 +3 -0
- package/lib/surface/modal-input.d.ts.map +1 -1
- package/lib/surface/modal-input.js +4 -1
- 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 +9 -14
- 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 +2 -0
- package/lib/terminal/warning-screen.d.ts.map +1 -1
- package/lib/terminal/warning-screen.js +21 -3
- 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 +31 -28
- 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 +10 -18
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +40 -28
- 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 +4 -10
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +10 -14
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts +4 -3
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +2 -2
- 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 +5 -3
- 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 +10 -17
- package/lib/ui/picker.d.ts.map +1 -1
- package/lib/ui/picker.js +14 -8
- package/lib/ui/picker.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 +4 -1
- package/lib/ui/view/document.d.ts.map +1 -1
- package/lib/ui/view/document.js +15 -6
- package/lib/ui/view/document.js.map +1 -1
- 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 +8 -8
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +11 -13
- 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 +11 -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/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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"}
|
package/lib/theme-defaults.d.ts
CHANGED
|
@@ -1,64 +1,10 @@
|
|
|
1
1
|
import type { PaletteName, StyleSpec, TuiToken } from './theme-tokens.ts';
|
|
2
|
-
/**
|
|
3
|
-
* The muted shade every receding element shares.
|
|
4
|
-
*
|
|
5
|
-
* An explicit grey rather than a palette slot: slot 8 is whatever the reader's
|
|
6
|
-
* terminal maps it to, which on the reader's own phone was close enough to
|
|
7
|
-
* ordinary text that dimming looked like it had not been applied at all.
|
|
8
|
-
*/
|
|
9
|
-
export declare const MUTED_GREY = "#8a8a8a";
|
|
10
|
-
/**
|
|
11
|
-
* The shade the reasoning signpost recedes to.
|
|
12
|
-
*
|
|
13
|
-
* The row naming a thought is a signpost, not the thought: it sits below the
|
|
14
|
-
* muted family so the body it introduces stays the thing being read.
|
|
15
|
-
*/
|
|
16
|
-
export declare const FAINT_GREY = "#666666";
|
|
17
|
-
/**
|
|
18
|
-
* The shade a tool's argument takes.
|
|
19
|
-
*
|
|
20
|
-
* A call's argument is the one part of a card the reader scans for, and it must
|
|
21
|
-
* read as neither the tool's own label (warn) nor ordinary output (the default
|
|
22
|
-
* foreground); a pale blue sits between them without competing for attention.
|
|
23
|
-
*/
|
|
24
|
-
export declare const ARGUMENT_BLUE = "#8db3d9";
|
|
25
|
-
/**
|
|
26
|
-
* The shade a submitted prompt takes.
|
|
27
|
-
*
|
|
28
|
-
* A reader's own turns and the assistant's reply both shipped on the default
|
|
29
|
-
* foreground, so telling the two apart meant reading them; a mint keeps them
|
|
30
|
-
* apart at a glance without the pink cast a rose gave every prompt.
|
|
31
|
-
*/
|
|
32
|
-
export declare const USER_PROMPT_MINT = "#27f5c8";
|
|
33
|
-
/**
|
|
34
|
-
* The band a changed run sits on inside an added line.
|
|
35
|
-
*
|
|
36
|
-
* The characters that changed are why a paired line is on screen at all, and
|
|
37
|
-
* they must stand out without leaving the row's own hue: a reader scanning a
|
|
38
|
-
* green row should not have to compare it against a second, unrelated colour to
|
|
39
|
-
* find what moved. An explicit dark shade rather than a palette slot, for the
|
|
40
|
-
* same reason the muted grey is one.
|
|
41
|
-
*/
|
|
42
|
-
export declare const DIFF_ADDED_BAND = "#1e3d24";
|
|
43
|
-
/** The band a changed run sits on inside a removed line; the pair of {@link DIFF_ADDED_BAND}. */
|
|
44
|
-
export declare const DIFF_REMOVED_BAND = "#472424";
|
|
45
|
-
/**
|
|
46
|
-
* The shade the frame around an assistant reply is drawn in.
|
|
47
|
-
*
|
|
48
|
-
* A reply is boxed so one exchange reads as two objects rather than as a box and
|
|
49
|
-
* then a stream, and its frame must not be mistaken for the bar the reader types
|
|
50
|
-
* into: a warm gold sits apart from the prompt's mint and the brand-blue editor,
|
|
51
|
-
* without borrowing the warning amber that means a state.
|
|
52
|
-
*/
|
|
53
|
-
export declare const ASSISTANT_FRAME_GOLD = "#d6c29a";
|
|
54
2
|
/** The colours a token can name, so a shade is changed in one place. */
|
|
55
3
|
export declare const DEFAULT_PALETTE: Readonly<Record<PaletteName, string>>;
|
|
56
4
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* muted family, which moves from faint-on-a-palette-slot to an explicit grey.
|
|
61
|
-
* A test asserts every token in {@link TUI_TOKENS} appears here.
|
|
5
|
+
* Supply a complete appearance when neither a theme nor a reader override owns
|
|
6
|
+
* an element. The Record<TuiToken, StyleSpec> constraint keeps new tokens from
|
|
7
|
+
* lacking a fallback.
|
|
62
8
|
*/
|
|
63
9
|
export declare const DEFAULT_TOKENS: Readonly<Record<TuiToken, StyleSpec>>;
|
|
64
10
|
//# sourceMappingURL=theme-defaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-defaults.d.ts","sourceRoot":"","sources":["../src/theme-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"theme-defaults.d.ts","sourceRoot":"","sources":["../src/theme-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AA4DzE,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAWjE,CAAA;AA8BD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAiLhE,CAAA"}
|
package/lib/theme-defaults.js
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* terminal maps it to, which on the reader's own phone was close enough to
|
|
6
6
|
* ordinary text that dimming looked like it had not been applied at all.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
const MUTED_GREY = '#8a8a8a';
|
|
9
9
|
/**
|
|
10
10
|
* The shade the reasoning signpost recedes to.
|
|
11
11
|
*
|
|
12
12
|
* The row naming a thought is a signpost, not the thought: it sits below the
|
|
13
13
|
* muted family so the body it introduces stays the thing being read.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
const FAINT_GREY = '#666666';
|
|
16
16
|
/**
|
|
17
17
|
* The shade a tool's argument takes.
|
|
18
18
|
*
|
|
@@ -20,7 +20,7 @@ export const FAINT_GREY = '#666666';
|
|
|
20
20
|
* read as neither the tool's own label (warn) nor ordinary output (the default
|
|
21
21
|
* foreground); a pale blue sits between them without competing for attention.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
const ARGUMENT_BLUE = '#8db3d9';
|
|
24
24
|
/**
|
|
25
25
|
* The shade a submitted prompt takes.
|
|
26
26
|
*
|
|
@@ -28,7 +28,7 @@ export const ARGUMENT_BLUE = '#8db3d9';
|
|
|
28
28
|
* foreground, so telling the two apart meant reading them; a mint keeps them
|
|
29
29
|
* apart at a glance without the pink cast a rose gave every prompt.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
const USER_PROMPT_MINT = '#27f5c8';
|
|
32
32
|
/**
|
|
33
33
|
* The band a changed run sits on inside an added line.
|
|
34
34
|
*
|
|
@@ -38,9 +38,9 @@ export const USER_PROMPT_MINT = '#27f5c8';
|
|
|
38
38
|
* find what moved. An explicit dark shade rather than a palette slot, for the
|
|
39
39
|
* same reason the muted grey is one.
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
const DIFF_ADDED_BAND = '#1e3d24';
|
|
42
42
|
/** The band a changed run sits on inside a removed line; the pair of {@link DIFF_ADDED_BAND}. */
|
|
43
|
-
|
|
43
|
+
const DIFF_REMOVED_BAND = '#472424';
|
|
44
44
|
/**
|
|
45
45
|
* The shade the frame around an assistant reply is drawn in.
|
|
46
46
|
*
|
|
@@ -49,7 +49,7 @@ export const DIFF_REMOVED_BAND = '#472424';
|
|
|
49
49
|
* into: a warm gold sits apart from the prompt's mint and the brand-blue editor,
|
|
50
50
|
* without borrowing the warning amber that means a state.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
const ASSISTANT_FRAME_GOLD = '#d6c29a';
|
|
53
53
|
/** The colours a token can name, so a shade is changed in one place. */
|
|
54
54
|
export const DEFAULT_PALETTE = {
|
|
55
55
|
default: '#d0d0d0',
|
|
@@ -75,8 +75,8 @@ const muted = { fg: 'muted' };
|
|
|
75
75
|
/**
|
|
76
76
|
* The reasoning row recedes past the muted family, hence its own entry.
|
|
77
77
|
*
|
|
78
|
-
* Italic
|
|
79
|
-
*
|
|
78
|
+
* Italic distinguishes the signpost while sharing the thought's shade, so the
|
|
79
|
+
* label does not compete with the body it introduces.
|
|
80
80
|
*/
|
|
81
81
|
const signpost = { fg: 'faint', italic: true };
|
|
82
82
|
/**
|
|
@@ -89,11 +89,9 @@ const signpost = { fg: 'faint', italic: true };
|
|
|
89
89
|
const thought = { fg: 'faint' };
|
|
90
90
|
const plain = {};
|
|
91
91
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* muted family, which moves from faint-on-a-palette-slot to an explicit grey.
|
|
96
|
-
* A test asserts every token in {@link TUI_TOKENS} appears here.
|
|
92
|
+
* Supply a complete appearance when neither a theme nor a reader override owns
|
|
93
|
+
* an element. The Record<TuiToken, StyleSpec> constraint keeps new tokens from
|
|
94
|
+
* lacking a fallback.
|
|
97
95
|
*/
|
|
98
96
|
export const DEFAULT_TOKENS = {
|
|
99
97
|
'transcript.user': { fg: 'user' },
|
|
@@ -108,6 +106,7 @@ export const DEFAULT_TOKENS = {
|
|
|
108
106
|
// running colour, so the name it wears when nothing is happening has to be a
|
|
109
107
|
// colour of its own.
|
|
110
108
|
'tool.title': { fg: 'accent' },
|
|
109
|
+
// Keep the tool marker distinct from its idle title; this shared running/completed hue is not a failure signal.
|
|
111
110
|
'tool.glyph': { fg: 'warn' },
|
|
112
111
|
// The base accent keeps the unthemed skill row aligned with tool.title;
|
|
113
112
|
// themes can override either token independently.
|
|
@@ -148,6 +147,8 @@ export const DEFAULT_TOKENS = {
|
|
|
148
147
|
'tool.web.source': muted,
|
|
149
148
|
'tool.web.truncated': muted,
|
|
150
149
|
'tool.generic.detail': muted,
|
|
150
|
+
// Accent separates document structure from body text; weight marks headings
|
|
151
|
+
// and underlining distinguishes links from other accented spans.
|
|
151
152
|
'markdown.heading': { fg: 'accent', bold: true },
|
|
152
153
|
'markdown.link': { fg: 'accent', underline: true },
|
|
153
154
|
'markdown.linkUrl': muted,
|
|
@@ -174,12 +175,16 @@ export const DEFAULT_TOKENS = {
|
|
|
174
175
|
// palette move carries both without the reader restating either.
|
|
175
176
|
'markdown.diff.addedEmphasis': { inherit: 'markdown.diff.added', bg: DIFF_ADDED_BAND },
|
|
176
177
|
'markdown.diff.removedEmphasis': { inherit: 'markdown.diff.removed', bg: DIFF_REMOVED_BAND },
|
|
178
|
+
// Keep diagram labels in the body shade while edges and titles orient the
|
|
179
|
+
// reader; warning colour separates rendering losses from retained source.
|
|
177
180
|
'markdown.diagram.border': muted,
|
|
178
181
|
'markdown.diagram.text': plain,
|
|
179
182
|
'markdown.diagram.edge': { fg: 'accent' },
|
|
180
183
|
'markdown.diagram.edgeLabel': muted,
|
|
181
184
|
'markdown.diagram.title': { fg: 'accent', bold: true },
|
|
182
185
|
'markdown.diagram.warning': { fg: 'warn' },
|
|
186
|
+
// Current choices gain weight without replacing the surrounding foreground;
|
|
187
|
+
// cursor glyphs locate focus separately from the row's emphasis.
|
|
183
188
|
'picker.title': { bold: true },
|
|
184
189
|
'picker.glyph': { bold: true },
|
|
185
190
|
'picker.note': { bold: true },
|
|
@@ -195,10 +200,13 @@ export const DEFAULT_TOKENS = {
|
|
|
195
200
|
'gate.glyphApproval': { bold: true },
|
|
196
201
|
'gate.glyphQuestion': { bold: true },
|
|
197
202
|
'gate.detail': muted,
|
|
203
|
+
// Match picker focus emphasis; a checkbox separately records selection.
|
|
198
204
|
'gate.option': plain,
|
|
199
205
|
'gate.optionCurrent': { bold: true },
|
|
200
206
|
'gate.cursor': plain,
|
|
201
207
|
'gate.hint': muted,
|
|
208
|
+
// Keep the active objective and plan constraint prominent above work-board
|
|
209
|
+
// details without assigning either a separate state colour.
|
|
202
210
|
'dock.goal': { bold: true },
|
|
203
211
|
'dock.planMode': { bold: true },
|
|
204
212
|
// The row that separates the conversation from the boards under it: the boards
|
|
@@ -220,6 +228,7 @@ export const DEFAULT_TOKENS = {
|
|
|
220
228
|
'dock.jobs.heading': { bold: true },
|
|
221
229
|
'dock.jobs.running': muted,
|
|
222
230
|
'dock.jobs.overflow': muted,
|
|
231
|
+
// An armed chord needs attention before passive measurements in the footer.
|
|
223
232
|
'status.prefix': { fg: 'accent' },
|
|
224
233
|
// The way back is a key the reader presses, so it carries the weight of an
|
|
225
234
|
// armed chord rather than toning down with the facts.
|
|
@@ -246,6 +255,8 @@ export const DEFAULT_TOKENS = {
|
|
|
246
255
|
// Faint only: the ghost is a suggestion, and a named colour would drop the
|
|
247
256
|
// faint that makes it read as not-yet-typed.
|
|
248
257
|
'editor.ghost': { dim: true },
|
|
258
|
+
// Separate the focus marker from the emphasized completion text; descriptions
|
|
259
|
+
// remain secondary to the candidate the reader can accept.
|
|
249
260
|
'editor.selectList.selectedPrefix': { fg: 'accent' },
|
|
250
261
|
'editor.selectList.selectedText': { bold: true },
|
|
251
262
|
'editor.selectList.description': muted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-defaults.js","sourceRoot":"","sources":["../src/theme-defaults.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"theme-defaults.js","sourceRoot":"","sources":["../src/theme-defaults.ts"],"names":[],"mappings":"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"}
|
package/lib/theme-files.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { PaletteName, ThemedSpecs } from './theme-tokens.ts';
|
|
2
|
-
/** The directory under `DSH_HOME` the reader's own themes live in. */
|
|
3
|
-
export declare const THEMES_DIR_NAME = "themes";
|
|
4
2
|
/**
|
|
5
3
|
* The theme the surface draws until the reader names another.
|
|
6
4
|
*
|
|
@@ -9,17 +7,8 @@ export declare const THEMES_DIR_NAME = "themes";
|
|
|
9
7
|
* the list beside every other, so no default hides behind an absence.
|
|
10
8
|
*/
|
|
11
9
|
export declare const DEFAULT_THEME = "violet-orbit";
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* js-yaml bounds neither the size of a document nor how far an alias chain may
|
|
16
|
-
* expand it, so a file small enough to type can still be a bomb. A cap does not
|
|
17
|
-
* stop that on its own — the host parses settings.yaml with the same library, so a
|
|
18
|
-
* theme file adds no exposure that is not already there — but it keeps the crude
|
|
19
|
-
* case away from the parser.
|
|
20
|
-
*/
|
|
21
|
-
export declare const MAX_THEME_FILE_BYTES: number;
|
|
22
|
-
/** One theme, wherever it came from. */
|
|
10
|
+
/** Keep provenance with sparse overrides so settings can merge over this layer
|
|
11
|
+
* without replacing unspecified shipped defaults. */
|
|
23
12
|
export interface LoadedTheme {
|
|
24
13
|
/** The name it answers to, which is the file's stem. */
|
|
25
14
|
readonly name: string;
|
|
@@ -32,7 +21,8 @@ export interface LoadedTheme {
|
|
|
32
21
|
/** The elements it draws its own way. */
|
|
33
22
|
readonly tokens: ThemedSpecs;
|
|
34
23
|
}
|
|
35
|
-
/**
|
|
24
|
+
/** Share one loaded snapshot between lookup, picker rows, and diagnostics so
|
|
25
|
+
* consumers agree on which themes are available. */
|
|
36
26
|
export interface ThemeLibrary {
|
|
37
27
|
/** Where the reader's own themes live, whether or not the directory exists. */
|
|
38
28
|
readonly home: string;
|
|
@@ -45,7 +35,8 @@ export interface ThemeLibrary {
|
|
|
45
35
|
/** Everything that could not be read, each phrased for the reader. */
|
|
46
36
|
problems(): readonly string[];
|
|
47
37
|
}
|
|
48
|
-
/**
|
|
38
|
+
/** Give command notices both the copy location and its selectable name; expected
|
|
39
|
+
* export failures become notices rather than ending the session. */
|
|
49
40
|
export type ExportOutcome = {
|
|
50
41
|
readonly ok: true;
|
|
51
42
|
readonly path: string;
|
|
@@ -69,19 +60,12 @@ export declare function builtinThemesDir(): string;
|
|
|
69
60
|
* the same precedence rule — "where is DSH_HOME" has more than one answer in this
|
|
70
61
|
* tree already, and a third would be one more to keep in step.
|
|
71
62
|
*/
|
|
72
|
-
export declare function themesHomeDir(
|
|
73
|
-
/** Create the
|
|
63
|
+
export declare function themesHomeDir(): string;
|
|
64
|
+
/** Create the editable directory before watching it; return failures for deferred
|
|
65
|
+
* notices because the alternate screen obscures stderr. */
|
|
74
66
|
export declare function ensureThemesHome(dir: string): readonly string[];
|
|
75
67
|
/** The names the package ships a file for, which are the ones an export can copy. */
|
|
76
68
|
export declare function builtinNames(library: ThemeLibrary): string[];
|
|
77
|
-
/**
|
|
78
|
-
* The name a copy of `name` takes, given the names already in use.
|
|
79
|
-
*
|
|
80
|
-
* Numbered rather than overwritten: a second export is a reader asking for a fresh
|
|
81
|
-
* copy of a built-in that has moved on since the first, and the file they have been
|
|
82
|
-
* editing is the one thing that must survive the request.
|
|
83
|
-
*/
|
|
84
|
-
export declare function exportName(name: string, taken: ReadonlySet<string>): string;
|
|
85
69
|
/**
|
|
86
70
|
* Write a built-in out as a theme of the reader's own.
|
|
87
71
|
*
|
|
@@ -94,17 +78,17 @@ export declare function exportTheme(library: ThemeLibrary, name: string): Export
|
|
|
94
78
|
/**
|
|
95
79
|
* Read every theme the surface can draw.
|
|
96
80
|
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
81
|
+
* Hand-edited files can be malformed during a save. Omit unreadable or invalid
|
|
82
|
+
* themes and collect notices so other valid themes remain usable; settings can
|
|
83
|
+
* fall back when the selected theme no longer loads. No previous snapshot is kept.
|
|
100
84
|
*/
|
|
101
85
|
export declare function loadThemes(homeDir: string, builtinDir: string): ThemeLibrary;
|
|
102
86
|
/**
|
|
103
87
|
* Call `onChange` after a burst of changes settles in a theme directory.
|
|
104
88
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
89
|
+
* The surface owns this watcher through the returned disposer, which closes it
|
|
90
|
+
* and cancels pending reloads at teardown. The watcher uses Node's default
|
|
91
|
+
* persistent lifetime, so disposal is needed to release its process handle.
|
|
108
92
|
*/
|
|
109
|
-
export declare function watchThemes(dir: string, onChange: () => void): () => void;
|
|
93
|
+
export declare function watchThemes(dir: string, onChange: () => void, onNotice: (text: string) => void): () => void;
|
|
110
94
|
//# sourceMappingURL=theme-files.d.ts.map
|
package/lib/theme-files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-files.d.ts","sourceRoot":"","sources":["../src/theme-files.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"theme-files.d.ts","sourceRoot":"","sources":["../src/theme-files.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKjE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAyB3C;qDACqD;AACrD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAChE,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED;oDACoD;AACpD,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,IAAI,IAAI,SAAS,WAAW,EAAE,CAAA;IAC9B,sDAAsD;IACtD,KAAK,IAAI,SAAS,MAAM,EAAE,CAAA;IAC1B,kEAAkE;IAClE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;IACtD,sEAAsE;IACtE,QAAQ,IAAI,SAAS,MAAM,EAAE,CAAA;CAC9B;AAED;oEACoE;AACpE,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAWpD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;2DAC2D;AAC3D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAO/D;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAI5D;AAgBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA4B9E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAkC5E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CA0B3G"}
|