@deepseek-harness-tui/dsh-tui 0.14.1 → 0.16.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 +163 -17
- 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 +47 -10
- package/guide/dsh-tui-guide/codex-backend.md +26 -4
- package/guide/dsh-tui-guide/configuration.en.md +168 -18
- package/guide/dsh-tui-guide/configuration.md +144 -16
- package/guide/dsh-tui-guide/getting-started.en.md +15 -0
- package/guide/dsh-tui-guide/getting-started.md +15 -0
- package/guide/dsh-tui-guide/interaction.en.md +64 -24
- package/guide/dsh-tui-guide/interaction.md +49 -19
- package/guide/dsh-tui-guide/plugins.en.md +97 -3
- package/guide/dsh-tui-guide/plugins.md +55 -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 +53 -21
- package/guide/dsh-tui-guide/user-guide.md +43 -22
- package/lib/settings.json +103 -9
- package/lib/types/adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/adapter/channel/projection.js +1 -0
- 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 +4 -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-catalog.d.ts +5 -1
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +14 -3
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +56 -12
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +68 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel.d.ts +2 -0
- package/lib/types/adapter/ports/channel.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/events.d.ts +3 -2
- package/lib/types/agent/events.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/contract.d.ts +3 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -1
- package/lib/types/backends/codex/contract.js +3 -0
- 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/async-questions.d.ts +17 -0
- package/lib/types/backends/codex/session/async-questions.d.ts.map +1 -0
- package/lib/types/backends/codex/session/async-questions.js +89 -0
- 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 +100 -42
- 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.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/items.js +7 -5
- 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/codex/translate/question-reply.d.ts +11 -0
- package/lib/types/backends/codex/translate/question-reply.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/question-reply.js +53 -0
- 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/projection.d.ts.map +1 -1
- package/lib/types/channel/projection.js +10 -0
- 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 +15 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +58 -10
- 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 +24 -7
- 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 +4 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +14 -9
- 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 +109 -15
- 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/PermissionsPicker.d.ts +10 -1
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -1
- package/lib/types/components/PermissionsPicker.js +24 -16
- package/lib/types/components/PluginInstallPane.d.ts +21 -0
- package/lib/types/components/PluginInstallPane.d.ts.map +1 -0
- package/lib/types/components/PluginInstallPane.js +84 -0
- package/lib/types/components/PluginManagePane.d.ts +21 -0
- package/lib/types/components/PluginManagePane.d.ts.map +1 -0
- package/lib/types/components/PluginManagePane.js +69 -0
- 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 +65 -121
- 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/SubagentCard.d.ts +13 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +27 -12
- package/lib/types/components/SubagentDashboard.d.ts +8 -1
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +58 -16
- 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 +14 -1
- package/lib/types/components/launchpadLayout.d.ts.map +1 -1
- package/lib/types/components/launchpadLayout.js +38 -19
- package/lib/types/components/messages/TeamMessageBubble.d.ts +20 -0
- package/lib/types/components/messages/TeamMessageBubble.d.ts.map +1 -0
- package/lib/types/components/messages/TeamMessageBubble.js +15 -0
- 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/PanelHost.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelHost.js +5 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts +8 -0
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +11 -0
- 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 +15 -2
- 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/SidePanelRuntimeContext.d.ts +7 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +4 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +7 -2
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +28 -8
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +2 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +156 -21
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +6 -2
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +64 -16
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +15 -5
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +101 -10
- package/lib/types/components/sidePanel/btw/threads.d.ts +18 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/threads.js +51 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +5 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +5 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.js +19 -4
- package/lib/types/components/sidePanel/companion/skins.d.ts +8 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +57 -12
- package/lib/types/components/sidePanel/types.d.ts +7 -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/splashArtRows.d.ts +29 -0
- package/lib/types/components/splashArtRows.d.ts.map +1 -0
- package/lib/types/components/splashArtRows.js +31 -0
- 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/teamRoster.d.ts +70 -0
- package/lib/types/components/teamRoster.d.ts.map +1 -0
- package/lib/types/components/teamRoster.js +78 -0
- 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 +102 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
- package/lib/types/dsh-adapter/admission-loader.js +301 -0
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -1
- package/lib/types/dsh-adapter/agent-view.js +3 -1
- package/lib/types/dsh-adapter/approvals.d.ts +7 -0
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +45 -1
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +71 -8
- 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-assembly.d.ts +31 -0
- package/lib/types/dsh-adapter/backend-assembly.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-assembly.js +225 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts +62 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-contribution.js +78 -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 +304 -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 +91 -46
- package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/bundled-presets.js +60 -3
- 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 +17 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +19 -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 +79 -6
- package/lib/types/dsh-adapter/channel/compaction.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +100 -26
- 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 +10 -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 +5 -1
- 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 +330 -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 +109 -30
- 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 +7 -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 +235 -13
- 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 +48 -29
- 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/permissions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/permissions.js +4 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.js +2 -0
- 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 +60 -30
- package/lib/types/dsh-adapter/channel/session-reset.js +2 -2
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +22 -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 +5 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +136 -5
- package/lib/types/dsh-adapter/channel/state.d.ts +43 -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 +84 -12
- 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 +8 -1
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +20 -3
- 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/compat/agent-team-0.2.0.d.ts +55 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.js +96 -0
- 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 +4 -4
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +20 -5
- package/lib/types/dsh-adapter/effect-ledger.d.ts +7 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
- package/lib/types/dsh-adapter/effect-ledger.js +8 -1
- package/lib/types/dsh-adapter/entry-slot.d.ts +38 -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 +226 -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 +148 -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 +77 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts +112 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-dsh.js +481 -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 +253 -0
- package/lib/types/dsh-adapter/index.d.ts +53 -17
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +63 -9
- 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/invariant.d.ts +7 -2
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -1
- package/lib/types/dsh-adapter/invariant.js +6 -3
- 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/index.js +2 -2
- 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 +41 -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 +119 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-declaration.js +183 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts +94 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-feed.js +135 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts +115 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-guard.js +108 -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-install.d.ts +160 -0
- package/lib/types/dsh-adapter/plugin-install.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-install.js +545 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts +178 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manage.js +468 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts +144 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manager.js +83 -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 +918 -234
- package/lib/types/dsh-adapter/plugins-info.d.ts +130 -8
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +469 -44
- 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-projection-store.d.ts +66 -0
- package/lib/types/dsh-adapter/session-projection-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-projection-store.js +149 -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/settingsEditor.js +2 -2
- package/lib/types/dsh-adapter/sideQuestion.d.ts +21 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +53 -0
- 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 +112 -9
- package/lib/types/dsh-adapter/team-mode.d.ts +74 -0
- package/lib/types/dsh-adapter/team-mode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-mode.js +188 -0
- package/lib/types/dsh-adapter/team-roster.d.ts +67 -0
- package/lib/types/dsh-adapter/team-roster.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-roster.js +136 -0
- package/lib/types/dsh-adapter/team-tools.d.ts +58 -0
- package/lib/types/dsh-adapter/team-tools.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-tools.js +208 -0
- 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/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- 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 +961 -1439
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +443 -387
- 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/components/ScrollBox.d.ts +9 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +23 -0
- package/lib/types/ink/dom.d.ts.map +1 -1
- 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 +130 -17
- 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/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +8 -1
- 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/permissionPresetLabels.d.ts +25 -0
- package/lib/types/permissionPresetLabels.d.ts.map +1 -0
- package/lib/types/permissionPresetLabels.js +33 -0
- package/lib/types/plugin-host.d.ts +1 -0
- package/lib/types/plugin-host.d.ts.map +1 -1
- package/lib/types/preset-patch.d.ts +22 -0
- package/lib/types/preset-patch.d.ts.map +1 -0
- package/lib/types/preset-patch.js +14 -0
- 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 +55 -16
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +742 -280
- package/lib/types/screens/Launchpad.d.ts +33 -17
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +256 -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 +7 -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/chat/usePluginWriteFlow.d.ts +68 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts.map +1 -0
- package/lib/types/screens/chat/usePluginWriteFlow.js +92 -0
- package/lib/types/screens/chatOverlay.d.ts +30 -5
- 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/sessionModes.d.ts +5 -3
- package/lib/types/sessionModes.d.ts.map +1 -1
- package/lib/types/sessionModes.js +9 -3
- 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/lib/types/utils/paths.d.ts +11 -0
- package/lib/types/utils/paths.d.ts.map +1 -1
- package/lib/types/utils/paths.js +13 -0
- package/package.json +150 -114
- package/presets/winbash.mjs +716 -0
- package/tui-profile/feed/README.md +63 -0
- package/tui-profile/feed/first-party.json +10 -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
|
@@ -14,7 +14,10 @@ dsh-TUI 可以把会话跑在 Claude Agent 后端上,而不是 DeepSeek Harnes
|
|
|
14
14
|
- Claude Agent SDK。它是可选依赖,默认不装。最省事的装法:打开内核选择器(启动页
|
|
15
15
|
「内核」或 `/kernel`),对未安装的 Claude 行按 Enter,按引导一键安装——dsh-TUI
|
|
16
16
|
自己定位 profile 目录,用 pnpm 装锁定版本的 SDK,装完该行即变亮可选(独立构建
|
|
17
|
-
与无 profile
|
|
17
|
+
与无 profile 的启动给手动指引)。安装前会把 profile 的 pnpm store 钉到稳定路径
|
|
18
|
+
(storeDir: ../../.pnpm-store,写入 pnpm-workspace.yaml),环境变量漂移
|
|
19
|
+
(沙箱、中转改过的 XDG_DATA_HOME 等)导致的 store 错位不再复发;万一装的时候
|
|
20
|
+
已经错位,安装器会自动重建依赖再重试,无需手动清理。手动等价形式,在 dsh-tui 的 profile 目录(默认
|
|
18
21
|
`~/.dsh/profiles/dsh-tui`,设置了 `DSH_HOME` 时是 `$DSH_HOME/profiles/dsh-tui`)
|
|
19
22
|
执行一次:
|
|
20
23
|
|
|
@@ -23,15 +26,22 @@ dsh-TUI 可以把会话跑在 Claude Agent 后端上,而不是 DeepSeek Harnes
|
|
|
23
26
|
```
|
|
24
27
|
|
|
25
28
|
- 一份 Claude 凭据,见下面的「登录」。
|
|
26
|
-
- `claude`
|
|
27
|
-
|
|
29
|
+
- `claude` 命令不是必需的:按**显式指定的可执行路径**(环境变量,设置后原样采用,不做版本校验;
|
|
30
|
+
变量名见[多后端架构](agent-backend-design.md))→ `PATH` 上的 `claude` → 用户主目录下的
|
|
31
|
+
`.local/bin`(Windows `%USERPROFILE%\.local\bin\claude.exe`、POSIX `~/.local/bin/claude`)
|
|
32
|
+
的顺序探测,`PATH` 命中的那份仍然优先;每个候选都要能启动并报出版本才会被采用(与你平时用的
|
|
33
|
+
CLI 同版本、同一个会话库),全部落空才交给 SDK 自带的二进制。SDK 没装但本机已有 Claude Code
|
|
34
|
+
时,安装向导的确认面板也会把发现的那个 CLI(版本与路径)报出来。
|
|
28
35
|
|
|
29
36
|
选择后端,任选一种:
|
|
30
37
|
|
|
31
38
|
- 启动页的「内核」入口、右下角的内核区,或在会话里输入 `/kernel`,打开内核选择器。
|
|
32
39
|
选中另一个内核后 dsh-TUI 记住选择(`~/.dsh-tui/kernel.json`)并重启,在新内核里开
|
|
33
|
-
一个新会话;原来的会话仍可在 `/resume` 找到。回合进行中不能切换。SDK
|
|
34
|
-
|
|
40
|
+
一个新会话;原来的会话仍可在 `/resume` 找到。回合进行中不能切换。SDK 没装时,选择器
|
|
41
|
+
会把 Claude 标为「未安装」;凭据检测不出**不会**拦住选择——key 完全可以放在检测看不到
|
|
42
|
+
的地方(Claude 设置的 `env`、`apiKeyHelper`、中转渠道),行仍可选(右下角铭牌不显示登录
|
|
43
|
+
状态,未登录在选择器里以副标题标注)。进去后 CLI 会应用自己的配置;订阅登录在会话里
|
|
44
|
+
`/login`,中转渠道用 `/channel` 配。
|
|
35
45
|
- `dsh-tui --backend claude`(只对这一次启动生效)。
|
|
36
46
|
- 在 dsh-tui 的配置行写 `backend: claude`。
|
|
37
47
|
|
|
@@ -81,7 +91,7 @@ IDE 选区、状态栏的 git 分支、`/clear`(只清屏,Claude 保留上
|
|
|
81
91
|
|
|
82
92
|
不可用(不出现在补全里,直接输入会提示不可用,不会发给模型):`/tree`、`/agentview`、
|
|
83
93
|
`/bg`、`/home`、`/workspace`、`/preset`、`/provider`、`/balance`、`/config`、
|
|
84
|
-
`/reload`、`/setup`、`/migrate`、`/skills`、`/
|
|
94
|
+
`/reload`、`/setup`、`/migrate`、`/skills`、`/plugin`、`/hooks`、
|
|
85
95
|
`/add-dir`、`/goal`(Claude 没有目标能力)。DSH 组合注册的其他命令(如 `/plan`)也不会出现。
|
|
86
96
|
|
|
87
97
|
启动时仍先到启动页;首启引导和工作区首页只在 DSH 下出现。带恢复目标的启动直接进入
|
|
@@ -120,6 +130,10 @@ Claude 设置 > `default`。Claude 设置里的 `defaultMode: bypassPermissions`
|
|
|
120
130
|
dsh-TUI 创建的会话也在其中(Claude Code 自己的 `/resume` 选择器不显示它们,要用
|
|
121
131
|
`claude --resume <id>` 打开)。`Enter` 恢复(先回放历史再继续),`Ctrl+R` 重命名,
|
|
122
132
|
`Ctrl+D` 删除;当前会话和另一个 dsh-TUI 终端正在用的会话不能删。置顶按后端分开保存。
|
|
133
|
+
再次打开或重启后先显示上次完整列表,同时仍从 SDK 刷新。首屏快照按 Claude 配置
|
|
134
|
+
目录隔离;没有快照时按 SDK 默认项目范围(当前工作目录及同仓库的 Git worktree)
|
|
135
|
+
先显示最近的最多 32 条,再补齐该项目及其他项目的完整列表;全部项目读取失败时
|
|
136
|
+
也保留该项目的 worktree 会话。读取失败时保留上次完整快照。
|
|
123
137
|
- 从 shell 恢复:`dsh-tui --backend claude --resume <id>`;不带 id 时恢复本机最近一次
|
|
124
138
|
用过的 Claude 会话。退出时 dsh-TUI 会打印这条命令。另一个 dsh-TUI 终端已打开的会话会
|
|
125
139
|
被拒绝;`--resume` 打不开时直接报错,不会改开新会话。状态栏的短会话 id 就是
|
|
@@ -153,6 +167,14 @@ Claude 设置 > `default`。Claude 设置里的 `defaultMode: bypassPermissions`
|
|
|
153
167
|
## 已知限制
|
|
154
168
|
|
|
155
169
|
- 一个 dsh-TUI 进程只用一个后端,切换要经 `/kernel` 重启。
|
|
170
|
+
- Claude 内核下 `dsh-tui` 从本包自己的入口启动,只组合轻量 profile(本包与 profile
|
|
171
|
+
声明的第三方插件,不含 DSH 的 agent 核心):界面先出现,
|
|
172
|
+
会话打开后才能发送:在此之前按 Enter 草稿留在原处并提示还在启动,命令行带的首句在
|
|
173
|
+
会话打开后发出;打开失败会说明原因(落地页自动收起),`/new` 重试。第三方
|
|
174
|
+
DSH/Cordis 插件(主题、面板、决策拦截)照常加载,在界面出现后加入;依赖 DSH 自身
|
|
175
|
+
服务(agent、工具、LLM 层)的插件在这个内核下不会激活。`DSH_TUI_HOST_ENTRY=0` 回到经
|
|
176
|
+
`dsh --profile dsh-tui` 启动。(DSH 内核默认也从本包入口启动,但会在同一进程里组合
|
|
177
|
+
完整的 DSH profile。)
|
|
156
178
|
- 侧栏的工作区面板在 Claude 会话下提示不支持,轨迹面板为空。
|
|
157
179
|
- 不支持 `/add-dir`;拒答对话框只有「重试」和「取消」;需要浏览器操作的 MCP 请求不会
|
|
158
180
|
自动打开浏览器。
|
|
@@ -92,6 +92,21 @@ is handed to Codex unchanged. Non-first-party routes should use their own provid
|
|
|
92
92
|
credentials or a channel key. Account status shows only credential source, subscription
|
|
93
93
|
type and host, not an email address or key.
|
|
94
94
|
|
|
95
|
+
One bridging exception: when the active provider takes its credential from an `env_key`
|
|
96
|
+
(say `DEEPSEEK_API_KEY`) that the launching environment did not export but the DSH credential
|
|
97
|
+
store declares, the stored value is injected into the app-server child after `config/read`
|
|
98
|
+
(the hub is re-acquired; the key joins the hub fingerprint through `injectedEnvKeys`). Reads
|
|
99
|
+
take the active store first (`$DSH_HOME/.credentials.yaml`, or `~/.dsh/.credentials.yaml`
|
|
100
|
+
when `DSH_HOME` is unset) and then the default `~/.dsh` store, so a `DSH_HOME` override does
|
|
101
|
+
not orphan a key stored where both READMEs name it; writes only ever target the active home. A key
|
|
102
|
+
stored once in the credential store therefore works without exporting a shell variable. The
|
|
103
|
+
value only ever travels into the spawn pipeline, never into logs, notices or events.
|
|
104
|
+
|
|
105
|
+
When nothing can supply the key, startup is **not** blocked: Codex itself rejects every turn
|
|
106
|
+
of that provider, so the runtime reports the reason once as a start notice (naming the
|
|
107
|
+
provider and the variable, never a value) — export the key, store it, or move the provider to
|
|
108
|
+
a channel.
|
|
109
|
+
|
|
95
110
|
### The three `/login` methods
|
|
96
111
|
|
|
97
112
|
| Method | Purpose and storage |
|
|
@@ -156,9 +171,11 @@ changes during a turn apply to the next one, not to reasoning already in progres
|
|
|
156
171
|
|
|
157
172
|
- **`Shift+Tab` only toggles Plan**, returning to the previous permission preset when leaving
|
|
158
173
|
it. It does not cycle into Full Access.
|
|
159
|
-
- `/plan` enters Plan; `/plan <task>` enters it and submits the task
|
|
160
|
-
permission preset
|
|
161
|
-
|
|
174
|
+
- `/plan` enters Plan; `/plan <task>` enters it and submits the task; `/plan off` returns to
|
|
175
|
+
the permission preset that was active before Plan. The `on`/`off` rows in the completion
|
|
176
|
+
menu are dsh-TUI’s own state words, not task text. Choosing an explicit permission preset
|
|
177
|
+
returns to Default collaboration. Plan does not mean all tools are forbidden: the actual
|
|
178
|
+
security boundary remains Codex’s permission policy.
|
|
162
179
|
- Defaults resolve per field: an explicit dsh-TUI choice > your Codex configuration >
|
|
163
180
|
`auto` when unset. An unreadable configuration is not overwritten with `auto`.
|
|
164
181
|
- Completed plans offer implementation, implementation with cleared context, or staying
|
|
@@ -167,13 +184,20 @@ changes during a turn apply to the next one, not to reasoning already in progres
|
|
|
167
184
|
- Command, file, network and permission approvals use server-provided choices. Allow-once,
|
|
168
185
|
session allowance or remembered rules appear only when supported. Questions and MCP forms
|
|
169
186
|
share the existing panel, with secret answers masked.
|
|
187
|
+
- Codex's `request_user_input_async` opens the questionnaire while the agent continues
|
|
188
|
+
working. The first suggestion is selected by default; free text is also available.
|
|
189
|
+
Answers use the native question-reply envelope to steer, falling back to a queued
|
|
190
|
+
follow-up when steering is unavailable. Dismissal closes that question without
|
|
191
|
+
interrupting. Turn completion, connection loss and exit withdraw unanswered questions;
|
|
192
|
+
historical resume never reopens old questionnaires. Codex's persisted echo renders
|
|
193
|
+
as a quoted question and answer, including when rebuilding history.
|
|
170
194
|
|
|
171
195
|
## Daily commands and input
|
|
172
196
|
|
|
173
197
|
| Entry | Behavior |
|
|
174
198
|
| --- | --- |
|
|
175
199
|
| `Enter` / `Tab` / `Ctrl+Enter` while working | Steer / queue a follow-up / interrupt and send now; non-steerable turns fall back to follow-up |
|
|
176
|
-
| `Esc` / `Ctrl+C` | Dismiss the focused panel or interrupt. Cancelling a
|
|
200
|
+
| `Esc` / `Ctrl+C` | Dismiss the focused panel or interrupt. Cancelling a blocking question interrupts its turn; dismissing an async question only closes that question |
|
|
177
201
|
| `/review` | Review uncommitted changes inline; requires idle state and consumes model usage |
|
|
178
202
|
| `/review base <branch>` / `/review commit <sha>` | Review against a branch or commit; other arguments are custom review instructions |
|
|
179
203
|
| `/diff` | Latest turn’s aggregated diff; otherwise try Git diff against the remote, then show an empty-state notice |
|
|
@@ -212,11 +236,20 @@ past tokens/cost. Fresh usage notifications update the readings.
|
|
|
212
236
|
say the transcript is retained, not physically deleted. Current, occupied or active-worker
|
|
213
237
|
threads cannot be archived. The catalog lists up to 500 recent ordinary threads, excluding
|
|
214
238
|
ephemeral forks and child threads from the main list.
|
|
239
|
+
Reopening or restarting first paints the last complete list while the native catalog
|
|
240
|
+
refreshes; a cold scan shows pages as they arrive. Without a snapshot, the native state
|
|
241
|
+
database supplies up to 32 recent threads from the current workspace first, then the
|
|
242
|
+
rollout scan repairs titles and fills in that workspace followed by other workspaces;
|
|
243
|
+
an unavailable database falls back to scanning. First-paint snapshots are isolated by
|
|
244
|
+
Codex storage directory; failed or incomplete reads never replace a complete snapshot.
|
|
215
245
|
- `/rename` changes the official thread title; `/color` stores a session accent, not a global theme.
|
|
216
246
|
- `/fork` creates a resumable copy without switching. Double `Esc` or `/rewind` conversation
|
|
217
247
|
rewind creates a copy before the selected question, returns the question to the composer
|
|
218
|
-
and preserves the original. Rewinding the first question creates an empty
|
|
219
|
-
|
|
248
|
+
and preserves the original. Rewinding the first question creates an empty, resumable fork.
|
|
249
|
+
First-question rewind, or rewind without a loaded predecessor, requires Codex app-server
|
|
250
|
+
**0.160.1+**, checked from the connection handshake. Older or unknown server versions
|
|
251
|
+
receive an explicit upgrade notice; rewind with a loaded predecessor keeps its existing path.
|
|
252
|
+
**File-only and conversation+files rewind are unsupported**; the Git working tree does not revert.
|
|
220
253
|
- Resume replays the newest 20 full turns before live continuation. Load older messages uses
|
|
221
254
|
prefetched full-item pages, not tool-omitting summaries. Retry when prefetch is still pending;
|
|
222
255
|
repeated failure reports a notice. Active resume deduplicates redelivered approvals and
|
|
@@ -265,10 +298,14 @@ Real model vision and image generation were not tested in this round.
|
|
|
265
298
|
|
|
266
299
|
usageLimited/budgetLimited goals show a blocked state and reason. Unsupported goal APIs
|
|
267
300
|
do not expose the capability. `/btw`/`/recap` use a read-only sandbox with no approval
|
|
268
|
-
escalation, request answer-only behavior and reject tool/approval requests.
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
side
|
|
301
|
+
escalation, request answer-only behavior and reject tool/approval requests. The fork never
|
|
302
|
+
carries `deferGoalContinuation` (app-servers from 0.162 reject it combined with `ephemeral`),
|
|
303
|
+
and when the thread has no rollout on disk yet (nothing persisted, e.g. a brand-new session)
|
|
304
|
+
the side call falls back to a fresh ephemeral `thread/start` — the conversation is empty in
|
|
305
|
+
exactly that state, so no context is lost. Cancellation interrupts the temporary turn and
|
|
306
|
+
unsubscribes the fork. They consume model quota, not free local summaries. Ephemeral fork
|
|
307
|
+
creation/non-persistence was checked offline; actual side-query model answers were not
|
|
308
|
+
tested in this round.
|
|
272
309
|
|
|
273
310
|
## Limitations and troubleshooting
|
|
274
311
|
|
|
@@ -75,6 +75,15 @@ thread 时,恢复保留原来的错误,不会启动后台服务或另开新
|
|
|
75
75
|
路由应使用自己的 provider 凭据或渠道 key。读取账户状态只显示凭据来源、订阅类型
|
|
76
76
|
与主机,不显示邮箱或 key。
|
|
77
77
|
|
|
78
|
+
一个桥接例外:当前 provider 用 `env_key`(如 `DEEPSEEK_API_KEY`)取凭据、启动环境没导出、
|
|
79
|
+
而 DSH 凭据库声明了该 ref 时,`config/read` 之后把库里的值注入 app-server 子进程(重取 hub,
|
|
80
|
+
key 记入 `injectedEnvKeys` 参与指纹)。读取先看活动 home 的库,再回退默认 `~/.dsh` 的库,
|
|
81
|
+
所以 `DSH_HOME` 覆盖不会让写在文档位置的 key 失联;写入只进活动 home。key 只走 spawn 管道,
|
|
82
|
+
不进日志、提示或事件。
|
|
83
|
+
|
|
84
|
+
两边都拿不到时不拦启动:Codex 自己会拒绝该 provider 的每个回合,运行时只在启动时报一次
|
|
85
|
+
原因(点名 provider 与变量名,不含值)——导出该变量、写入凭据库,或把 provider 换成渠道。
|
|
86
|
+
|
|
78
87
|
### `/login` 的三种方式
|
|
79
88
|
|
|
80
89
|
| 方式 | 用途与存储 |
|
|
@@ -130,21 +139,27 @@ Chat Completions 端点当作 Responses 使用。通过 `/channel` 选择/新建
|
|
|
130
139
|
| Plan(`plan`) | 规划协作模式;保留已有权限档,不以 Plan 替代沙箱 |
|
|
131
140
|
|
|
132
141
|
- **`Shift+Tab` 只开/关 Plan**,退出回到进入前的权限档,不循环到 Full Access。
|
|
133
|
-
- `/plan` 切到 Plan;`/plan <任务>`
|
|
134
|
-
|
|
142
|
+
- `/plan` 切到 Plan;`/plan <任务>` 切换后立刻提交任务;`/plan off` 退回进入 Plan 前的
|
|
143
|
+
权限档。补全菜单里的 `on`/`off` 是 dsh-TUI 自己的状态词,不是任务文本。选择一个具体
|
|
144
|
+
权限档会回到 Default 协作模式。Plan 不等于“所有工具都被禁止”,安全边界仍由 Codex
|
|
145
|
+
权限决定。
|
|
135
146
|
- 默认来源按字段为:dsh-TUI 中明确选过的值 > 用户 Codex 配置 > 未设置时的
|
|
136
147
|
`auto`。读取配置失败时不拿 `auto` 覆盖未知配置。
|
|
137
148
|
- 计划完成后会出现实施确认:实施、清上下文后实施、留在规划/反馈继续。清上下文
|
|
138
149
|
的路径以新 thread 继续,原 thread 保留;批准计划不会暗中打开 Full Access。
|
|
139
150
|
- 命令、文件改动、网络/权限请求由 Codex 给出的选项驱动;允许本次、会话内允许、
|
|
140
151
|
记住规则等选项只在服务端支持时出现。问卷与 MCP 表单共用现有面板,保密答案掩码。
|
|
152
|
+
- Codex 的 `request_user_input_async` 在运行中打开问卷,智能体继续执行。建议答案默认
|
|
153
|
+
聚焦第一项,也可自由输入;提交通过原生问题回复信封插话,不可插话时排队到下一回合。
|
|
154
|
+
取消只关闭该题,不中断回合。回合结束、连接断开或退出时撤回未答问题;历史恢复不会
|
|
155
|
+
重新打开旧问卷。答案由 Codex 持久化回显投影成「问题 + 答案」,恢复历史时同样显示。
|
|
141
156
|
|
|
142
157
|
## 日常命令与输入
|
|
143
158
|
|
|
144
159
|
| 入口 | 行为 |
|
|
145
160
|
| --- | --- |
|
|
146
161
|
| 工作时 `Enter` / `Tab` / `Ctrl+Enter` | 插话(steer)/ 排队下一回合 / 打断并立即发送;不可 steer 时退为排队 |
|
|
147
|
-
| `Esc` / `Ctrl+C` |
|
|
162
|
+
| `Esc` / `Ctrl+C` | 按当前焦点关闭面板或中断;取消阻塞提问会中断相应回合,取消异步提问只关闭该题 |
|
|
148
163
|
| `/review` | 审查未提交改动,结果 inline 展示;需要空闲,消耗模型用量 |
|
|
149
164
|
| `/review base <branch>` / `/review commit <sha>` | 按分支基线或提交审查;其他参数作为自定义审查说明 |
|
|
150
165
|
| `/diff` | 最近回合的聚合 diff;没有时尝试相对远端的 Git diff,再无内容则提示 |
|
|
@@ -181,10 +196,17 @@ used = max(0, T - 12000)
|
|
|
181
196
|
`Ctrl+R` 改名、`Ctrl+D` **归档**;确认和完成提示都说明记录保留,不物理删除。
|
|
182
197
|
当前使用中、其他终端占用或内部 worker 活动的 thread 不能归档。目录最多列出
|
|
183
198
|
最近 500 条普通 thread,临时 fork 与子 thread 不混进主列表。
|
|
199
|
+
再次打开或重启后先显示上次完整列表,后台仍从官方目录刷新;首次读取时分页到达
|
|
200
|
+
就显示。没有快照时先从官方状态数据库显示当前工作区最近的最多 32 条,再由历史
|
|
201
|
+
扫描修正标题并补齐当前工作区及其他工作区;数据库不可用时照常扫描。首屏快照
|
|
202
|
+
按 Codex 存储目录隔离,失败或未读完的分页不会覆盖完整快照。
|
|
184
203
|
- `/rename` 改官方 thread 标题;`/color` 只保存会话强调色,不改全局主题。
|
|
185
204
|
- `/fork` 创建可恢复副本,不自动切换;双击 `Esc` 或 `/rewind` 的对话回退在
|
|
186
205
|
所选提问之前创建副本并继续,提问回到输入框、原 thread 保留。首条提问回退会
|
|
187
|
-
|
|
206
|
+
得到可恢复的空分支。首条消息及上一回合未加载时的回退需要 Codex app-server
|
|
207
|
+
**0.160.1+**;按连接握手中的服务端版本判断,版本未知或更旧时明确拒绝并提示升级。
|
|
208
|
+
上一回合已加载时沿用原有回退方式。
|
|
209
|
+
**不支持文件回退或对话+文件回退**,Git 工作树不会随对话恢复。
|
|
188
210
|
- 恢复先回放最近 20 个完整回合,再接 live;加载更早消息使用预取的完整分页,
|
|
189
211
|
不拿省略工具项的 summary 当全转录。预取尚未就绪时可再试一次,连续失败会提示。
|
|
190
212
|
运行中的恢复会去重重发审批;历史没有的完整用量不伪造。
|
|
@@ -26,12 +26,102 @@ only for a genuinely new service.
|
|
|
26
26
|
> When a row is overridden, its `config` block is replaced as a whole. It is
|
|
27
27
|
> not deep-merged, so repeat every key that must remain active.
|
|
28
28
|
|
|
29
|
+
## Web search and fetch (DSH 0.2.1-rc.2)
|
|
30
|
+
|
|
31
|
+
The standard DSH profile loads the new DeepSeek Search / Fetch API providers,
|
|
32
|
+
while Messages search and local HTTP fetch remain the defaults. In `/settings`,
|
|
33
|
+
use the arrow keys in **Web search** to select **Search API** and **Fetch API**.
|
|
34
|
+
Each selection saves immediately and applies to the next operation. Choose
|
|
35
|
+
**Messages** / **HTTP** to restore the original providers. Enter accepts a custom
|
|
36
|
+
provider ID. Sections use the plugin's actual Loader entry ID, including custom IDs.
|
|
37
|
+
|
|
38
|
+
**Web search** has one **API key** input. Paste the key for the selected search API;
|
|
39
|
+
typing is masked and confirmation saves it in DSH's credential store, outside
|
|
40
|
+
profile configuration. Reopening shows only whether a key is configured. Blank
|
|
41
|
+
input preserves the saved key, and switching APIs selects that API's credential.
|
|
42
|
+
|
|
43
|
+
The **DeepSeek Search / Fetch API** section edits the API base URL,
|
|
44
|
+
result count (1–50), and **Send original question**. The base URL
|
|
45
|
+
includes the path prefix without `/search` or `/fetch`; its default is
|
|
46
|
+
`https://api.deepseek.com/v1/tools`. DSH supplies an authorized account token for the account route.
|
|
47
|
+
Search sends the first 128 characters of the latest user prompt by default;
|
|
48
|
+
the section can disable this. Messages search has its own endpoint and maximum
|
|
49
|
+
search count section.
|
|
50
|
+
|
|
51
|
+
The user profile patch can also select both providers:
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
- id: web
|
|
55
|
+
config:
|
|
56
|
+
searchProvider: deepseek-search-api
|
|
57
|
+
fetchProvider: deepseek-fetch-api
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The TUI uses DSH's tools, authentication, cancellation and persisted results;
|
|
61
|
+
it does not make an additional model request. Older hosts and compositions
|
|
62
|
+
without the API plugin omit these new settings. The official `deepseek-official`
|
|
63
|
+
and `deepseek-account` routes show a `1017` marker for `DeepSeek-V4.1-Flash` in
|
|
64
|
+
the model list, retaining the original route IDs.
|
|
65
|
+
|
|
66
|
+
## Official request metadata and feedback reporting
|
|
67
|
+
|
|
68
|
+
The TUI bundle inherits reporting configuration from the installed official DSH
|
|
69
|
+
composition; it does not add services absent from that composition. The current
|
|
70
|
+
validated line has these defaults, with profile, home and CLI patches still able
|
|
71
|
+
to override them:
|
|
72
|
+
|
|
73
|
+
| Setting | Official default | Data and trigger |
|
|
74
|
+
| --- | --- | --- |
|
|
75
|
+
| `plugin-package-inventory-deepseek.enabled` | `true` | `dsh_plugin_packages` on `deepseek-official` requests, containing active plugin package names and versions so TUI usage can be identified |
|
|
76
|
+
| `session-log-deepseek.enabled` | `true` | `dsh_session_log` on `deepseek-official` requests, incrementally carrying canonical Session events that may include the working directory, prompts, conversation content, and tool arguments and results; controlled independently of package inventory |
|
|
77
|
+
| `session-telemetry-otel.mode` | `FEEDBACK_ONLY` | New explicit feedback authorizes OTel upload of the Session-log prefix through that feedback, including context; ordinary chat does not trigger this channel |
|
|
78
|
+
|
|
79
|
+
The first two fields are request metadata outside model input and add no model
|
|
80
|
+
input tokens. Both go to the adapter's configured `baseURL`, including third-party
|
|
81
|
+
gateways. They accompany the corresponding DeepSeek requests and do not measure
|
|
82
|
+
all TUI usage through the Claude/Codex backends.
|
|
83
|
+
|
|
84
|
+
Feedback telemetry supports the upstream environment variables:
|
|
85
|
+
|
|
86
|
+
- `DSH_TELEMETRY_MODE=DISABLED` stops OTel Session-log upload; the default
|
|
87
|
+
`FEEDBACK_ONLY` authorizes upload only after feedback.
|
|
88
|
+
- Any non-empty `DSH_TELEMETRY_DISABLED` value, including `0` or `false`, disables
|
|
89
|
+
the `session-telemetry-otel` row at startup. Remove the variable to restore it;
|
|
90
|
+
it does not control the two API request metadata fields above.
|
|
91
|
+
- `DSH_TELEMETRY_OTLP_URL` overrides the OTel collector address. When unset, the
|
|
92
|
+
installed official version supplies the endpoint and exporter parameters.
|
|
93
|
+
|
|
94
|
+
To stop API request metadata, disable either field in the user profile patch:
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
- id: plugin-package-inventory-deepseek
|
|
98
|
+
config:
|
|
99
|
+
enabled: false
|
|
100
|
+
- id: session-log-deepseek
|
|
101
|
+
config:
|
|
102
|
+
enabled: false
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Restart the TUI after changing its bundle or launch environment. Restoring bundle
|
|
106
|
+
defaults does not remove existing user patches.
|
|
107
|
+
|
|
29
108
|
## TUI configuration
|
|
30
109
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
not the
|
|
34
|
-
|
|
110
|
+
The `dsh-tui` section of `/settings` lives in the TUI's own
|
|
111
|
+
`~/.dsh-tui/settings.json`, shared by every kernel (DSH, Claude, Codex). When that file
|
|
112
|
+
does not exist yet, the first launch imports the editable fields of the `dsh-tui`
|
|
113
|
+
row's `config` from the active profile's `cordis.patch.yml` once (read only; the
|
|
114
|
+
profile is not changed and `!!js` expressions are not imported), and never again.
|
|
115
|
+
The `dsh-tui` section an older host kept in `~/.dsh/settings.yaml` is imported too:
|
|
116
|
+
a file DSH has not moved yet wins over the patch row; one DSH already moved into the
|
|
117
|
+
patch (renamed `settings.yaml.imported`) sits beneath it.
|
|
118
|
+
After the import, those fields left in the profile patch only act as a static
|
|
119
|
+
deployment layer under the DSH kernel (a fallback while the user layer is unset);
|
|
120
|
+
remove them from the patch so both kernels see the same defaults. Other plugins'
|
|
121
|
+
sections still go through DSH's settings service (written to the active profile's
|
|
122
|
+
`cordis.patch.yml`; older hosts use `~/.dsh/settings.yaml`).
|
|
123
|
+
Language and layout preferences update live; fullscreen and image previews
|
|
124
|
+
require `/restart`.
|
|
35
125
|
|
|
36
126
|
A complete common override looks like this:
|
|
37
127
|
|
|
@@ -58,33 +148,44 @@ A complete common override looks like this:
|
|
|
58
148
|
| Field | Default/source | Meaning |
|
|
59
149
|
| --- | --- | --- |
|
|
60
150
|
| `provider` | Harness `agentDefaultModel`; bare compositions fall back to `deepseek-official` | DSH model route; provider and model must both be set to form an explicit route |
|
|
61
|
-
| `model` | Harness `agentDefaultModel`; bare compositions fall back to `deepseek-flash` | Startup model; `/model`
|
|
151
|
+
| `model` | Harness `agentDefaultModel`; bare compositions fall back to `deepseek-flash` | Startup model; `/model` selects the next request’s model within the same session. Precedence: the persisted `/model` choice (`~/.dsh-tui/model.json`, the route the last session ran, whole pair) > a complete `provider`+`model` pair here (deployment default) > the harness default. A half pin (provider or model alone) counts as unset and never merges with half the preference (issue #67) |
|
|
62
152
|
| `cwd` | git worktree root containing the launch directory (`process.cwd()` when outside any worktree; a dotfiles repo at `$HOME` does not count) | TUI-side session workspace: agent meta, `@` completion/mention expansion, /resume filtering, statusline; resuming an existing session adopts that session's persisted cwd. Note the bash/fs-policy/sandbox roots are still owned by the composition layer's cordis config (default: the launch directory, governed by dsh-base) and may differ from this session-side cwd |
|
|
63
153
|
| `workspace` | unset | Startup workspace target: a local path, `file://` URL, or plugin-provided URI; takes precedence over `cwd` |
|
|
64
|
-
| `effort` | normally `max` in the bundle | Reasoning effort applied to every request (validated against the runtime model's levels; invalid levels silently fall back to the adapter default), also shown in the header at startup. Precedence: /settings `effortDefault` (`auto` defers) >
|
|
65
|
-
| `effortDefault` | unset | Default reasoning effort for new sessions; `auto` defers to `effort`; editable through `/settings` |
|
|
154
|
+
| `effort` | normally `max` in the bundle | Reasoning effort applied to every request (validated against the runtime model's levels; invalid levels silently fall back to the adapter default), also shown in the header at startup. Precedence: /settings `effortDefault` (`auto` defers) > the persisted `/effort` choice (`~/.dsh-tui/effort.json`, the level the last session ran on) > this field (deployment default) > the model default |
|
|
155
|
+
| `effortDefault` | unset | Default reasoning effort for new sessions (the `/settings` user layer; an explicit value outranks the persisted `/effort` choice); `auto` defers to the persisted choice and `effort`; editable through `/settings` |
|
|
66
156
|
| `whale` / `whaleIdle` | `true` / `true` | Header whale and welcome-page idle animation |
|
|
67
157
|
| `splashFont` | `daily` | Big-text face on the header splash: `daily` rotates by local date (the default), any other value is a face id (`bold` / `square` / `bevel` / `wide` / `dot` / `stencil` / `classic` / `slab`) pinning that one; an unknown value falls back to `daily`. Also editable through `/settings` |
|
|
68
|
-
| `whaleGirl` | `false` |
|
|
158
|
+
| `whaleGirl` | `false` | Maid-portrait toggle: For the DeepSeek brand, Companion skins deepy and whaleGirl take the splash art slot; choose whale and enable Maid portrait to show the maid. Claude uses its own artwork; Codex uses its own raster portrait or the maid character-art fallback. Both brands ignore these settings for splash artwork. "Companion skin" is `companion.skin`; when the toggle does apply, the portrait renders the real raster through the terminal image protocols (Kitty/Sixel) and falls back to the character-art maid without them. See the precedence table below |
|
|
69
159
|
| `minimal` | `false` | Minimal UI (极简界面): reduce header decoration and colors. **A display switch only** — a different thing from the kernel's `minimal` agent preset under `preset` below (that one decides which tools the model can use) |
|
|
70
160
|
| `sidePanel.splitEnabled` | `true` (boolean) | Master switch of the split layout: on, `Ctrl+B` and `/panel` open the side column next to the chat; off, neither splits and `/jobs` & co. keep their full-screen panels. Applies immediately |
|
|
71
161
|
| `sidePanel.open` | `false` (boolean) | Whether a session opens with the sidebar already expanded; off by default, so the upgrade leaves the layout as it was. An in-session `Ctrl+B` / `/panel toggle` is not written back here. Applies immediately |
|
|
72
162
|
| `sidePanel.ratio` | `0.68` (number, 0.1–0.95) | Chat column as a fraction of the content width; while the panel has focus, `+`/`-` nudge it live for the current session (not written back). Applies immediately |
|
|
73
163
|
| `sidePanel.panels` | `todo,jobs,agents,info,trajectory,workspace,btw,companion` (comma-separated text) | All eight built-in panels are enabled by default; this controls their ids and order. A well-formed id no panel claims yet stays in the tab bar for a plugin to register later; a malformed entry is refused. The `⤢` on the right edge of the bar blows the active panel up to full screen (drawn only for panels that declare a fullscreen form). Applies immediately |
|
|
74
|
-
|
|
164
|
+
| `companion.skin` | `deepy` | Skin of the companion-panel pet: `deepy` (default, the deepy whale kit), `whaleGirl` (the whale-girl sticker pack, 22 animations incl. interaction reactions) or `whale` (the splash's layered pixel whale); the panel is enabled by default and can be changed in `sidePanel.panels`. **For the DeepSeek brand it also picks the splash (header) art slot**: while Companion skin is deepy or whaleGirl, that mascot takes the slot (neither the pixel whale nor the maid portrait is drawn) and the Maid-portrait toggle (`whaleGirl`) has no effect; set Companion skin to whale to get the original path back (the pixel whale, or the maid portrait once the toggle is on). Applies immediately; see the precedence table below |
|
|
75
165
|
| `btw.contextTurns` | `4` (number, 1–8) | Completed Q/A pairs a `/btw` follow-up carries; older pairs stay in the thread and panel but are not sent. Applies immediately |
|
|
76
166
|
| `btw.contextBudget` | `24000` (number, 1000–200000) | Character budget for the recent Q/A pairs a `/btw` follow-up carries; the oldest pairs drop first. Applies immediately |
|
|
77
167
|
| `codeFrameStyle` | `light` | Frame of fenced code blocks in replies: `light` is a top label plus a left rail and costs no extra rows; `full` closes the box. Very narrow terminals always use a plain fence. Applies immediately |
|
|
78
168
|
| `turnUsageRow` | `false` (boolean) | Show a right-aligned usage row at the end of each turn (tokens in/out, cache, duration, retries); `/tokens`, `/status` and the footer hover report the same numbers either way |
|
|
79
169
|
| `modes` | built-in trio | Shift+Tab session-mode cycle (plan/sandbox/approval atom bundles); defaults to default → plan → full-access |
|
|
170
|
+
| `upstreamRetry` | `true` | Seed a retry policy (5 attempts, transport-drop-aware failure codes including `STREAM_CLOSED`) on the `llm-pi-ai` provider route the bound session actually uses, whenever it declares no `retryPolicy` — at every bind (boot, `/model` switch, resume), through the official `llm-pi-ai` settings section (the policy the kernel's `llm-retry` plugin executes). Dormant channels are never written; routes with an explicit `retryPolicy` (cordis.yml or hand-edited settings) are never overwritten; `false` opts out entirely |
|
|
80
171
|
| `activity` | `true` | Show the live activity row |
|
|
81
172
|
| `activityFrames` | `moon8` | Activity animation preset; `/activity` changes it at runtime. A legacy saved value of `claude` is read as `moon8`, and the picker no longer offers that legacy preset |
|
|
82
173
|
| `contextBar` | `true` | Segmented context-usage bar below the input box; `false` hides the row. Both this and `/settings → statusBar.contextBar` (also on by default) must be on for it to render |
|
|
83
174
|
| `fullscreen` | `true` (factory default since 0.9.0) | `true` uses the alternate screen, app scrolling, and mouse selection; `false` uses inline mode |
|
|
84
175
|
| `terminalImages` | `true` | Allow previews in supported terminals; `false` keeps text metadata and skips image probing and preview decoding. Restart to apply changes |
|
|
85
|
-
| `preset` | roster default `standard` | Agent preset for new sessions;
|
|
176
|
+
| `preset` | roster default `standard` | Agent preset for new sessions; precedence: `DSH_TUI_PRESET` (this run) > the persisted `/preset` choice > this field (deployment default) > the roster default |
|
|
86
177
|
| `sessionId` | unset | Session to resume, normally injected by the Windows `--resume` launcher |
|
|
87
|
-
| `backend` | unset (the backend `/kernel` remembers, else `dsh`) | Session backend: `dsh`, or the experimental `claude` / `codex
|
|
178
|
+
| `backend` | unset (the backend `/kernel` remembers, else `dsh`) | Session backend: the built-in `dsh`, or an installed backend (the experimental `claude` / `codex`, plus plugin backends; case-insensitive). **An unknown or uninstalled value starts on `dsh` with a warning**, never a crash. The profile row reads `DSH_TUI_BACKEND`, which `dsh-tui --backend <id>` sets. When the profile's own patch writes it as a `!!js` expression (other than one that only forwards `DSH_TUI_BACKEND`, such as the bundled row's `process.env.DSH_TUI_BACKEND \|\| undefined`), the launch goes through `dsh --profile` (only the profile's Loader evaluates it), except for a `/kernel` switch. See [Claude backend](claude-backend.en.md) |
|
|
179
|
+
|
|
180
|
+
For the DeepSeek brand, when header art (`whale`) is enabled, `companion.skin` and the Maid-portrait toggle (`whaleGirl`) choose the splash art with this precedence:
|
|
181
|
+
|
|
182
|
+
| `companion.skin` | Splash (header) art slot | Maid-portrait toggle |
|
|
183
|
+
| --- | --- | --- |
|
|
184
|
+
| `deepy` (default) | the Deepy mascot (letter-grid animation only — no raster) | **No effect** |
|
|
185
|
+
| `whaleGirl` | Whale-girl mascot (real image through the image protocol; letter-grid fallback without it) | **No effect** |
|
|
186
|
+
| `whale` | Original path: the pixel whale; the maid portrait once the Maid-portrait toggle is on (real image preferred, character-art fallback) | **Applies** |
|
|
187
|
+
|
|
188
|
+
The table applies when Brand look (`brand`) resolves to `deepseek` (including `auto` on the DSH backend). Claude uses its own raster or character artwork. Codex uses its own raster portrait, falling back to the maid character art when raster images are unavailable or fail to load. Neither brand uses `companion.skin` or `whaleGirl`; choose the DeepSeek brand look to use the skins or maid portrait above. Turning header art off hides the art for every brand.
|
|
88
189
|
|
|
89
190
|
### Precedence and force-off
|
|
90
191
|
|
|
@@ -178,8 +279,9 @@ preset registry: `@deepseek-ai/dsh-agent-preset-registry` on 0.1.7, or
|
|
|
178
279
|
### Default and precedence
|
|
179
280
|
|
|
180
281
|
- The default is stored in `~/.dsh-tui/agent-preset.json`.
|
|
181
|
-
- Precedence:
|
|
182
|
-
preference, then
|
|
282
|
+
- Precedence: `DSH_TUI_PRESET` (this run's explicit instruction), then the
|
|
283
|
+
persisted preference, then an explicit `config.preset` (deployment default),
|
|
284
|
+
then the roster default `standard`.
|
|
183
285
|
- A legacy `code` preference resolves to `ptc` when the active roster no
|
|
184
286
|
longer provides `code`, then migrates after that successful resolution;
|
|
185
287
|
rc rosters keep their real `code` id, and session logs are never rewritten.
|
|
@@ -202,6 +304,51 @@ preset registry: `@deepseek-ai/dsh-agent-preset-registry` on 0.1.7, or
|
|
|
202
304
|
- The pin is the only candidate; a miss warns and skips registration, exposing
|
|
203
305
|
the full tool catalog on the first round.
|
|
204
306
|
|
|
307
|
+
### Windows bash tool (winbash)
|
|
308
|
+
|
|
309
|
+
`presets/winbash.mjs` is a bundled Windows `bash` tool plugin. Mounted at
|
|
310
|
+
the host layer it serves **every Agent preset** (unrelated to Liangshen mode; it is not a
|
|
311
|
+
`/preset` entry). Its behavior mirrors the official `dsh-tool-bash` — the official bash
|
|
312
|
+
executor `dsh-bash-local` is POSIX-only and does not support Windows, hence this plugin.
|
|
313
|
+
|
|
314
|
+
- Every call runs `bash -c <command>` in a fresh shell; state never persists across calls.
|
|
315
|
+
`description` is required (labels the call in the UI).
|
|
316
|
+
- `run_in_background: true` admits the command as a background job and returns the job id
|
|
317
|
+
at once; collect with `job_output`, stop with `job_kill`. No timeout applies in the
|
|
318
|
+
background.
|
|
319
|
+
- A foreground command that outlives its timeout keeps running as its background job and
|
|
320
|
+
hands the id back (`promoteOnTimeout`; can be disabled).
|
|
321
|
+
- Non-zero exits are reported as `[exit code: N]` markers, not tool errors.
|
|
322
|
+
- Compositions without a job registry degrade to foreground-only (timeout kills) and do
|
|
323
|
+
not expose `run_in_background`.
|
|
324
|
+
- Git Bash discovery follows the Liangshen chain (see above); set
|
|
325
|
+
`DSH_TUI_WINBASH_BASH_PATH` (legacy name `DSH_TUI_LIANGSHEN_BASH_PATH` still works)
|
|
326
|
+
to pin `bash.exe`.
|
|
327
|
+
|
|
328
|
+
Mounting: copy `presets/winbash.mjs` into the profile root and append to the
|
|
329
|
+
plugin list of `cordis.patch.yml`:
|
|
330
|
+
|
|
331
|
+
```yaml
|
|
332
|
+
- id: windows-bash
|
|
333
|
+
name: './custom-bash.mjs'
|
|
334
|
+
disabled: !!js process.platform !== 'win32'
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Configuration (the mount row's `config`):
|
|
338
|
+
|
|
339
|
+
| Key | Default | Meaning |
|
|
340
|
+
|---|---|---|
|
|
341
|
+
| `timeoutMs` | `120000` | Default foreground timeout (ms) |
|
|
342
|
+
| `maxTimeoutMs` | `600000` | Per-call timeout cap (also the tool-level hard cap with jobs) |
|
|
343
|
+
| `maxOutputBytes` | `64000` | Per-stream in-memory output cap |
|
|
344
|
+
| `enableRunInBackground` | `true` | Expose the background flag (needs a job registry) |
|
|
345
|
+
| `promoteOnTimeout` | `true` | Promote a timed-out foreground call instead of killing it |
|
|
346
|
+
| `bashPath` | — | Pin `bash.exe` explicitly (same as the env variable) |
|
|
347
|
+
|
|
348
|
+
> The Liangshen preset's built-in `custom-bash` registers the same `bash` tool name:
|
|
349
|
+
> mount at most one of them per profile. When running the Liangshen preset, set this
|
|
350
|
+
> row's `disabled` to `true` (the Liangshen copy is foreground-only).
|
|
351
|
+
|
|
205
352
|
### Custom presets
|
|
206
353
|
|
|
207
354
|
On 0.1.7, declare `@deepseek-ai/dsh-agent-preset` through a profile/bundle with
|
|
@@ -256,16 +403,19 @@ for the complete field reference.
|
|
|
256
403
|
| `DSH_HOME` | Harness home (profiles, sessions, credentials, attachments); falls back to the upstream default `~/.dsh` |
|
|
257
404
|
| `DSH_TUI_PERSONA` | Override the Agent persona injected by the composition |
|
|
258
405
|
| `DSH_TUI_PRESET` | Override the default Agent preset for new sessions |
|
|
259
|
-
| `DSH_TUI_THEME` | Pin a built-in (`auto`/`light`/`dark`/`dark-ansi`), static theme, or registered plugin theme ahead of persisted selection |
|
|
406
|
+
| `DSH_TUI_THEME` | Pin a built-in (`auto`/`light`/`dark`/`dark-ansi`/`pink-day`/`pink-night`/`pink-ansi`), static theme, or registered plugin theme ahead of persisted selection |
|
|
260
407
|
| `DSH_TUI_DISABLE_MOUSE` | Temporarily disable mouse handling in fullscreen mode |
|
|
261
408
|
| `DSH_TUI_DISABLE_TERMINAL_IMAGES` | Set to `1` to force Kitty/Sixel probing, preview reads/decoding, and terminal image rendering off, overriding config and /settings; text metadata remains visible |
|
|
262
409
|
| `DSH_TUI_IMAGE_PROTOCOL` | `auto` (default), `kitty`, `sixel`, or `none`; override protocol selection without bypassing the preview preference, disable switch, non-fullscreen, accessibility or multiplexer guards |
|
|
263
410
|
| `DSH_TUI_RESUME_SESSION` | Resume a session at startup, normally set by a launcher |
|
|
264
|
-
| `
|
|
411
|
+
| `DSH_TUI_RESUME_BACKEND` | The backend `DSH_TUI_RESUME_SESSION` was read from; set only when the launcher **derived** the target (a bare `--resume` reading that backend's last session, or the safe-mode retry following the last-run record). When the boot lands on another backend — an uninstalled id falling back to `dsh`, or the remembered kernel when `DSH_TUI_BACKEND` is absent — that target **refuses with a non-zero exit**: never carried across, never a silent cold start, never a new session (the safe-mode retry is the one exception, degrading to a warning plus a cold start). An id the user passed explicitly carries no mark and is handed over as it is |
|
|
412
|
+
| `DSH_TUI_RESUME_RETRY` | One-shot marker: this boot is safe mode's "retry normal startup". A retry derives its target from the last-run record, whose backend may no longer be registered, so a launch carrying this marker degrades a revoked resume target to a warning plus a cold start instead of failing. The boot deletes it from `process.env` as soon as it reads it |
|
|
413
|
+
| `DSH_TUI_BACKEND` | Session backend (built-in `dsh` / `claude` / `codex`, or an installed plugin backend), normally set by `dsh-tui --backend`; an uninstalled or misspelled id starts on `dsh` with a warning (with a resume request in play it refuses instead, see above) |
|
|
414
|
+
| `DSH_TUI_HOST_ENTRY` | Set to `0` to start both kernels through `dsh --profile` (by default both start from the package's own entry). When the entry cannot use the installed dsh (the `dsh` on `PATH` is not `@deepseek-ai/dsh`, its launcher script cannot be followed, or a module or export it needs is missing), a DSH launch falls back to `dsh --profile` by itself and says why in the terminal and on screen |
|
|
265
415
|
| `DSH_TUI_CLAUDE_PERMISSION_MODE` | Start permission mode of the Claude backend (`default`/`acceptEdits`/`plan`/`dontAsk`/`bypassPermissions`); wins over the mode `/permission` remembered |
|
|
266
416
|
| `DSH_TUI_WORKSPACE_TARGET` | Workspace path or URI resolved at startup, normally set by `dsh-tui <target>` |
|
|
267
417
|
| `DSH_TUI_SESSION_ROOT` | Override the JSONL session root; profile default `$DSH_HOME/sessions`, bare `cordis.yml` default `~/.dsh-tui/sessions` |
|
|
268
|
-
| `DSH_PERMISSION_MODE` | Override non-Windows sandbox policy, such as `workspace-write` or `danger-full-access` |
|
|
418
|
+
| `DSH_PERMISSION_MODE` | Override the non-Windows sandbox policy, such as `workspace-write` or `danger-full-access`; the initial permission plane of this launch, outranking the remembered `/permission` choice |
|
|
269
419
|
| `DSH_TUI_WORKSPACE` | Working directory used by the Windows `dsh-tui.cmd` launcher |
|
|
270
420
|
| `DSH_TUI_DEBUG` | Enable dsh-tui diagnostics on stderr |
|
|
271
421
|
| `DSH_TUI_RENDER_LOG` | File path for raw ANSI frame capture |
|
|
@@ -325,8 +475,8 @@ The `/provider` add branch signs in to ChatGPT/Codex (`openai-codex`), Claude
|
|
|
325
475
|
(`anthropic`), or Grok (`xai`) subscriptions. When the installed host's pi-ai
|
|
326
476
|
catalog ships the corresponding flows, it also offers OpenAI direct ChatGPT sign-in
|
|
327
477
|
(`openai`, using the OpenAI API rather than the legacy Codex backend) and Meta
|
|
328
|
-
Muse (`meta`). The primary validated DSH `0.2.
|
|
329
|
-
`
|
|
478
|
+
Muse (`meta`). The primary validated DSH `0.2.1-rc.2` development fixture resolves pi-ai
|
|
479
|
+
`1.2.0`, which includes Meta Muse and OpenAI direct sign-in.
|
|
330
480
|
`/auth status`, `/auth login [provider]`, and `/auth logout <provider>` use
|
|
331
481
|
that credential store for these pi-ai routes. Browser authorization tries to open the page
|
|
332
482
|
automatically and offers the authorization link and manual callback URL/code
|