@deepseek-harness-tui/dsh-tui 0.14.0 → 0.15.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/README.md +73 -14
- package/bin/dsh-tui.js +200 -34
- package/cordis.patch.yml +16 -52
- package/cordis.yml +6 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +44 -7
- package/guide/dsh-tui-guide/claude-backend.md +28 -6
- package/guide/dsh-tui-guide/codex-backend.en.md +34 -7
- package/guide/dsh-tui-guide/codex-backend.md +17 -2
- package/guide/dsh-tui-guide/configuration.en.md +129 -16
- package/guide/dsh-tui-guide/configuration.md +110 -14
- package/guide/dsh-tui-guide/interaction.en.md +57 -24
- package/guide/dsh-tui-guide/interaction.md +42 -19
- package/guide/dsh-tui-guide/plugins.en.md +36 -3
- package/guide/dsh-tui-guide/plugins.md +21 -2
- package/guide/dsh-tui-guide/themes.en.md +23 -14
- package/guide/dsh-tui-guide/themes.md +19 -12
- package/guide/dsh-tui-guide/user-guide.en.md +51 -20
- package/guide/dsh-tui-guide/user-guide.md +41 -21
- package/lib/settings.json +103 -9
- package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +3 -0
- package/lib/types/adapter/channel/ui.d.ts +2 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +6 -2
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
- package/lib/types/adapter/kernel/runtime.js +2 -0
- package/lib/types/adapter/ports/channel-settings.d.ts +9 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +50 -12
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +21 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/spec/backend-capabilities.d.ts +22 -0
- package/lib/types/adapter/spec/backend-capabilities.d.ts.map +1 -0
- package/lib/types/adapter/spec/backend-capabilities.js +49 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
- package/lib/types/adapter/spec/protocol-constants.js +10 -3
- package/lib/types/adapter/spec/tui-contributions.d.ts +3 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
- package/lib/types/adapter/spec/tui-contributions.js +7 -0
- package/lib/types/adapter/standard/registry.d.ts +6 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -1
- package/lib/types/adapter/standard/registry.js +65 -15
- package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -1
- package/lib/types/adapter/standard/tui-extension.js +7 -1
- package/lib/types/adapter/standard/types.d.ts +10 -1
- package/lib/types/adapter/standard/types.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.js +52 -0
- package/lib/types/agent/backend-manifest.d.ts +152 -0
- package/lib/types/agent/backend-manifest.d.ts.map +1 -0
- package/lib/types/agent/backend-manifest.js +14 -0
- package/lib/types/agent/backend.d.ts +71 -5
- package/lib/types/agent/backend.d.ts.map +1 -1
- package/lib/types/agent/capabilities.d.ts +6 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -1
- package/lib/types/agent/index.d.ts +2 -0
- package/lib/types/agent/index.d.ts.map +1 -1
- package/lib/types/agent/refs.d.ts +11 -1
- package/lib/types/agent/refs.d.ts.map +1 -1
- package/lib/types/agent/starting-session.d.ts +4 -0
- package/lib/types/agent/starting-session.d.ts.map +1 -0
- package/lib/types/agent/starting-session.js +19 -0
- package/lib/types/backends/claude/activity.d.ts +1 -1
- package/lib/types/backends/claude/activity.d.ts.map +1 -1
- package/lib/types/backends/claude/activity.js +5 -5
- package/lib/types/backends/claude/auth.d.ts.map +1 -1
- package/lib/types/backends/claude/auth.js +10 -3
- package/lib/types/backends/claude/backend.d.ts.map +1 -1
- package/lib/types/backends/claude/backend.js +103 -29
- package/lib/types/backends/claude/catalog.d.ts +2 -1
- package/lib/types/backends/claude/catalog.d.ts.map +1 -1
- package/lib/types/backends/claude/catalog.js +15 -5
- package/lib/types/backends/claude/channels.d.ts +5 -3
- package/lib/types/backends/claude/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/channels.js +5 -4
- package/lib/types/backends/claude/contract.d.ts +4 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -1
- package/lib/types/backends/claude/contract.js +4 -0
- package/lib/types/backends/claude/controls.d.ts +4 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -1
- package/lib/types/backends/claude/controls.js +34 -42
- package/lib/types/backends/claude/dialogs.d.ts +8 -2
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -1
- package/lib/types/backends/claude/dialogs.js +24 -16
- package/lib/types/backends/claude/images.d.ts +1 -1
- package/lib/types/backends/claude/images.d.ts.map +1 -1
- package/lib/types/backends/claude/images.js +7 -7
- package/lib/types/backends/claude/manifest.d.ts +21 -0
- package/lib/types/backends/claude/manifest.d.ts.map +1 -0
- package/lib/types/backends/claude/manifest.js +29 -0
- package/lib/types/backends/claude/older-history.js +2 -2
- package/lib/types/backends/claude/permissions.js +11 -11
- package/lib/types/backends/claude/prefs.d.ts +4 -2
- package/lib/types/backends/claude/prefs.d.ts.map +1 -1
- package/lib/types/backends/claude/prefs.js +4 -3
- package/lib/types/backends/claude/process.d.ts +16 -4
- package/lib/types/backends/claude/process.d.ts.map +1 -1
- package/lib/types/backends/claude/process.js +100 -37
- package/lib/types/backends/claude/send-message.d.ts +1 -1
- package/lib/types/backends/claude/send-message.d.ts.map +1 -1
- package/lib/types/backends/claude/session/auth.js +22 -22
- package/lib/types/backends/claude/session/channels.d.ts +4 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/session/channels.js +5 -3
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -1
- package/lib/types/backends/claude/session/lifecycle.js +31 -23
- package/lib/types/backends/claude/session/store.js +8 -8
- package/lib/types/backends/claude/session/subagents.js +2 -2
- package/lib/types/backends/claude/session/types.d.ts +7 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -1
- package/lib/types/backends/claude/side-query.js +3 -3
- package/lib/types/backends/claude/task-output.js +5 -5
- package/lib/types/backends/claude/text.d.ts +778 -0
- package/lib/types/backends/claude/text.d.ts.map +1 -0
- package/lib/types/backends/claude/text.js +298 -0
- package/lib/types/backends/claude/transcript-file.d.ts +1 -1
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -1
- package/lib/types/backends/claude/transcript-file.js +4 -4
- package/lib/types/backends/claude/translate/attempts.js +2 -2
- package/lib/types/backends/claude/translate/core.js +3 -3
- package/lib/types/backends/claude/translate/messages.js +4 -4
- package/lib/types/backends/claude/translate/system.js +14 -14
- package/lib/types/backends/claude/translate/tasks.js +2 -2
- package/lib/types/backends/claude/translate/types.d.ts +1 -1
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -1
- package/lib/types/backends/codex/auth/external-tokens.js +16 -16
- package/lib/types/backends/codex/auth/status.js +14 -14
- package/lib/types/backends/codex/backend.d.ts +4 -19
- package/lib/types/backends/codex/backend.d.ts.map +1 -1
- package/lib/types/backends/codex/backend.js +118 -25
- package/lib/types/backends/codex/catalog.d.ts +2 -1
- package/lib/types/backends/codex/catalog.d.ts.map +1 -1
- package/lib/types/backends/codex/catalog.js +63 -18
- package/lib/types/backends/codex/channels.d.ts +6 -3
- package/lib/types/backends/codex/channels.d.ts.map +1 -1
- package/lib/types/backends/codex/channels.js +15 -13
- package/lib/types/backends/codex/detect.d.ts.map +1 -1
- package/lib/types/backends/codex/detect.js +9 -6
- package/lib/types/backends/codex/manifest.d.ts +30 -0
- package/lib/types/backends/codex/manifest.d.ts.map +1 -0
- package/lib/types/backends/codex/manifest.js +23 -0
- package/lib/types/backends/codex/prefs.d.ts +4 -2
- package/lib/types/backends/codex/prefs.d.ts.map +1 -1
- package/lib/types/backends/codex/prefs.js +4 -3
- package/lib/types/backends/codex/rpc/hub.js +2 -2
- package/lib/types/backends/codex/session/activity.d.ts +1 -1
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -1
- package/lib/types/backends/codex/session/activity.js +13 -13
- package/lib/types/backends/codex/session/approvals.js +30 -30
- package/lib/types/backends/codex/session/commands.d.ts +8 -2
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -1
- package/lib/types/backends/codex/session/commands.js +71 -23
- package/lib/types/backends/codex/session/controls.d.ts +1 -1
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -1
- package/lib/types/backends/codex/session/controls.js +21 -16
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -1
- package/lib/types/backends/codex/session/goals.js +3 -3
- package/lib/types/backends/codex/session/history.js +2 -2
- package/lib/types/backends/codex/session/images.js +8 -8
- package/lib/types/backends/codex/session/input.d.ts +6 -2
- package/lib/types/backends/codex/session/input.d.ts.map +1 -1
- package/lib/types/backends/codex/session/input.js +55 -13
- package/lib/types/backends/codex/session/plan-review.js +6 -6
- package/lib/types/backends/codex/session/session.d.ts.map +1 -1
- package/lib/types/backends/codex/session/session.js +66 -34
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -1
- package/lib/types/backends/codex/session/side-query.js +27 -9
- package/lib/types/backends/codex/session/state.d.ts +6 -1
- package/lib/types/backends/codex/session/state.d.ts.map +1 -1
- package/lib/types/backends/codex/session/subagents.js +5 -5
- package/lib/types/backends/codex/session/tasks.js +4 -4
- package/lib/types/backends/codex/text.d.ts +933 -0
- package/lib/types/backends/codex/text.d.ts.map +1 -0
- package/lib/types/backends/codex/text.js +313 -0
- package/lib/types/backends/codex/translate/items.js +4 -4
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/live.js +11 -8
- package/lib/types/backends/codex/translate/notices.js +10 -10
- package/lib/types/backends/shared/channel-slug.d.ts +4 -0
- package/lib/types/backends/shared/channel-slug.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-slug.js +25 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -1
- package/lib/types/backends/shared/channel-tokens.js +30 -23
- package/lib/types/{channel → backends/shared}/elicitation.d.ts +78 -21
- package/lib/types/backends/shared/elicitation.d.ts.map +1 -0
- package/lib/types/{channel → backends/shared}/elicitation.js +64 -66
- package/lib/types/backends/shared/image-size.d.ts +33 -0
- package/lib/types/backends/shared/image-size.d.ts.map +1 -0
- package/lib/types/backends/shared/image-size.js +134 -0
- package/lib/types/{utils → backends/shared}/jsonl.d.ts +5 -1
- package/lib/types/backends/shared/jsonl.d.ts.map +1 -0
- package/lib/types/{utils → backends/shared}/jsonl.js +5 -1
- package/lib/types/backends/shared/localized-text.d.ts +30 -0
- package/lib/types/backends/shared/localized-text.d.ts.map +1 -0
- package/lib/types/backends/shared/localized-text.js +24 -0
- package/lib/types/backends/shared/platform-text.d.ts +88 -0
- package/lib/types/backends/shared/platform-text.d.ts.map +1 -0
- package/lib/types/backends/shared/platform-text.js +33 -0
- package/lib/types/branding.d.ts +13 -0
- package/lib/types/branding.d.ts.map +1 -1
- package/lib/types/branding.js +18 -0
- package/lib/types/channel/channel-slug.d.ts +3 -1
- package/lib/types/channel/channel-slug.d.ts.map +1 -1
- package/lib/types/channel/channel-slug.js +3 -1
- package/lib/types/channel/sanitize.d.ts +7 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -1
- package/lib/types/channel/sanitize.js +9 -0
- package/lib/types/channel/usage.d.ts.map +1 -1
- package/lib/types/channel/usage.js +5 -0
- package/lib/types/commands.d.ts +5 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +47 -8
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -1
- package/lib/types/components/AgentMessageComposer.js +3 -2
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +4 -2
- package/lib/types/components/Chat/JobCard.js +3 -3
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -6
- package/lib/types/components/ContextBarView.d.ts +5 -1
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +6 -3
- package/lib/types/components/ExtensionDialog.d.ts.map +1 -1
- package/lib/types/components/ExtensionDialog.js +2 -3
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +14 -3
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/KernelPicker.d.ts.map +1 -1
- package/lib/types/components/KernelPicker.js +1 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +9 -6
- package/lib/types/components/MarkdownTable.d.ts.map +1 -1
- package/lib/types/components/MarkdownTable.js +4 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +18 -5
- package/lib/types/components/ModelPicker.d.ts +24 -31
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +115 -40
- package/lib/types/components/PromptEditor.d.ts +3 -3
- package/lib/types/components/PromptInput.d.ts +21 -3
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +58 -118
- package/lib/types/components/SdkInstallWizard.d.ts +3 -1
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -1
- package/lib/types/components/SdkInstallWizard.js +8 -1
- package/lib/types/components/SearchBox.d.ts +13 -15
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +58 -27
- package/lib/types/components/ThemePicker.d.ts +1 -1
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +14 -11
- package/lib/types/components/Tooltip.js +1 -1
- package/lib/types/components/WorkingSpinner.js +1 -1
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -1
- package/lib/types/components/WorkspaceFlowPicker.js +4 -3
- package/lib/types/components/composerImageTokens.d.ts +24 -0
- package/lib/types/components/composerImageTokens.d.ts.map +1 -0
- package/lib/types/components/composerImageTokens.js +37 -0
- package/lib/types/components/design-system/InputCaret.d.ts +7 -0
- package/lib/types/components/design-system/InputCaret.d.ts.map +1 -0
- package/lib/types/components/design-system/InputCaret.js +9 -0
- package/lib/types/components/design-system/ListItem.d.ts +13 -2
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +11 -5
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +6 -8
- package/lib/types/components/kernelCatalog.d.ts +55 -11
- package/lib/types/components/kernelCatalog.d.ts.map +1 -1
- package/lib/types/components/kernelCatalog.js +42 -23
- package/lib/types/components/launchpadActions.d.ts +4 -0
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +5 -4
- package/lib/types/components/launchpadLayout.d.ts.map +1 -1
- package/lib/types/components/launchpadLayout.js +2 -2
- package/lib/types/components/messages/UserPromptMessage.d.ts +4 -3
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
- package/lib/types/components/messages/UserPromptMessage.js +4 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +4 -3
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -1
- package/lib/types/components/questions/ProviderModelEditor.js +3 -13
- package/lib/types/components/sessions/ForeignSessionRow.d.ts +3 -1
- package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -1
- package/lib/types/components/sessions/ForeignSessionRow.js +5 -2
- package/lib/types/components/sessions/SessionListRow.d.ts +3 -1
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
- package/lib/types/components/sessions/SessionListRow.js +5 -2
- package/lib/types/components/sidePanel/PanelBar.d.ts +1 -0
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +21 -17
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +2 -1
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts +6 -4
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelLayout.js +33 -7
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +4 -2
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +12 -4
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +59 -15
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +4 -2
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +12 -6
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
- package/lib/types/components/sidePanel/types.d.ts +1 -1
- package/lib/types/components/sidePanel/types.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.d.ts +2 -0
- package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.js +11 -1
- package/lib/types/components/splashFonts.d.ts +24 -1
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +40 -5
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +5 -2
- package/lib/types/dsh-adapter/admission-loader.d.ts +20 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
- package/lib/types/dsh-adapter/admission-loader.js +256 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +3 -0
- package/lib/types/dsh-adapter/backend-admission.d.ts +64 -0
- package/lib/types/dsh-adapter/backend-admission.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-admission.js +34 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts +26 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-contribution.js +37 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts +136 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-registry.js +285 -0
- package/lib/types/dsh-adapter/backends.d.ts +67 -24
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backends.generated.d.ts +12 -0
- package/lib/types/dsh-adapter/backends.generated.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.generated.js +6 -0
- package/lib/types/dsh-adapter/backends.js +92 -46
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +2 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +9 -3
- package/lib/types/dsh-adapter/channel/agent-view-projection.js +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +8 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +16 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +18 -46
- package/lib/types/dsh-adapter/channel/channel-host.d.ts +45 -0
- package/lib/types/dsh-adapter/channel/channel-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/channel-host.js +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +16 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +4 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +36 -5
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts +14 -0
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/cordis-host.js +35 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/actions.js +15 -6
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +3 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +12 -28
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/compose.js +318 -117
- package/lib/types/dsh-adapter/channel/core/files.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/files.js +1 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +12 -6
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/host.js +69 -35
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +5 -3
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/local-actions.js +5 -2
- package/lib/types/dsh-adapter/channel/core/session-controls.js +2 -2
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +7 -4
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/session-switch.js +8 -4
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.js +75 -16
- package/lib/types/dsh-adapter/channel/extensions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/extensions.js +41 -22
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +14 -5
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +4 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +205 -24
- package/lib/types/dsh-adapter/channel/mentions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +138 -8
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +40 -28
- package/lib/types/dsh-adapter/channel/model-selection.d.ts +17 -0
- package/lib/types/dsh-adapter/channel/model-selection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-selection.js +109 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +12 -21
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +39 -102
- package/lib/types/dsh-adapter/channel/projection.js +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/reports.js +11 -3
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +33 -20
- package/lib/types/dsh-adapter/channel/session-listing.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/session-listing.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-listing.js +51 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +3 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +56 -27
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +15 -8
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +38 -24
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +38 -24
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +1 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +37 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +14 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +66 -6
- package/lib/types/dsh-adapter/channel/task-completion.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/task-completion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/task-completion.js +114 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +1 -1
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts +81 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.js +138 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +9 -8
- package/lib/types/dsh-adapter/channel-ui.d.ts +3 -1
- package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel-ui.js +4 -2
- package/lib/types/dsh-adapter/channel.d.ts +2 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +19 -5
- package/lib/types/dsh-adapter/context-occupancy.d.ts +81 -4
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +108 -17
- package/lib/types/dsh-adapter/contract.d.ts +1 -1
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +15 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts +36 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -0
- package/lib/types/dsh-adapter/entry-slot.js +28 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts +22 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -0
- package/lib/types/dsh-adapter/fresh-agent.js +221 -0
- package/lib/types/dsh-adapter/host-access.d.ts +16 -1
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-access.js +53 -2
- package/lib/types/dsh-adapter/host-contract.d.ts +103 -0
- package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-contract.js +76 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts +106 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-dsh.js +466 -0
- package/lib/types/dsh-adapter/host-entry.d.ts +9 -0
- package/lib/types/dsh-adapter/host-entry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-entry.js +228 -0
- package/lib/types/dsh-adapter/index.d.ts +55 -18
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +59 -7
- package/lib/types/dsh-adapter/install/executors.d.ts +44 -0
- package/lib/types/dsh-adapter/install/executors.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/executors.js +15 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts +3 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.js +150 -0
- package/lib/types/dsh-adapter/jobs.d.ts +7 -0
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +13 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts +50 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts.map +1 -0
- package/lib/types/dsh-adapter/lite-profile.js +49 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +4 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -1
- package/lib/types/dsh-adapter/oauth/profiles.js +5 -1
- package/lib/types/dsh-adapter/panels.d.ts +7 -0
- package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
- package/lib/types/dsh-adapter/panels.js +35 -2
- package/lib/types/dsh-adapter/plugin-completions.d.ts +32 -0
- package/lib/types/dsh-adapter/plugin-completions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-completions.js +80 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts +21 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-declaration.js +53 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts +13 -2
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-host.js +34 -8
- package/lib/types/dsh-adapter/plugin-manager.d.ts +68 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manager.js +51 -0
- package/lib/types/dsh-adapter/plugin.d.ts +50 -1
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +870 -233
- package/lib/types/dsh-adapter/plugins-info.d.ts +44 -8
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +354 -34
- package/lib/types/dsh-adapter/process-exit.d.ts +43 -0
- package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -0
- package/lib/types/dsh-adapter/process-exit.js +60 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts +18 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/root-dispose.js +28 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts +20 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-list-metadata.js +56 -0
- package/lib/types/dsh-adapter/session-seed.d.ts +11 -0
- package/lib/types/dsh-adapter/session-seed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-seed.js +47 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts +3 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +11 -5
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts +0 -2
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/snapshot.js +7 -70
- package/lib/types/dsh-adapter/startup-args.d.ts +2 -0
- package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -1
- package/lib/types/dsh-adapter/startup-args.js +5 -0
- package/lib/types/dsh-adapter/subagents.d.ts +33 -1
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +110 -8
- package/lib/types/dsh-adapter/tui-settings.d.ts +57 -0
- package/lib/types/dsh-adapter/tui-settings.d.ts.map +1 -0
- package/lib/types/dsh-adapter/tui-settings.js +199 -0
- package/lib/types/effortPrefs.d.ts +6 -3
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +7 -4
- package/lib/types/hostEntryRoute.d.ts +18 -0
- package/lib/types/hostEntryRoute.d.ts.map +1 -0
- package/lib/types/hostEntryRoute.js +57 -0
- package/lib/types/i18n.d.ts +363 -1432
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +155 -385
- package/lib/types/ink/components/AlternateScreen.js +2 -2
- package/lib/types/ink/components/App.d.ts +1 -0
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +16 -4
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +9 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -1
- package/lib/types/ink/components/CursorDeclarationContext.js +2 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +2 -2
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-copy-on-select.js +13 -7
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +11 -3
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-declared-cursor.js +30 -10
- package/lib/types/ink/ink.d.ts +22 -17
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +151 -40
- package/lib/types/ink/kitty-graphics.d.ts +2 -0
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +6 -1
- package/lib/types/ink/node-cache.d.ts +2 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/output.d.ts +10 -4
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +14 -10
- package/lib/types/ink/render-node-to-output.d.ts +5 -2
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +27 -9
- package/lib/types/ink/renderer.d.ts +1 -0
- package/lib/types/ink/renderer.d.ts.map +1 -1
- package/lib/types/ink/renderer.js +4 -3
- package/lib/types/ink/root.d.ts +4 -1
- package/lib/types/ink/root.d.ts.map +1 -1
- package/lib/types/ink/screen.d.ts +4 -2
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/selection.d.ts +10 -1
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +94 -25
- package/lib/types/ink/stdin-handoff.d.ts +11 -0
- package/lib/types/ink/stdin-handoff.d.ts.map +1 -0
- package/lib/types/ink/stdin-handoff.js +20 -0
- package/lib/types/ink/styles.d.ts +2 -1
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +6 -4
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.js +16 -39
- package/lib/types/ink/terminal-notification.d.ts +8 -0
- package/lib/types/ink/terminal-notification.d.ts.map +1 -0
- package/lib/types/ink/terminal-notification.js +83 -0
- package/lib/types/ink/terminal.d.ts +9 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +34 -1
- package/lib/types/ink/termio/csi.d.ts +11 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -1
- package/lib/types/ink/termio/csi.js +13 -0
- package/lib/types/ink/update-overflow-guard.d.ts +6 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +17 -0
- package/lib/types/ink/wrap-text.d.ts +6 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +17 -0
- package/lib/types/kernelPrefs.d.ts +129 -16
- package/lib/types/kernelPrefs.d.ts.map +1 -1
- package/lib/types/kernelPrefs.js +98 -35
- package/lib/types/math/inline-layout.d.ts +2 -0
- package/lib/types/math/inline-layout.d.ts.map +1 -1
- package/lib/types/math/inline-layout.js +5 -27
- package/lib/types/modelGroups.d.ts +15 -27
- package/lib/types/modelGroups.d.ts.map +1 -1
- package/lib/types/modelGroups.js +17 -31
- package/lib/types/modelPrefs.d.ts +5 -4
- package/lib/types/modelPrefs.d.ts.map +1 -1
- package/lib/types/modelPrefs.js +5 -4
- package/lib/types/modelRoute.d.ts +23 -9
- package/lib/types/modelRoute.d.ts.map +1 -1
- package/lib/types/modelRoute.js +25 -11
- package/lib/types/permissionPrefs.d.ts +34 -0
- package/lib/types/permissionPrefs.d.ts.map +1 -0
- package/lib/types/permissionPrefs.js +61 -0
- package/lib/types/plugin-host.d.ts +1 -0
- package/lib/types/plugin-host.d.ts.map +1 -1
- package/lib/types/presetPrefs.d.ts +17 -3
- package/lib/types/presetPrefs.d.ts.map +1 -1
- package/lib/types/presetPrefs.js +20 -3
- package/lib/types/reload.d.ts +6 -10
- package/lib/types/reload.d.ts.map +1 -1
- package/lib/types/reload.js +14 -14
- package/lib/types/screens/Chat.d.ts +22 -15
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +442 -272
- package/lib/types/screens/Launchpad.d.ts +27 -17
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +241 -78
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +53 -12
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +6 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +24 -7
- package/lib/types/screens/StatusMetrics.d.ts +46 -1
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +72 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +8 -4
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -1
- package/lib/types/screens/chat/useKernelPicker.js +61 -21
- package/lib/types/screens/chat/useModelPicker.d.ts +42 -0
- package/lib/types/screens/chat/useModelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useModelPicker.js +182 -0
- package/lib/types/screens/chatOverlay.d.ts +11 -4
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +0 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +4 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +26 -5
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +51 -29
- package/lib/types/sessionHistory.d.ts +5 -0
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +5 -0
- package/lib/types/sessions/listSnapshot.d.ts +6 -0
- package/lib/types/sessions/listSnapshot.d.ts.map +1 -0
- package/lib/types/sessions/listSnapshot.js +67 -0
- package/lib/types/settings/definitions.d.ts +50 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +42 -8
- package/lib/types/terminal-utils/cjk-emphasis.d.ts +28 -0
- package/lib/types/terminal-utils/cjk-emphasis.d.ts.map +1 -0
- package/lib/types/terminal-utils/cjk-emphasis.js +31 -0
- package/lib/types/terminal-utils/markdown.d.ts +3 -1
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +7 -2
- package/lib/types/theme.d.ts +29 -12
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +310 -23
- package/lib/types/themeCatalog.d.ts.map +1 -1
- package/lib/types/themeCatalog.js +21 -2
- package/lib/types/tips.js +4 -4
- package/lib/types/tuiSettingsFile.d.ts +56 -0
- package/lib/types/tuiSettingsFile.d.ts.map +1 -0
- package/lib/types/tuiSettingsFile.js +206 -0
- package/lib/types/ui.d.ts +2 -0
- package/lib/types/ui.d.ts.map +1 -1
- package/lib/types/ui.js +2 -0
- package/lib/types/update.d.ts +72 -26
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +131 -43
- package/lib/types/utils/bmp.d.ts +7 -0
- package/lib/types/utils/bmp.d.ts.map +1 -1
- package/lib/types/utils/bmp.js +27 -0
- package/lib/types/utils/bootTrace.d.ts +2 -0
- package/lib/types/utils/bootTrace.d.ts.map +1 -0
- package/lib/types/utils/bootTrace.js +20 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +11 -3
- package/lib/types/utils/credentials.d.ts +14 -2
- package/lib/types/utils/credentials.d.ts.map +1 -1
- package/lib/types/utils/credentials.js +34 -11
- package/lib/types/utils/imageResize.d.ts +10 -20
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +61 -134
- package/lib/types/utils/inputPaste.d.ts +2 -2
- package/lib/types/utils/inputPaste.js +2 -2
- package/lib/types/utils/pastedImagePath.d.ts +5 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +33 -0
- package/package.json +36 -6
- package/presets/winbash.mjs +716 -0
- package/tui-profile/protocols/profile-definitions.d.ts +1 -0
- package/tui-profile/protocols/profile-definitions.js +14 -0
- package/tui-profile/protocols/tui-contributions.d.ts +55 -0
- package/tui-profile/protocols/tui-contributions.js +141 -0
- package/tui-profile/registry/contracts/backend-v1alpha1.json +13 -0
- package/tui-profile/registry/registry-0.15.json +12 -0
- package/lib/types/backends/claude/install.d.ts +0 -15
- package/lib/types/backends/claude/install.d.ts.map +0 -1
- package/lib/types/backends/claude/install.js +0 -91
- package/lib/types/channel/elicitation.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts +0 -42
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.js +0 -51
- package/lib/types/utils/jsonl.d.ts.map +0 -1
|
@@ -64,10 +64,13 @@ side panel (`Ctrl+B`/`Alt+Z`), subagent dashboard, show-all, and todo fold are r
|
|
|
64
64
|
- Plugins may also contribute one text line above the prompt, or a compact rich status view of up to three rows when the host exposes `tuiStatus.registerView`.
|
|
65
65
|
- Rich views receive only host `Box`, `Text`, `Image`, and terminal size. Click/hover/drag work in fullscreen, and the view never owns the keyboard.
|
|
66
66
|
- `Image` takes decoded RGBA pixels plus a same-size cell fallback.
|
|
67
|
-
- After a successful Kitty probe, the host
|
|
68
|
-
|
|
69
|
-
letterboxing
|
|
67
|
+
- After a successful Kitty probe, the host enlarges or downsamples the image to the
|
|
68
|
+
reserved cell box's physical pixels, preserving its aspect ratio with centered transparent
|
|
69
|
+
letterboxing. It uses terminal-reported cell geometry (or a conservative default) and
|
|
70
|
+
downsamples boxes that exceed the pixel budget. Otherwise it renders the fallback (including
|
|
70
71
|
inline, accessibility, and multiplexer sessions).
|
|
72
|
+
- The 16 MiB frame budget bounds both decoded sources and fitted rasters;
|
|
73
|
+
images over the budget keep their text fallback.
|
|
71
74
|
- Plugins provide the keyboard path for the same action through a slash command or `tuiShortcuts`.
|
|
72
75
|
- A refused rich registration returns `undefined`; an admitted one returns a disposer that removes both the view and its Cordis effect.
|
|
73
76
|
|
|
@@ -77,16 +80,16 @@ The startup **launchpad** and the **first-run wizard** each own the keyboard; bo
|
|
|
77
80
|
results back to the chat screen and add no new behavior.
|
|
78
81
|
|
|
79
82
|
- **Launchpad**: printable input goes into the input box (the prefix turns from `❯` to `⌘` when the line
|
|
80
|
-
starts with `/`), `Backspace`/`Delete`/`←`/`→`/`Home`/`End` edit it; the
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
and never occupies an extra cell or eats a character; `Alt+R` continues the most recent session
|
|
83
|
+
starts with `/`), `Backspace`/`Delete`/`←`/`→`/`Home`/`End` edit it; the **native terminal cursor**
|
|
84
|
+
inherits your terminal's shape, color, blinking, and enabled animation or trail effects.
|
|
85
|
+
Cursor movement never adds a cell or eats a character. Static rendering retains the
|
|
86
|
+
[theme-painted fallback](themes.en.md); `Alt+R` continues the most recent session
|
|
85
87
|
(= the first entry row slot, bound only on this screen, no-op when there is nothing to continue,
|
|
86
88
|
remappable in `/settings`);
|
|
87
89
|
a leading `/` opens the
|
|
88
90
|
**command palette** (the same data source and component as the chat composer: `↑`/`↓` move the selection,
|
|
89
|
-
`
|
|
91
|
+
`Tab` **completes** the selected command in the input box with the caret at the end,
|
|
92
|
+
`Enter`/click **run** it and clear the input, `Esc` dismisses only the palette and keeps the draft);
|
|
90
93
|
with the palette dismissed, `Enter` **sends** the line straight away (a leading `/` line — including
|
|
91
94
|
plugin/registry commands — goes through the chat page's merged command table and never reaches the model);
|
|
92
95
|
`↑`/`↓`/`Tab` walk the focus ring (input box → the four param segments under the box → the quick
|
|
@@ -126,13 +129,16 @@ results back to the chat screen and add no new behavior.
|
|
|
126
129
|
- **Corner plates**: the bottom-left working directory is **clickable** — it opens the existing
|
|
127
130
|
`/workspace` menu (rendered above the launchpad; `Esc` returns to the launchpad), keyboard path =
|
|
128
131
|
the focus ring's last slot + `Enter`, hover/focus = text highlight; the bottom-right plate starts
|
|
129
|
-
with `dsh-tui v<TUI>`, followed by one row for each
|
|
130
|
-
`▸ DSH · dsh-core v<kernel>` / `Claude · claude-code v<CLI
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
with `dsh-tui v<TUI>`, followed by one row for **each registered backend**:
|
|
133
|
+
`▸ DSH · dsh-core v<kernel>` / `Claude · claude-code v<CLI>` (then `Codex · codex-cli v<CLI>`, and any
|
|
134
|
+
installed plugin backend after it). The name is the backend manifest's short label; `▸` marks the
|
|
135
|
+
current kernel and the other rows stay dim; an unavailable kernel adds the reason after its version (such as *Not installed*
|
|
136
|
+
or *Too old · upgrade needed*), a row whose version cannot be read shows just the name, and *Checking…* shows
|
|
137
|
+
while the probe runs. Sign-in state never enters the plate — check it in the picker when switching (a signed-out
|
|
138
|
+
row is selectable, its subtitle says *Not signed in*). The whole block is clickable
|
|
139
|
+
and opens the same kernel picker (keyboard path =
|
|
140
|
+
focus ring + `Enter`). Every row ends flush at the same right edge, the cwd plate is top-aligned to the
|
|
141
|
+
first row, and narrow terminals truncate per the existing truncate-middle contract.
|
|
136
142
|
- **Wizard**: `←`/`→` change step (except the effort slider in step 3 and a drilled-in model list, where the
|
|
137
143
|
horizontal keys belong to the child control), `Tab` switches between the language/theme and
|
|
138
144
|
model/effort/workspace panes, `↑`/`↓` move the selection; `Enter` runs the step (step 1 = re-check
|
|
@@ -330,6 +336,7 @@ The four commands and the `⌸` entry at the head of the prompt row all open the
|
|
|
330
336
|
|
|
331
337
|
- The workspace rail (the durable registry) on the left.
|
|
332
338
|
- The sessions of the selected workspace on the right, every row carrying that session's live state.
|
|
339
|
+
- Focus starts on the most recently used session in the current workspace, ready for `Enter`; with no history, it starts on the new-session card.
|
|
333
340
|
|
|
334
341
|
They used to be three implementations that grew apart — a session browser, an agent view,
|
|
335
342
|
a workspace home — each listing the same session with its own selection model and its own
|
|
@@ -350,7 +357,7 @@ brings it back.
|
|
|
350
357
|
|
|
351
358
|
| Key | Action |
|
|
352
359
|
| --- | --- |
|
|
353
|
-
| `←` `→` | Choose the column that owns the keyboard (rail / sessions); exactly one `❯` is on screen |
|
|
360
|
+
| `←` `→` | Choose the column that owns the keyboard (rail / sessions), preserving the selected session in the same workspace; exactly one `❯` is on screen |
|
|
354
361
|
| `↑` `↓` / `PgUp` `PgDn` / wheel | Move in the rail; move in the session list (row 0 is the new-session card) |
|
|
355
362
|
| Type | Filter the selected workspace's sessions live (title, directory, branch, model) |
|
|
356
363
|
| `Enter` | Sessions: enter the row under the cursor (row 0 = start a session in this workspace). Rail: open that workspace's action menu |
|
|
@@ -361,6 +368,10 @@ brings it back.
|
|
|
361
368
|
| `Tab` / `Shift+Tab` | Next / previous source tab (when other agents have sessions) |
|
|
362
369
|
| `Esc` | Dismiss a notice → clear the filter → leave the screen |
|
|
363
370
|
|
|
371
|
+
Each workspace starts on its most recent visible session, or the new-session card if it has no matches. Changing columns or moving the mouse into the list preserves the current selection. Changing workspace chooses that workspace's newest session; returning chooses the newest again, without remembering past selections per workspace. Until you choose a list row, partial results, complete reads, and later refreshes keep following the newest visible session. After you select a session or the new-session card, refreshes preserve that choice.
|
|
372
|
+
|
|
373
|
+
The native cursor follows the last-used region, as in the model picker: workspace navigation parks it on the workspace row, session navigation on the session row or new-session card, and typing or clicking the filter on its text caret. Row carets hide after 0.5 seconds at rest; the search caret stays visible. Animation and trail effects come from your terminal settings. Narrow layouts keep the caret on a visible target when the workspace rail is hidden. Arrow and Enter actions keep the same meaning while filtering.
|
|
374
|
+
|
|
364
375
|
The right side of the title row is the **source strip**: `DSH │ Claude Code Codex …`.
|
|
365
376
|
|
|
366
377
|
- A tab appears only for another coding agent on this machine (Claude Code, Codex, Grok Build, zcode) that has conversations, in a fixed order; with none, there is no strip. Opening the screen only checks whether each source has any conversation; a source's list is read when its tab is opened.
|
|
@@ -491,9 +502,15 @@ A full-screen scene (no scrollback pollution) over the whole session timeline:
|
|
|
491
502
|
|
|
492
503
|
### Model and preset
|
|
493
504
|
|
|
494
|
-
`/model`
|
|
505
|
+
`/model` shows the model list and the highlighted model's reasoning effort on one page. DSH also has provider tabs, with **Recently used** first; opening records the current model as the latest use and moves it to the front without duplicates, initially focusing it when it is still in the catalog.
|
|
506
|
+
Codex and Claude show their complete model catalogs directly, without provider or recents tabs; the current model is initially focused when the catalog loads.
|
|
507
|
+
In DSH, `Tab` selects the next provider and `Shift+Tab` the previous one, wrapping at either end; all backends use `↑/↓` to select a model and `←/→` to adjust its effort.
|
|
508
|
+
The native terminal cursor follows the **region you used last**: `Tab`/`Shift+Tab` moves to the provider tab, `↑/↓` to the focused model's `❯`, and `←/→` to the effort level. Movement shows the terminal's original cursor shape, blinking, and enabled animation or trail effects; the cursor hides after **0.5 seconds at rest**, then reappears and restarts the timer on the next movement. Ordinary repaints do not extend this window; text input carets stay visible, and accessibility mode retains visible focus anchors. Clipped tabs or unavailable effort levels fall back to the model row. Inverse tabs and the `❯` pointer always remain visible, including in static rendering.
|
|
509
|
+
Confirmation submits only explicit effort drafts. Changing only the model leaves saved-effort validation to the backend; candidate defaults do not become new preferences. While the picker is open, `Ctrl+B` and `Alt+Z` still control the sidebar, and picker navigation stays with the model picker.
|
|
510
|
+
`Enter` applies the model and effort; `Esc` cancels the draft. Shortcuts sit below the title, and a separate effort heading and level strip sit below the models, with the `←/→` hint beside the effort heading. Selectable levels use the body text color and the current level is highlighted. DSH, Claude, and Codex use the terminal background while covering the text underneath.
|
|
511
|
+
Click tabs, models, and effort levels, then click **select** or **cancel** below the title; the wheel moves through the model list. When space above the input is tight, navigation hints, model descriptions and neighboring models are omitted, effort collapses to one row, and Select / Cancel stay at the bottom. With only two rows, effort is hidden too, keeping the focused model and actions visible.
|
|
495
512
|
|
|
496
|
-
|
|
513
|
+
`/model` selects the next request’s route within the same DSH session, preserving its ID, history, and title. Switching is refused during a running turn. The next request records the actual route and a model-change notice. Parked agents retain their selection when reattached. After the process exits, a choice with no subsequent request is saved only as a global default; disk resume resolves the last recorded request route. DSH versions before `0.1.2-alpha.3` refuse switching and prompt an upgrade so legacy subagents cannot silently use the original model.
|
|
497
514
|
|
|
498
515
|
- `/preset` switches in place only for a blank session. In a started session, the choice becomes the default for the next `/new` or launch.
|
|
499
516
|
|
|
@@ -604,8 +621,9 @@ In inline mode, the terminal emulator owns native scrollback and selection.
|
|
|
604
621
|
transcript behind an open overlay. Moves the cursor in the trajectory scene (±3 rows per
|
|
605
622
|
notch on the timeline, ±1 in hotspot; scrolls the detail while expanded). Walks the
|
|
606
623
|
focused row in /settings.
|
|
607
|
-
- **Drag** — Select text
|
|
608
|
-
notice pops up.
|
|
624
|
+
- **Drag** — Select text and copy on release, keeping the selection; a "Copied N characters"
|
|
625
|
+
notice pops up. A new selection replaces the retained one. With
|
|
626
|
+
`dsh-tui.scrollGutter: scrollbar`, the right-edge scrollbar is a drag
|
|
609
627
|
target: an unmodified left drag scrubs the transcript to the track position (same mapping
|
|
610
628
|
as a track click — drag to point), while `Shift`/`Alt`/`Ctrl`+drag still selects text (the
|
|
611
629
|
drag protocol opens only for unmodified left presses).
|
|
@@ -784,7 +802,7 @@ The command menu merges local commands with the DSH command registry. Type `/` t
|
|
|
784
802
|
|
|
785
803
|
**Account and policy**
|
|
786
804
|
|
|
787
|
-
- `/provider`, `/login`, `/logout`, `/permission`, `/add-dir`, `/hooks`, `/mcp`, `/
|
|
805
|
+
- `/provider`, `/login`, `/logout`, `/permission`, `/add-dir`, `/hooks`, `/mcp`, `/plugin` — `list` shows the plugins you added (the installation-supplied bundles stay out); `check <path>` validates a plugin manifest, `info <id>` describes an installed entry or an install spec, `registries` lists where installations ask; bare `/plugin` gives the full diagnostics (reserved for the plugin management panel).
|
|
788
806
|
- After `/auth login deepseek-account` or `/provider` signs in, a Platform-confirmed, unshown login bonus appears with its amount and expiry as a “Whale coupon” in the whale-maid dialog; Enter/Esc closes it.
|
|
789
807
|
|
|
790
808
|
**Skills**
|
|
@@ -796,7 +814,7 @@ The command menu merges local commands with the DSH command registry. Type `/` t
|
|
|
796
814
|
- `/update`, `/vim` — vim editing mode toggle, see "Editing keys".
|
|
797
815
|
- `/terminal-setup`, `/connect`, `/help`, `/exit` — aliases `/quit`, `/q`.
|
|
798
816
|
- `/kernel` — opens the kernel picker (the current kernel is ticked; every row
|
|
799
|
-
carries a version and a one-line explanation), on DSH and Claude sessions alike.
|
|
817
|
+
carries a version and a one-line explanation), on DSH, Codex and Claude sessions alike.
|
|
800
818
|
Picking the other kernel remembers it and restarts into it with a new session;
|
|
801
819
|
the old session stays in `/resume`, and if the new session fails to start you
|
|
802
820
|
are back on the old one. A running turn blocks the switch. The launchpad's
|
|
@@ -805,6 +823,11 @@ The command menu merges local commands with the DSH command registry. Type `/` t
|
|
|
805
823
|
a later direct launch follows the flag. A fresh launch lands on the launchpad
|
|
806
824
|
whichever kernel is remembered; a launch with a resume target goes straight
|
|
807
825
|
into the session.
|
|
826
|
+
- `/dsh`, `/codex`, `/claude` — directly choose the named kernel through the same
|
|
827
|
+
checks and restart flow as `/kernel`. Choosing the current kernel only reports
|
|
828
|
+
that it is already current; a running turn blocks switching. Missing Claude
|
|
829
|
+
opens the install wizard; missing or outdated Codex shows install/upgrade guidance.
|
|
830
|
+
These shortcuts also work before startup is ready.
|
|
808
831
|
|
|
809
832
|
**Registry**
|
|
810
833
|
|
|
@@ -829,7 +852,7 @@ Additional forms:
|
|
|
829
852
|
- `/model` opens a two-level picker:
|
|
830
853
|
- A pinned **Recently used** group first — the last 10 switched models, persisted at `~/.dsh-tui/model-recents.json` — then provider groups.
|
|
831
854
|
- `Enter` drills into a group's models, and a single provider with no recents skips straight to the list.
|
|
832
|
-
- Switching
|
|
855
|
+
- Switching keeps the current session and history; the new model is used for the next request.
|
|
833
856
|
- `/theme <name>` and `/theme status` are described in the theme guide.
|
|
834
857
|
- `/permission` reads the DSH `permissionPresets` registry, preserving registry order for
|
|
835
858
|
the picker, completion and the `Shift+Tab` cycle. Third-party presets need no TUI
|
|
@@ -842,6 +865,16 @@ Additional forms:
|
|
|
842
865
|
path (the same handler, real events) and confirms via event/readback. When neither is
|
|
843
866
|
available, it fails loudly instead of sending the input to the model.
|
|
844
867
|
- Exiting plan mode restores the pre-plan atoms first, then the durable preset you were on before plan mode (while the registry still offers it).
|
|
868
|
+
- The DSH `/permission` pick is persisted the same way at `~/.dsh-tui/permission.json`: every durable
|
|
869
|
+
preset switch teaches it (picker, typed command, Shift+Tab static mode, or a switch the official
|
|
870
|
+
command performed on its own), and a session that never customized its permission planes starts on
|
|
871
|
+
the remembered preset — applied through the same official switch path. "Never customized" means the
|
|
872
|
+
USER never touched it: the composition itself writes its default preset into every fresh session at
|
|
873
|
+
creation (`dsh-permission-presets`' `session/created` → `pinInitialPermission`), and those events are
|
|
874
|
+
not a user choice — only a session that ran a turn, or whose identity is not the composition default,
|
|
875
|
+
keeps its own planes. Plan-mode transients are excluded (entering plan keeps the pre-plan memory; the
|
|
876
|
+
exit restore teaches it again), `DSH_PERMISSION_MODE` is this launch's initial permission plane and
|
|
877
|
+
outranks the file when set, and an identity the mounted roster no longer offers is skipped.
|
|
845
878
|
- When the registry service is absent, TUI uses its legacy three-row compatibility roster; a mounted but broken service is unavailable and fails closed.
|
|
846
879
|
- Non-DSH backends (Claude) that declare native permission modes answer
|
|
847
880
|
`/permission` with that backend's own modes: `default` (ask before each risky
|
|
@@ -60,8 +60,9 @@
|
|
|
60
60
|
- 富状态最多三行,只能用宿主的 `Box`、`Text`、`Image` 与终端尺寸。
|
|
61
61
|
- 点击/悬停/拖动只在 fullscreen 下生效,不会取得键盘。
|
|
62
62
|
- `Image` 接收已解码 RGBA,另有同尺寸字符回退。
|
|
63
|
-
- 探测到 Kitty graphics
|
|
64
|
-
-
|
|
63
|
+
- 探测到 Kitty graphics 时,按终端报告的单元格像素将图像等比放大或缩小到预留格子盒,并居中留透明边。
|
|
64
|
+
- 像素比例不可用时用保守默认值;超出像素预算时降采样。
|
|
65
|
+
- 整帧 16 MiB 预算同时约束原图与放大后的栅格;超限图片显示文字回退。
|
|
65
66
|
- 否则自动显示回退内容(inline、辅助功能、多路复用器同样如此)。
|
|
66
67
|
|
|
67
68
|
同一动作的键盘路径由插件另提供 slash 命令,或注册 `tuiShortcuts`。
|
|
@@ -74,12 +75,11 @@
|
|
|
74
75
|
启动**落地页**与**首次引导向导**各自独占键盘;两者都只把结果交回对话页,不新增行为。
|
|
75
76
|
|
|
76
77
|
- **落地页**:可打印字符接进输入框(行首 `/` 时前缀由 `❯` 变 `⌘`),`Backspace`/`Delete`/`←`/`→`/`Home`/`End` 编辑;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
键时改用该填充色的实色块配对比字形,见[主题系统](themes.md)),闪烁是纯样式切换
|
|
80
|
-
(inverse ↔ 常规,约 550ms 一相位),绝不另起一格、绝不吃掉字符;`Alt+R` 继续最近一条会话
|
|
78
|
+
输入使用**终端原生光标**,形状、颜色、闪烁及已启用的动画或拖尾继承终端设置;
|
|
79
|
+
光标移动不增删字符。静态呈现保留[主题绘制的光标回退](themes.md);`Alt+R` 继续最近一条会话
|
|
81
80
|
(= 入口行第一格「继续「…」」,仅此屏生效,无可继续会话时无动作,键位可在 `/settings` 改);
|
|
82
|
-
|
|
81
|
+
行首 `/` 弹出**命令补全面板**(数据与组件与聊天页同源:`↑`/`↓` 移选中,`Tab` **补全**选中命令到输入框、光标移到末尾,
|
|
82
|
+
`Enter`/点击**执行**并清空输入,`Esc` 只收面板、草稿不动);面板收起后 `Enter` 直接**发送**这一行(行首 `/` 的命令——含
|
|
83
83
|
插件/registry 命令——按对话页同一条合并命令表判定,是命令就不发模型);
|
|
84
84
|
`↑`/`↓`/`Tab` 沿焦点环走(输入框 → 框下参数行四段 → 快捷入口行 → Tips 行),`Enter` 激活焦点上的那一条
|
|
85
85
|
(焦点在 Tips 行上 `Enter` = 切下一条 Tip),在入口/参数段上敲字会把焦点收回输入框;有字时 `Esc` 只清空,
|
|
@@ -105,11 +105,13 @@
|
|
|
105
105
|
还会**自动轮换**(约 10s 一换,手动切换后计时重置),切换只改文本、行高与居中位置不变。
|
|
106
106
|
- **双角铭牌**:左下角工作目录**可点**——点开既有的 `/workspace` 菜单
|
|
107
107
|
(盖在落地页之上、`Esc` 回落地页),键盘路径 = 焦点环末格 + `Enter`,悬停/焦点 =
|
|
108
|
-
文字高亮;右下角第一行是 `dsh-tui v<TUI
|
|
109
|
-
`▸ DSH · dsh-core v<内核>` / `Claude · claude-code v<CLI
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
文字高亮;右下角第一行是 `dsh-tui v<TUI>`,其下**每个已注册后端各占一行**:
|
|
109
|
+
`▸ DSH · dsh-core v<内核>` / `Claude · claude-code v<CLI>`(还有 `Codex · codex-cli v<CLI>`,
|
|
110
|
+
装了插件后端就再往后排)。名字取该后端 manifest 的短品牌名,`▸` 标出当前内核,其余行暗色;
|
|
111
|
+
不可用的内核在版本后写原因(如「未安装」「版本过旧 · 需升级」),读不到版本时只写名字,检测期间显示
|
|
112
|
+
「检测中…」;**登录状态不进铭牌**——要切内核时在选择器里看(未登录行可选,副标题标注「未登录」)。
|
|
113
|
+
整块可点,打开同一个内核选择器(键盘路径 = 焦点环 + `Enter`)。
|
|
114
|
+
各行右端贴齐同一条右边界,左下目录铭牌与第一行顶对齐,窄屏按既有 truncate-middle 截断。
|
|
113
115
|
- **引导向导**:`←`/`→` 换步骤(例外:第三步的强度区、以及已钻进去的模型列表,横向键归子控件,不换步骤)、
|
|
114
116
|
`Tab` 在「语言 / 主题」与「模型 / 强度 / 工作区」两组面板间切、`↑`/`↓` 移动选择;
|
|
115
117
|
`Enter` 执行这一步(第一步 = 重新检查连通性,第三步 = 钻进 provider / 换模型 / 打开工作区选择器——**强度不走 Enter**,只用 `←`/`→` 调且移动即生效);
|
|
@@ -322,6 +324,7 @@ Bracketed paste(右键或终端原生粘贴)保留普通文本与换行。
|
|
|
322
324
|
四条命令和输入框行首的 `⌸` 按钮打开的是**同一个界面**。
|
|
323
325
|
|
|
324
326
|
- 左边是工作区(durable registry)栏,右边是所选工作区里的会话列表。
|
|
327
|
+
- 默认聚焦当前工作区最近使用的会话,`Enter` 直接进入;没有历史时聚焦“新建会话”卡片。
|
|
325
328
|
- 每行带该会话的实时状态。
|
|
326
329
|
- 原来是三个各自演化的实现(会话浏览器 / 会话总览 / 工作区首页)。
|
|
327
330
|
- 同一个会话会被三个界面各自列出、各自定义"打开"的含义。
|
|
@@ -343,7 +346,7 @@ Bracketed paste(右键或终端原生粘贴)保留普通文本与换行。
|
|
|
343
346
|
|
|
344
347
|
| 按键 | 作用 |
|
|
345
348
|
| --- | --- |
|
|
346
|
-
| `←` `→` | 切换键盘所在栏(工作区栏 /
|
|
349
|
+
| `←` `→` | 切换键盘所在栏(工作区栏 / 会话栏),同一工作区保留会话选择,屏幕上永远只有一个 `❯` |
|
|
347
350
|
| `↑` `↓` / `PgUp` `PgDn` / 滚轮 | 在工作区栏移动工作区;在会话栏移动会话(第 0 行是"新建会话"卡片) |
|
|
348
351
|
| 直接输入 | 实时筛选当前工作区下的会话(标题、目录、分支、模型) |
|
|
349
352
|
| `Enter` | 会话栏:进入光标所在行(第 0 行 = 在该工作区新建会话);工作区栏:打开该工作区的操作菜单 |
|
|
@@ -365,6 +368,10 @@ Bracketed paste(右键或终端原生粘贴)保留普通文本与换行。
|
|
|
365
368
|
- 外部标签下 `Ctrl+N`、`Ctrl+X`、固定不生效;`Ctrl+L` 改为重新扫描该来源。
|
|
366
369
|
- 导入与 `/migrate` 用同一套解析和确定性 id,两个入口导入同一条会话得到的是同一个 DSH 会话。
|
|
367
370
|
|
|
371
|
+
每个工作区默认选中当前可见的最新会话,没有匹配会话时落在“新建会话”卡片。左右切栏或鼠标移入列表不会重置选择;换工作区时选中该工作区最新会话,返回之前的工作区时也重新选最新会话,不记忆各工作区的旧选择。尚未主动选择列表行时,首批结果、完整读取和后续刷新都会跟随最新可见会话;主动选择会话行或“新建会话”后,刷新保持该选择。
|
|
372
|
+
|
|
373
|
+
原生光标与模型选择器一样跟随最后操作的区域:导航工作区时停在工作区行,导航会话时停在会话行或“新建会话”卡片,输入或点击筛选框时移到文本光标。行光标停稳 0.5 秒后隐藏,搜索光标保持可见;动画与拖尾沿用终端设置。窄屏隐藏工作区栏后,光标会回落到可见位置。筛选期间方向键与 Enter 的作用保持一致。
|
|
374
|
+
|
|
368
375
|
工作区栏的菜单有四项:
|
|
369
376
|
|
|
370
377
|
- **编辑**:选中该工作区,右侧列出它的会话。
|
|
@@ -504,10 +511,15 @@ Windows `dsh-tui.cmd --resume` 使用 `~/.dsh-tui/resume.txt` 中最后选择的
|
|
|
504
511
|
|
|
505
512
|
### Model 与 preset
|
|
506
513
|
|
|
507
|
-
`/model`
|
|
514
|
+
`/model` 在同一页展示模型列表与当前高亮模型的推理等级。DSH 额外显示提供商标签,首个为「最近使用」;打开时将当前模型记为最近一次使用并去重置顶,目录中仍可选的当前模型排在第一项并默认高亮。
|
|
515
|
+
Codex 与 Claude 直接展示完整模型目录,不显示提供商或最近使用标签;目录加载后默认高亮当前模型。
|
|
516
|
+
DSH 中 `Tab` 切到下一个提供商,`Shift+Tab` 切到上一个,首尾循环;所有后端均用 `↑/↓` 选择模型、`←/→` 调整推理等级。
|
|
517
|
+
终端原生光标跟随**最后操作的区域**:`Tab`/`Shift+Tab` 移到提供商标签,`↑/↓` 移到聚焦模型的 `❯`,`←/→` 移到推理档位。移动时显示终端原本的光标形状、闪烁及已启用的动画或拖尾;停稳 **0.5 秒后隐藏**,再次移动时重新显示并计时。普通重绘不延长显示时间,输入框光标继续常显;无障碍模式保留可见焦点锚点。标签被裁剪或档位区不可见时回落到模型行。反色标签与 `❯` 始终保留,静态呈现也沿用这些焦点标记。
|
|
518
|
+
确认时仅提交用户显式调整的推理草稿;只换模型时由后端沿用或校验保存的推理偏好,候选模型的默认档位不会写成新的偏好。模型选择器打开时,`Ctrl+B` 与 `Alt+Z` 仍控制侧栏,其余选择器按键由模型选择器消费。
|
|
519
|
+
`Enter` 确认模型与等级,`Esc` 取消草稿。操作提示放在标题下,推理区在模型列表下独立显示标题与档位,`←/→` 提示紧贴推理标题;可选档位使用正文色,当前档位高亮。DSH、Claude、Codex 均沿用终端背景,并遮住底层文字。
|
|
520
|
+
鼠标点击标签、模型和档位后,可点击标题下的「选择」应用或「取消」退出;滚轮在模型列表中移动。输入框上方空间不足时,省略导航提示、隐藏模型描述及邻项、合并推理区为一行,并把「选择 / 取消」保留在底部;仅剩两行时再隐藏推理行,保留聚焦模型与操作入口。
|
|
508
521
|
|
|
509
|
-
|
|
510
|
-
- 还没有人说过话的会话不记分支:此时换模型得到的是一个不写 `parentSession` 的独立会话(继承同一份会话脚手架前缀),这样你随后打的第一个真实 prompt 仍能触发自动生成会话标题;已经对话过的会话照旧记血缘。
|
|
522
|
+
`/model` 通过 DSH 的请求路由选择机制在同一会话内切换模型,保留 session ID、历史和标题。运行中的回合不能切换。下一次请求会记录实际使用的模型与模型变化提示;停放中的 agent 保留所选路由,返回该会话时也会保留;退出进程后,尚未发出请求的选择仅作为全局默认保存,从磁盘恢复仍按最后一次实际请求的路由解析。DSH 低于 `0.1.2-alpha.3` 时拒绝切换并提示升级,避免旧版子代理继续使用原模型。
|
|
511
523
|
|
|
512
524
|
`/preset` 只允许空白会话原地切换。
|
|
513
525
|
|
|
@@ -619,7 +631,7 @@ dsh-tui 不修改 `~/.claude/settings.json`;会话启动时若其中的 `ANTHR
|
|
|
619
631
|
- 浮层打开时不穿透滚动背后转录。
|
|
620
632
|
- 轨迹场景移动光标(时间线一格 ±3 行、热点 ±1 行、详情展开时滚详情)。
|
|
621
633
|
- 设置屏移动焦点行。
|
|
622
|
-
-
|
|
634
|
+
- **拖拽**:选择文本,松开后立即复制并保留选区,弹出「已复制 N 字符」提示;重新拖选会替换现有选区。
|
|
623
635
|
- `dsh-tui.scrollGutter: scrollbar` 时,右缘滚动条是拖拽目标。
|
|
624
636
|
- 未修饰左键按住拖动,按轨道位置连续滚动(与点击轨道同一映射:拖到哪滚到哪)。
|
|
625
637
|
- `Shift`/`Alt`/`Ctrl`+拖动仍是选字(拖拽协议只对无修饰左键开启)。
|
|
@@ -792,7 +804,7 @@ Claude 后端的审批来自 CLI:CLI 给出建议时多一个「始终允许
|
|
|
792
804
|
|
|
793
805
|
- `/provider`、`/login`、`/logout`、`/permission`、`/add-dir`、`/hooks`、`/mcp`。
|
|
794
806
|
- `/auth login deepseek-account` 或 `/provider` 完成 DeepSeek 登录后,若 Platform 返回尚未展示的登录赠金,鲸鱼女仆娘弹窗会显示“鲸鱼券”的金额与到期时间;按 Enter/Esc 关闭。
|
|
795
|
-
- `/
|
|
807
|
+
- `/plugin`:`list` 简洁列出你装的额外插件(不含安装自带);`check <路径>` 校验插件清单、`info <id>` 查已装条目或待装 spec、`registries` 列安装源;无参 `/plugin` 给完整诊断(预留为插件管理面板)。
|
|
796
808
|
|
|
797
809
|
**Skills**
|
|
798
810
|
|
|
@@ -802,11 +814,14 @@ Claude 后端的审批来自 CLI:CLI 给出建议时多一个「始终允许
|
|
|
802
814
|
**其他**
|
|
803
815
|
|
|
804
816
|
- `/update`、`/vim`(vim 编辑模式开关,见「输入编辑」)、`/terminal-setup`、`/connect`、`/help`。
|
|
805
|
-
- `/kernel`:打开内核选择器(当前内核打勾,每行带版本与一句说明),在 DSH 与 Claude 会话里都可用。
|
|
817
|
+
- `/kernel`:打开内核选择器(当前内核打勾,每行带版本与一句说明),在 DSH、Codex 与 Claude 会话里都可用。
|
|
806
818
|
选中另一个内核会记住选择并重启进入它,在新内核里开新会话;原会话仍可在 `/resume` 找到,新会话
|
|
807
819
|
启动失败时回到原会话。回合进行中不能切换。启动页的「内核」入口与右下角内核区打开的是同一个
|
|
808
820
|
选择器。用 `--backend` 或配置行指定了内核时,本次按选择重启,之后直接启动仍按参数。全新启动
|
|
809
821
|
不论记住的是哪个内核都先到启动页,带恢复目标的启动直接进入会话。
|
|
822
|
+
- `/dsh`、`/codex`、`/claude`:直接选择对应内核,沿用 `/kernel` 的检查与重启流程。
|
|
823
|
+
选择当前内核只提示「已经是当前内核」;回合运行中不能切换。未安装 Claude 时打开安装向导;
|
|
824
|
+
Codex 未安装或版本过旧时显示安装/升级提示。启动尚未就绪时也可使用这三个命令。
|
|
810
825
|
- `/exit`(别名 `/quit`、`/q`)。
|
|
811
826
|
|
|
812
827
|
**注册表**
|
|
@@ -839,6 +854,14 @@ dsh-TUI 不预装通用技能;技能内容与发现规则由 DSH 及当前组
|
|
|
839
854
|
- registry 服务缺失时 TUI 使用三项 legacy 兼容名册。
|
|
840
855
|
- 服务已挂载但损坏、为空或不一致时标记 unavailable 并 fail closed。
|
|
841
856
|
- 退出计划模式先恢复进入前的 sandbox/approval,再还原进入前所在的权限预设(registry 仍提供时)。
|
|
857
|
+
- DSH 的 `/permission` 选择以同样方式存进 `~/.dsh-tui/permission.json`:任何一次持久的预设切换
|
|
858
|
+
(选择器、手敲命令、Shift+Tab 静态模式、官方命令自行完成的切换)都会更新它;从未自定义过
|
|
859
|
+
权限面的会话按记住的预设启动,走同一条官方切换路径。这里的"从未自定义"以**用户是否动过**为准:
|
|
860
|
+
合成层自己会在每个新会话创建时写入默认预设(`dsh-permission-presets` 的 `session/created` →
|
|
861
|
+
`pinInitialPermission`),那三个事件不算用户选择——只有跑过回合、或身份不是合成默认预设的
|
|
862
|
+
会话才保有自己的权限面。计划模式的临时切换不记入(进入计划保持计划前的记忆、退出还原后再次
|
|
863
|
+
记入);`DSH_PERMISSION_MODE` 是本次启动的初始权限面,显式设置时优先于该文件;名册已不提供
|
|
864
|
+
的身份会被跳过。
|
|
842
865
|
- 非 DSH 后端(如 Claude)声明原生权限模式时,`/permission` 列的是该后端的模式:
|
|
843
866
|
`default`(逐个询问)、`acceptEdits`(自动接受编辑)、`plan`(只读规划)、
|
|
844
867
|
`bypassPermissions`(跳过全部权限确认),模型支持时还有 `auto`,每行带一句解释。
|
|
@@ -26,9 +26,13 @@ live in the admission & development guide.
|
|
|
26
26
|
|
|
27
27
|
## Seam stability reference
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
[admission & development guide](../tui-profile/docs/plugin-admission-and-development.md)
|
|
29
|
+
A maturity grading to help plugin authors gauge investment; the authoritative
|
|
30
|
+
status and compatibility agreement live in the
|
|
31
|
+
[admission & development guide](../tui-profile/docs/plugin-admission-and-development.md).
|
|
32
|
+
**The "stable candidate" tier is part of the frozen public surface as of the first
|
|
33
|
+
published apiVersion (`tui.dsh/v1alpha1`)** — the four commitments are in
|
|
34
|
+
`tui-profile/CHANGELOG.md`'s freeze entry; the other two tiers stay a **maturity
|
|
35
|
+
reference**, not a promise:
|
|
32
36
|
|
|
33
37
|
| Tier | Seams |
|
|
34
38
|
| --- | --- |
|
|
@@ -52,6 +56,14 @@ Also an experimental public surface:
|
|
|
52
56
|
- The `@deepseek-harness-tui/dsh-tui/test-utils` subpath and
|
|
53
57
|
`ctx.tuiPluginHost.grants.corrupt` were removed in the adapter layering
|
|
54
58
|
refactor (#705).
|
|
59
|
+
- **The backend contribution family (`tui.dsh/v1alpha1` `Backend`, seam XIV) has its
|
|
60
|
+
public surface frozen with the first published apiVersion**: the type surface
|
|
61
|
+
(`BackendSpec`, `validateBackendSpec`, `backendAdmission`) and conformance
|
|
62
|
+
(`TUI-BACKEND-001`) are usable, and the **admission chain (manifest →
|
|
63
|
+
registry → descriptor) is wired**; what is still missing is the step that
|
|
64
|
+
reads a mounted bundle's declaration into the registry and the kernel picker
|
|
65
|
+
(the install chain), so "install a third-party backend, restart, see it in the
|
|
66
|
+
picker" does not hold end to end yet.
|
|
55
67
|
- `grants` is now the narrower `HostGrantFacade`; see that PR for migration
|
|
56
68
|
details.
|
|
57
69
|
- On `TuiSceneProps.channel` (`ChannelUi`), `minimal` / `setMinimal()` were
|
|
@@ -68,6 +80,27 @@ Also an experimental public surface:
|
|
|
68
80
|
callers means both aliases and the `'setMinimal': 'mutate'` row in
|
|
69
81
|
`ui-policy.ts` are deleted in v0.13; any remaining caller is migrated within
|
|
70
82
|
that same release rather than postponing the removal again.
|
|
83
|
+
- **The DSH kernel in the package's own entry** (the default since the
|
|
84
|
+
standalone host, [configuration](configuration.en.md)): the screen mounts
|
|
85
|
+
before the profile composes, so plugin rows activate *after* the first
|
|
86
|
+
frame and every `ctx.tui*` registration reaches an already-mounted screen
|
|
87
|
+
(themes, panels, status views and the rest join live). A runtime theme the
|
|
88
|
+
user had chosen is applied once its plugin registers it; until then the
|
|
89
|
+
first frames use the auto-detected palette. The root-capability guard is
|
|
90
|
+
the same as under `dsh --profile`: a row activating after the first TUI row
|
|
91
|
+
cannot use `ctx.root` capabilities (`root.plugin`, `root.effect`,
|
|
92
|
+
`root.on`, …) in its apply. A plugin that waits for something in its apply
|
|
93
|
+
holds the composition: start long work detached, not awaited. On a scene's
|
|
94
|
+
`TuiSceneProps.channel`, `ready` is `false` (and `status` `'starting'`)
|
|
95
|
+
while no session stands behind the channel, e.g. after the startup session
|
|
96
|
+
failed to open (`startupFailure`).
|
|
97
|
+
- **Claude and Codex kernels** (light profile; accepted on Claude, not yet on
|
|
98
|
+
Codex, which takes the same composition path): the entry composes this
|
|
99
|
+
package's rows and the third-party bundles the profile declares, without
|
|
100
|
+
`@deepseek-ai/dsh-base`, after the first frame, on the same terms as above.
|
|
101
|
+
A row whose `inject` names a service only DSH's core provides (`agents`,
|
|
102
|
+
`llm`, `tools`, `sessionPersistence`, …) stays pending on these kernels;
|
|
103
|
+
the `tui*` services are all there.
|
|
71
104
|
|
|
72
105
|
- The core repository remains independent; community plugins live in their own
|
|
73
106
|
repos.
|
|
@@ -24,8 +24,10 @@
|
|
|
24
24
|
|
|
25
25
|
## 接缝稳定性参考
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
状态与兼容性协定以[准入与开发指南](../tui-profile/docs/plugin-admission-and-development.md)
|
|
27
|
+
按当前实现成熟度给出的分级,帮助插件作者评估投入;正式
|
|
28
|
+
状态与兼容性协定以[准入与开发指南](../tui-profile/docs/plugin-admission-and-development.md)为准。
|
|
29
|
+
**「稳定候选」那一档已随第一版 apiVersion(`tui.dsh/v1alpha1`)纳入冻结的公开面承诺**
|
|
30
|
+
(四条承诺见 `tui-profile/CHANGELOG.md` 的冻结条目);其余两档仍是**成熟度参考**,不构成承诺:
|
|
29
31
|
|
|
30
32
|
| 分级 | 接缝 |
|
|
31
33
|
| --- | --- |
|
|
@@ -46,6 +48,11 @@
|
|
|
46
48
|
`@deepseek-harness-tui/dsh-tui/panels` 与 `./api`。
|
|
47
49
|
- `@deepseek-harness-tui/dsh-tui/test-utils` 子路径与
|
|
48
50
|
`ctx.tuiPluginHost.grants.corrupt` 已随 adapter 分层重构(#705)移除。
|
|
51
|
+
- **后端贡献族(`tui.dsh/v1alpha1` `Backend`,接缝十四)的公开面已随第一版 apiVersion 冻结**:类型面
|
|
52
|
+
(`BackendSpec`、`validateBackendSpec`、`backendAdmission`)与 conformance
|
|
53
|
+
(`TUI-BACKEND-001`)已可用,**准入链路(清单 → registry → descriptor)已接线**;
|
|
54
|
+
仍未做的是把已挂载 bundle 的声明接进注册表与 kernel picker(装链路),所以
|
|
55
|
+
「装一个第三方后端、重启后出现在 picker 里」这条端到端流程尚未成立。
|
|
49
56
|
- `grants` 收窄为 `HostGrantFacade`,迁移细节见该 PR。
|
|
50
57
|
- `TuiSceneProps.channel`(`ChannelUi`)上的 `minimal` / `setMinimal()` 已更名为
|
|
51
58
|
`minimalUi` / `setMinimalUi()`;旧名保留为 **deprecated 别名**,读写同一个
|
|
@@ -57,6 +64,18 @@
|
|
|
57
64
|
`TuiSceneProps.channel` 取用该端口的插件)做一次 `.minimal` / `.setMinimal(`
|
|
58
65
|
扫描:零调用方即在 v0.13 删除这两个别名与 `ui-policy.ts` 里的
|
|
59
66
|
`'setMinimal': 'mutate'` 行;仍有调用方则在同一版本内完成迁移,不再顺延。
|
|
67
|
+
- **DSH 内核在本包入口进程内**(独立宿主起的默认,见[配置](configuration.md)):
|
|
68
|
+
界面先挂、profile 后组合,插件行在首帧**之后**激活,所有 `ctx.tui*` 注册都落到
|
|
69
|
+
已挂载的界面上(主题、面板、状态视图等实时加入)。用户选定的运行时主题在其插件
|
|
70
|
+
注册后生效,此前的首帧用自动检测的配色。根能力守卫与 `dsh --profile` 一致:在首个
|
|
71
|
+
TUI 行之后激活的行,apply 里不能用 `ctx.root` 的能力(`root.plugin`、
|
|
72
|
+
`root.effect`、`root.on` 等)。apply 里等待会拖住组合:耗时工作脱离 apply 启动、
|
|
73
|
+
不要 await。场景的 `TuiSceneProps.channel` 在没有会话撑着时(例如启动会话打开失败,
|
|
74
|
+
见 `startupFailure`)`ready` 为 `false`、`status` 为 `'starting'`。
|
|
75
|
+
- **Claude 与 Codex 内核**(轻量 profile;Claude 已验收,Codex 走同一条组合路径但尚未验收):入口在首帧之后组合本包的行与 profile 声明的
|
|
76
|
+
第三方 bundle,不含 `@deepseek-ai/dsh-base`,规则同上条。`inject` 里有只由 DSH 核心
|
|
77
|
+
提供的服务(`agents`、`llm`、`tools`、`sessionPersistence` 等)的行在这两个内核下保持
|
|
78
|
+
pending;`tui*` 服务都在。
|
|
60
79
|
|
|
61
80
|
核心仓库保持独立,社区插件各居其位。
|
|
62
81
|
生态组织只维护收录与准入规则——不对社区插件的功能、质量或安全性
|
|
@@ -4,22 +4,30 @@
|
|
|
4
4
|
|
|
5
5
|
## Built-in themes
|
|
6
6
|
|
|
7
|
-
dsh-TUI
|
|
7
|
+
dsh-TUI ships two palette families (six themes) plus an `auto` pseudo-theme:
|
|
8
8
|
|
|
9
|
-
| Name | Purpose |
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| `auto` | Pseudo-theme: follows the system/terminal background, resolving to `light` or `dark` |
|
|
12
|
-
| `light` | White panels, ink body text, and mist-blue interaction color |
|
|
13
|
-
| `dark` | Dark-terminal adaptation with warm-gray text and soft blue accents |
|
|
14
|
-
| `dark-ansi` |
|
|
9
|
+
| Name | Family | Purpose |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `auto` | — | Pseudo-theme: follows the system/terminal background, resolving to `light` or `dark` |
|
|
12
|
+
| `light` | Mist Blue | White panels, ink body text, and mist-blue interaction color |
|
|
13
|
+
| `dark` | Mist Blue | Dark-terminal adaptation with warm-gray text and soft blue accents |
|
|
14
|
+
| `dark-ansi` | Mist Blue | 16-color ANSI fallback (except the ignition pair) |
|
|
15
|
+
| `pink-day` | Sakura Pink | Light terminals: blush panels and sakura-pink interaction color |
|
|
16
|
+
| `pink-night` | Sakura Pink | Dark terminals: warm surfaces and sakura-pink interaction color |
|
|
17
|
+
| `pink-ansi` | Sakura Pink | 16-color ANSI fallback (except the ignition pair) |
|
|
18
|
+
|
|
19
|
+
Both families keep the same role split (light / dark / ANSI fallback). `auto`
|
|
20
|
+
resolves within the Mist Blue family only; the Sakura Pink family is selected
|
|
21
|
+
explicitly.
|
|
15
22
|
|
|
16
23
|
Without an explicit choice, the TUI queries the terminal background with OSC
|
|
17
24
|
11 and selects `light` or `dark`. It falls back to `dark` when the terminal
|
|
18
25
|
does not answer.
|
|
19
26
|
|
|
20
|
-
Light-theme panels
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
Light-theme panels and tool cards take their own family's surface colors (`light`
|
|
28
|
+
uses white `#FFFFFF`; `pink-day` uses blush `#F9ECF1`), and their input fills are
|
|
29
|
+
the warm `#F6F3ED` / `#FBF3F0`; image previews always use neutral borders. Dark
|
|
30
|
+
palettes and accent colors are unchanged. This does not modify the terminal's own
|
|
23
31
|
background or wallpaper.
|
|
24
32
|
|
|
25
33
|
`auto` turns that one-shot startup detection into a standing choice:
|
|
@@ -131,13 +139,14 @@ A few keys carry behavior worth knowing:
|
|
|
131
139
|
channels (`#rgb`, `#rrggbb`, `#rrggbbaa` with the alpha ignored, or `rgb(r,g,b)`); `ansi:*` /
|
|
132
140
|
`ansi256(n)` — or a missing key — falls back **per key** to the built-in pair selected by the
|
|
133
141
|
palette's lightness, so the other key is unaffected.
|
|
134
|
-
- `cursor`: the caret fill in the main prompt, launchpad input and picker search boxes
|
|
142
|
+
- `cursor`: the painted caret fill in the main prompt, launchpad input and picker search boxes
|
|
143
|
+
during static rendering without a native cursor, plus image-token focus in the main prompt.
|
|
144
|
+
Ordinary TTY text editing uses the native cursor; shape, color, blinking and animation follow terminal settings.
|
|
135
145
|
The glyph on it is whichever of `text` / `inverseText`
|
|
136
146
|
contrasts better with that fill (a 16-color `ansi:*` fill, or a palette whose `text`/`inverseText`
|
|
137
147
|
has no parseable channels, cannot be measured and keeps `inverseText`), so a light caret can still
|
|
138
|
-
carry dark ink. The built-ins leave it empty
|
|
139
|
-
|
|
140
|
-
stop following the body text color.
|
|
148
|
+
carry dark ink. The built-ins leave it empty, giving the painted fallback an inverse-video block.
|
|
149
|
+
A custom fill affects these painted highlights only.
|
|
141
150
|
- Transcript link text follows `accent`; an empty or unparseable accent keeps the old fixed blue.
|
|
142
151
|
|
|
143
152
|
## npm plugin themes
|
|
@@ -4,21 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
## 内置主题
|
|
6
6
|
|
|
7
|
-
dsh-TUI
|
|
7
|
+
dsh-TUI 内置两个色板族共六套主题,外加一个 `auto` 伪主题:
|
|
8
8
|
|
|
9
|
-
| 名称 | 用途 |
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| `auto` | 伪主题:跟随系统/终端背景,自动解析为 `light` 或 `dark` |
|
|
12
|
-
| `light` | 白色面板、墨色正文、雾蓝交互色 |
|
|
13
|
-
| `dark` | 深色终端适配,暖灰正文与柔雾蓝强调色 |
|
|
14
|
-
| `dark-ansi` |
|
|
9
|
+
| 名称 | 族 | 用途 |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `auto` | — | 伪主题:跟随系统/终端背景,自动解析为 `light` 或 `dark` |
|
|
12
|
+
| `light` | 雾蓝 | 白色面板、墨色正文、雾蓝交互色 |
|
|
13
|
+
| `dark` | 雾蓝 | 深色终端适配,暖灰正文与柔雾蓝强调色 |
|
|
14
|
+
| `dark-ansi` | 雾蓝 | 16 色 ANSI 兼容回退(点火色对除外) |
|
|
15
|
+
| `pink-day` | 樱 | 浅色终端:淡粉面板、樱粉交互色 |
|
|
16
|
+
| `pink-night` | 樱 | 深色终端:暖调面板、樱粉交互色 |
|
|
17
|
+
| `pink-ansi` | 樱 | 16 色 ANSI 兼容回退(点火色对除外) |
|
|
18
|
+
|
|
19
|
+
两族保持相同的角色划分(浅色 / 深色 / ANSI 回退)。`auto` 只在雾蓝族内解析,
|
|
20
|
+
樱族需要显式选择。
|
|
15
21
|
|
|
16
22
|
未明确指定主题时,TUI 通过 OSC 11 查询终端背景,
|
|
17
23
|
在 `light` 与 `dark` 之间选择;终端不响应时回退到 `dark`。
|
|
18
24
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
浅色主题的面板与工具卡各用本族的浅色表面色(雾蓝 `light` 为纯白 `#FFFFFF`,
|
|
26
|
+
樱 `pink-day` 为淡粉 `#F9ECF1`;两族的输入框底色另有暖色 `#F6F3ED` / `#FBF3F0`),
|
|
27
|
+
图片预览一律用中性边框。深色主题及强调色保持原样。此设置不修改终端自身的背景色或壁纸。
|
|
22
28
|
|
|
23
29
|
`auto` 把这一次性启动检测变成常驻选择:
|
|
24
30
|
|
|
@@ -130,11 +136,12 @@ DSH_TUI_THEME
|
|
|
130
136
|
出固定通道的形式(`#rgb`、`#rrggbb`、`#rrggbbaa`(alpha 会被忽略)或 `rgb(r,g,b)`);
|
|
131
137
|
写成 `ansi:*` / `ansi256(n)`(或整键缺失)时**逐键**回退到按主题明暗选定的内置点火色对,
|
|
132
138
|
另一个键不受牵连。
|
|
133
|
-
- `cursor
|
|
139
|
+
- `cursor`:无原生光标的静态呈现中,主输入框、落地页输入框及选择器搜索框绘制光标的填充色,
|
|
140
|
+
也用于主输入框的图片标记焦点高亮。常规 TTY 文本输入使用原生光标,形状、颜色、闪烁与动画由终端配置控制。
|
|
134
141
|
块上的字形取 `text` 与 `inverseText` 中对该填充对比度更高
|
|
135
142
|
的一个(16 色的 `ansi:*` 填充,或 `text`/`inverseText` 解析不出通道的调色板,
|
|
136
143
|
都量不出对比度,仍用 `inverseText`),所以浅色光标也能配深墨字形。
|
|
137
|
-
|
|
144
|
+
内置主题留空——绘制回退采用反色块;自定义填充只影响这些绘制高亮。
|
|
138
145
|
- 正文链接的文字色跟随 `accent`;accent 为空或解析不出时回落到原来的固定蓝。
|
|
139
146
|
|
|
140
147
|
## npm 插件主题
|