@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
|
@@ -3,18 +3,17 @@ import React from 'react';
|
|
|
3
3
|
// 粘贴/清洗语义已抽到 utils/inputPaste.ts(方案 B:PromptInput 与 Launchpad 共享;
|
|
4
4
|
// 行为逐字节不变,只是搬了家)。
|
|
5
5
|
import { sanitizeEditableText, sanitizePastedText } from '../utils/inputPaste.js';
|
|
6
|
-
import {
|
|
7
|
-
import { open, unlink } from 'node:fs/promises';
|
|
6
|
+
import { unlink } from 'node:fs/promises';
|
|
8
7
|
import { basename, resolve } from 'node:path';
|
|
9
8
|
import { t } from '../i18n.js';
|
|
10
|
-
import { kernelDisplayName } from './kernelCatalog.js';
|
|
11
9
|
import { Box, Text, useInput, useTerminalSize, useTheme } from '../ui.js';
|
|
10
|
+
import { COMPOSER_IMAGE_TOKEN, imageTokenSpans, imageTokenAround, snapOffImageToken, expandImageTokenRange } from './composerImageTokens.js';
|
|
12
11
|
import { EffortChargeGlyph } from './EffortChargeGlyph.js';
|
|
13
12
|
import { EffortInputBorder } from './EffortInputBorder.js';
|
|
14
13
|
import { EffortTierBadge } from './EffortTierBadge.js';
|
|
15
14
|
import { cursorGlyphColor, getTheme } from '../theme.js';
|
|
16
15
|
import { sessionColorHex } from '../terminal-utils/sessionColors.js';
|
|
17
|
-
import { useDeclaredCursor } from '../ink/hooks/use-declared-cursor.js';
|
|
16
|
+
import { useDeclaredCursor, useNativeCursor } from '../ink/hooks/use-declared-cursor.js';
|
|
18
17
|
import { TerminalWriteContext } from '../ink/useTerminalNotification.js';
|
|
19
18
|
import { setClipboard } from '../ink/termio/osc.js';
|
|
20
19
|
import { noteAuxNumber } from '../ink/geometry-trace.js';
|
|
@@ -24,10 +23,10 @@ import { truncateToWidth } from '../ink/truncateToWidth.js';
|
|
|
24
23
|
import { getGraphemeSegmenter } from '../utils/intl.js';
|
|
25
24
|
import { draftWordRangeAt, isDraftWordBoundary } from '../utils/draftWordBoundary.js';
|
|
26
25
|
import { formatClipboardInsert, readClipboard } from '../utils/clipboard.js';
|
|
27
|
-
import { imagePathMediaType, parsePastedImagePath, stageClipboardFilePaths } from '../utils/pastedImagePath.js';
|
|
26
|
+
import { imagePathMediaType, parsePastedImagePath, readBoundedRegularFile, stageClipboardFilePaths } from '../utils/pastedImagePath.js';
|
|
28
27
|
import { editInExternalEditor } from '../utils/externalEditor.js';
|
|
29
28
|
import { setPromptEditorNode, EditorButton } from './PromptEditor.js';
|
|
30
|
-
import { isHiddenCommandName, isUnavailableLocalCommand, parseCommandName, workingHoldOf } from '../commands.js';
|
|
29
|
+
import { isBootSafeCommand, isHiddenCommandName, isUnavailableLocalCommand, parseCommandName, workingHoldOf } from '../commands.js';
|
|
31
30
|
import { appendHistory, HISTORY_LIMIT, historyProjectKey, loadHistoryOldestFirst } from '../history.js';
|
|
32
31
|
import { mentionAtCaret } from '../utils/mentions.js';
|
|
33
32
|
import { preserveSelection } from '../utils/fileSuggestions.js';
|
|
@@ -132,45 +131,9 @@ function extendDeleteRun(last, backward, removed) {
|
|
|
132
131
|
const FOLD_MIN_LINES = 6;
|
|
133
132
|
const FOLD_MIN_CHARS = 600;
|
|
134
133
|
const isBigInput = (text) => text.split('\n').length >= FOLD_MIN_LINES || text.length >= FOLD_MIN_CHARS;
|
|
135
|
-
const COMPOSER_IMAGE_TOKEN = /\[Image #\d+\]/gu;
|
|
136
134
|
/** Format label for one image media type, matching the image preview card's
|
|
137
135
|
* title (`JPEG`, `PNG`, `WEBP`, `GIF`). */
|
|
138
136
|
const mediaTypeLabel = (mediaType) => mediaType.replace(/^image\//u, '').replace(/\+xml$/u, '').toUpperCase();
|
|
139
|
-
/** Every `[Image #N]` in `text`, in order. */
|
|
140
|
-
function imageTokenSpans(text) {
|
|
141
|
-
const spans = [];
|
|
142
|
-
for (const match of text.matchAll(COMPOSER_IMAGE_TOKEN)) {
|
|
143
|
-
const start = match.index ?? 0;
|
|
144
|
-
spans.push({ start, end: start + match[0].length, token: match[0] });
|
|
145
|
-
}
|
|
146
|
-
return spans;
|
|
147
|
-
}
|
|
148
|
-
/** The span whose interior (exclusive of both edges) contains `offset`. */
|
|
149
|
-
function imageTokenAround(spans, offset) {
|
|
150
|
-
return spans.find(span => span.start < offset && offset < span.end);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* A caret never rests inside a staged token: an offset in a span's interior
|
|
154
|
-
* moves to the edge `prefer` names — `'start'` (the token becomes the caret
|
|
155
|
-
* cluster), `'end'`, or whichever is nearer.
|
|
156
|
-
*/
|
|
157
|
-
function snapOffImageToken(spans, offset, prefer) {
|
|
158
|
-
const span = imageTokenAround(spans, offset);
|
|
159
|
-
if (span === undefined)
|
|
160
|
-
return offset;
|
|
161
|
-
if (prefer === 'start')
|
|
162
|
-
return span.start;
|
|
163
|
-
if (prefer === 'end')
|
|
164
|
-
return span.end;
|
|
165
|
-
return offset - span.start < span.end - offset ? span.start : span.end;
|
|
166
|
-
}
|
|
167
|
-
/** Expand a deletion or selection to include every staged token it touches. */
|
|
168
|
-
function expandImageTokenRange(spans, start, end) {
|
|
169
|
-
return {
|
|
170
|
-
start: snapOffImageToken(spans, start, 'start'),
|
|
171
|
-
end: snapOffImageToken(spans, end, 'end'),
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
137
|
/** Capabilities referenced by `text`, in first occurrence order. A raw token
|
|
175
138
|
* restored from disk/history has no sidecar entry and therefore stays inert. */
|
|
176
139
|
export function composerImageRefsForText(text, stagedByToken) {
|
|
@@ -187,36 +150,6 @@ export function composerImageRefsForText(text, stagedByToken) {
|
|
|
187
150
|
}
|
|
188
151
|
return refs;
|
|
189
152
|
}
|
|
190
|
-
/** Read one regular file through one descriptor, bounded to `maxBytes + 1`.
|
|
191
|
-
* The extra byte detects a file that grows after fstat; a short read detects
|
|
192
|
-
* shrinkage. This avoids stat(path) → readFile(path)'s path-swap TOCTOU and
|
|
193
|
-
* never allocates from an untrusted size before the profile limit is checked. */
|
|
194
|
-
async function readBoundedRegularFile(path, maxBytes) {
|
|
195
|
-
// O_NONBLOCK keeps a pasted FIFO/device path from parking the UI before
|
|
196
|
-
// fstat can reject it; regular-file reads are unchanged.
|
|
197
|
-
const file = await open(path, fsConstants.O_RDONLY | fsConstants.O_NONBLOCK);
|
|
198
|
-
try {
|
|
199
|
-
const info = await file.stat();
|
|
200
|
-
if (!info.isFile())
|
|
201
|
-
throw new Error(`${basename(path)} is not a regular file`);
|
|
202
|
-
if (info.size > maxBytes)
|
|
203
|
-
throw new Error(`image exceeds this profile's per-image size limit`);
|
|
204
|
-
const data = Buffer.allocUnsafe(info.size + 1);
|
|
205
|
-
let offset = 0;
|
|
206
|
-
while (offset < data.byteLength) {
|
|
207
|
-
const { bytesRead } = await file.read(data, offset, data.byteLength - offset, offset);
|
|
208
|
-
if (bytesRead === 0)
|
|
209
|
-
break;
|
|
210
|
-
offset += bytesRead;
|
|
211
|
-
}
|
|
212
|
-
if (offset !== info.size)
|
|
213
|
-
throw new Error(`${basename(path)} changed while it was being read`);
|
|
214
|
-
return data.subarray(0, offset);
|
|
215
|
-
}
|
|
216
|
-
finally {
|
|
217
|
-
await file.close();
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
153
|
/** Index of the word boundary at or before `cursor` (readline alt+b). */
|
|
221
154
|
function wordBoundaryLeft(text, cursor) {
|
|
222
155
|
let index = cursor;
|
|
@@ -394,11 +327,11 @@ const DOUBLE_CLICK_MS = 500;
|
|
|
394
327
|
/**
|
|
395
328
|
* dsh-TUI prompt input: rounded border box (top+bottom borders
|
|
396
329
|
* only), `❯ ` prompt char (dimmed while a turn is working), the text with a
|
|
397
|
-
*
|
|
330
|
+
* native cursor at the editing position, and above it the slash-command /
|
|
398
331
|
* file-completion suggestion card (SuggestionCard: rounded panel with the
|
|
399
332
|
* selected row behind a `❯` pointer in the theme's `suggestion` color).
|
|
400
333
|
*
|
|
401
|
-
* Empty input: a
|
|
334
|
+
* Empty input: a caret on a reserved blank cell and nothing else — no
|
|
402
335
|
* placeholder text, so the terminal-painted IME preedit (pinyin) at the
|
|
403
336
|
* parked cursor can never be overlaid on anything.
|
|
404
337
|
*
|
|
@@ -421,21 +354,13 @@ const DOUBLE_CLICK_MS = 500;
|
|
|
421
354
|
* working) interrupts the turn and delivers them right away; Ctrl+Enter
|
|
422
355
|
* aborts the turn and sends the current input immediately.
|
|
423
356
|
*/
|
|
424
|
-
export function PromptInput({ channel, toastSuppressed, suspended = false, draftCache, helpOpen, onToggleHelp, onRunCommand, selectionActive, fillText, onFillConsumed, onRewindRequest, onBackgroundRequest, onOpenSessions, backgroundAgentsNeedingInput, controllerRef, onCaretImage, caretPreviewOpen = false, onDismissCaretPreview, now = Date.now, }) {
|
|
357
|
+
export function PromptInput({ channel, toastSuppressed, suspended = false, cursorParking = true, draftCache, helpOpen, onToggleHelp, onRunCommand, selectionActive, fillText, onFillConsumed, onRewindRequest, onBackgroundRequest, onOpenSessions, backendLabel, backgroundAgentsNeedingInput, controllerRef, onCaretImage, caretPreviewOpen = false, onDismissCaretPreview, now = Date.now, }) {
|
|
425
358
|
const [themeName] = useTheme();
|
|
359
|
+
const nativeCursor = useNativeCursor();
|
|
426
360
|
/**
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
* the block fill, and the glyph on it is whichever ink contrasts with that
|
|
431
|
-
* fill (cursorGlyphColor) — `inverseText` alone cannot serve a light caret;
|
|
432
|
-
* empty keeps the inverse-video caret for palettes that predate the key.
|
|
433
|
-
*
|
|
434
|
-
* A palette a legacy runtime resolver returns can be missing the key
|
|
435
|
-
* altogether (normalizeThemePalette hands such a palette back untouched), so
|
|
436
|
-
* the undefined case normalizes here — ONE place, both consumers below read
|
|
437
|
-
* `''` and take the inverse path. Without it the caret renders with no
|
|
438
|
-
* background at all (the native cursor is hidden: the caret disappears).
|
|
361
|
+
* Painted caret fill for static snapshots and atomic image-token focus.
|
|
362
|
+
* Ordinary TTY editing uses the terminal's own cursor. A legacy palette
|
|
363
|
+
* may omit `cursor`; normalize that case to the inverse-video fallback.
|
|
439
364
|
*/
|
|
440
365
|
const cursorTheme = getTheme(themeName);
|
|
441
366
|
const cursorColor = cursorTheme.cursor ?? '';
|
|
@@ -1029,6 +954,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1029
954
|
// index space: `suggestions` stays the only list selection, Enter dispatch and
|
|
1030
955
|
// clicks read, and the default selection stays the first normal-region row.
|
|
1031
956
|
// The region is marked by colour only — it costs no display row.
|
|
957
|
+
const completionInput = value;
|
|
1032
958
|
const completions = value.startsWith('/') ? channel.commandCompletions(value) : [];
|
|
1033
959
|
const holdOf = (commandLine) => workingHoldOf(commandLine, channel.commandList.find(command => command.name === commandLine.replace(/^\//, '').split(/[\t ]/u)[0])?.skill === true) !== undefined;
|
|
1034
960
|
const normalCompletions = channel.working
|
|
@@ -1651,6 +1577,10 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1651
1577
|
clearDeliveredDraft();
|
|
1652
1578
|
channel.notify(t('input-interrupt-immediate'), { timeoutMs: 2500 });
|
|
1653
1579
|
};
|
|
1580
|
+
/** The startup phase's refusal (see `ChannelUi.ready`). */
|
|
1581
|
+
const notifyNotReady = () => {
|
|
1582
|
+
channel.notify(t('startup-not-ready', { backend: backendLabel ?? channel.backendCapabilities.backendId }), { color: 'warning', timeoutMs: 2500 });
|
|
1583
|
+
};
|
|
1654
1584
|
/**
|
|
1655
1585
|
* Execute a slash command (built-in, plugin-registered, or hidden) when
|
|
1656
1586
|
* the input resolves to one: the name parses as the first token so
|
|
@@ -1665,6 +1595,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1665
1595
|
const parsed = parseCommandName(text);
|
|
1666
1596
|
if (parsed === undefined)
|
|
1667
1597
|
return false;
|
|
1598
|
+
// Not ready (`ChannelUi.ready`): only boot-safe commands run; the rest
|
|
1599
|
+
// are refused before dispatch so the draft stays. The one chokepoint.
|
|
1600
|
+
if (channel.ready === false && !isBootSafeCommand(parsed.name)) {
|
|
1601
|
+
notifyNotReady();
|
|
1602
|
+
return true;
|
|
1603
|
+
}
|
|
1668
1604
|
const command = channel.commandList.find(entry => entry.name === parsed.name);
|
|
1669
1605
|
// A built-in the bound backend does not serve is hidden from the menu and
|
|
1670
1606
|
// Tab, and a typed one must neither run nor reach the model as text. A
|
|
@@ -1672,7 +1608,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1672
1608
|
// oxlint-disable-next-line typescript/no-unnecessary-condition -- partial embedder channels omit the snapshot
|
|
1673
1609
|
const capabilities = channel.backendCapabilities;
|
|
1674
1610
|
if (command === undefined && isUnavailableLocalCommand(parsed.name, capabilities)) {
|
|
1675
|
-
channel.notify(t('cmd-unavailable-backend', { cmd: parsed.name, backend: capabilities === undefined ? '' :
|
|
1611
|
+
channel.notify(t('cmd-unavailable-backend', { cmd: parsed.name, backend: capabilities === undefined ? '' : backendLabel ?? capabilities.backendId }), {
|
|
1676
1612
|
color: 'warning',
|
|
1677
1613
|
timeoutMs: 4000,
|
|
1678
1614
|
});
|
|
@@ -1774,7 +1710,10 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1774
1710
|
editDocked(dockSelectedRef.current);
|
|
1775
1711
|
return;
|
|
1776
1712
|
}
|
|
1777
|
-
|
|
1713
|
+
// A preceding edit in this stdin batch has already updated valueRef, but
|
|
1714
|
+
// the completion rows still belong to the last render. Submit the current
|
|
1715
|
+
// draft through the ordinary path instead of accepting a stale row.
|
|
1716
|
+
if (overlayOpen && value === completionInput) {
|
|
1778
1717
|
const command = suggestions[selectedCommand];
|
|
1779
1718
|
if (command) {
|
|
1780
1719
|
tryRunCommand(command.commandLine);
|
|
@@ -1790,6 +1729,13 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1790
1729
|
return;
|
|
1791
1730
|
}
|
|
1792
1731
|
}
|
|
1732
|
+
// Not ready: refuse before any path that clears the draft.
|
|
1733
|
+
if (channel.ready === false && value.trim() !== '') {
|
|
1734
|
+
if (tryRunCommand(value))
|
|
1735
|
+
return;
|
|
1736
|
+
notifyNotReady();
|
|
1737
|
+
return;
|
|
1738
|
+
}
|
|
1793
1739
|
// A docked queue (Esc parked it) owns a bare Enter on an EMPTY draft
|
|
1794
1740
|
// (Claude Code parity: "…or Enter to send them now"). A draft in
|
|
1795
1741
|
// progress keeps the ordinary submit path and the dock stays parked —
|
|
@@ -2380,6 +2326,9 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2380
2326
|
return;
|
|
2381
2327
|
}
|
|
2382
2328
|
const line = (value + input).trim();
|
|
2329
|
+
// Not ready: the line becomes the draft first, so a refused command keeps it.
|
|
2330
|
+
if (channel.ready === false)
|
|
2331
|
+
setInput(line);
|
|
2383
2332
|
if (line.startsWith('/')) {
|
|
2384
2333
|
const matches = channel.commandCompletions(line);
|
|
2385
2334
|
if (matches.length === 1) {
|
|
@@ -2387,8 +2336,13 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2387
2336
|
return;
|
|
2388
2337
|
}
|
|
2389
2338
|
}
|
|
2390
|
-
if (
|
|
2391
|
-
|
|
2339
|
+
if (tryRunCommand(line))
|
|
2340
|
+
return;
|
|
2341
|
+
if (channel.ready === false) {
|
|
2342
|
+
notifyNotReady();
|
|
2343
|
+
return;
|
|
2344
|
+
}
|
|
2345
|
+
submitText(line);
|
|
2392
2346
|
return;
|
|
2393
2347
|
}
|
|
2394
2348
|
if (key.return && isMod(key)) {
|
|
@@ -2477,7 +2431,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2477
2431
|
}
|
|
2478
2432
|
if (key.tab && overlayOpen) {
|
|
2479
2433
|
const command = suggestions[selectedCommand];
|
|
2480
|
-
if (command) {
|
|
2434
|
+
if (command && value === completionInput) {
|
|
2481
2435
|
updateFoldBlock(null);
|
|
2482
2436
|
setInput(command.replacement, command.replacement.length, 'step');
|
|
2483
2437
|
}
|
|
@@ -3327,18 +3281,10 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3327
3281
|
: visualLineRanges(value, inputWidth);
|
|
3328
3282
|
/**
|
|
3329
3283
|
* Highlight runs for one rendered row, shared by the inline prompt and the
|
|
3330
|
-
* expanded editor:
|
|
3331
|
-
*
|
|
3332
|
-
*
|
|
3333
|
-
*
|
|
3334
|
-
* the caret column (solid block) — [col, next boundary) covers a surrogate
|
|
3335
|
-
* pair or ZWJ emoji as one glyph; at the text end it shows a blank inverse
|
|
3336
|
-
* cell like the empty-input caret (appended after everything, so a selection
|
|
3337
|
-
* ending there cannot swallow it).
|
|
3338
|
-
*
|
|
3339
|
-
* A palette that sets `cursor` splits the caret off the selection: the
|
|
3340
|
-
* caret is then its own kind (painted with `caretCell`) instead of merging
|
|
3341
|
-
* into the selection's inverse run.
|
|
3284
|
+
* expanded editor: selection and image-token focus stay painted. A native
|
|
3285
|
+
* caret leaves ordinary glyphs unchanged; snapshots paint the whole caret
|
|
3286
|
+
* grapheme using the theme fill or inverse video. The trailing blank is
|
|
3287
|
+
* retained in both modes so the terminal has a cell for an end-of-line caret.
|
|
3342
3288
|
*/
|
|
3343
3289
|
const rowHighlightPieces = (text, absoluteLine) => {
|
|
3344
3290
|
const [rowStart] = lineRanges[absoluteLine] ?? [0, 0];
|
|
@@ -3370,8 +3316,10 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3370
3316
|
const clusterEnd = tokenAtCaret !== undefined
|
|
3371
3317
|
? Math.min(tokenAtCaret.end - rowStart, text.length)
|
|
3372
3318
|
: nextGraphemeBoundary(graphemeBoundaries(text), col);
|
|
3373
|
-
if (clusterEnd > col)
|
|
3374
|
-
|
|
3319
|
+
if (clusterEnd > col) {
|
|
3320
|
+
if (!nativeCursor || tokenAtCaret !== undefined)
|
|
3321
|
+
fill(col, clusterEnd, caretKind);
|
|
3322
|
+
}
|
|
3375
3323
|
else
|
|
3376
3324
|
endBlankCaret = col === text.length;
|
|
3377
3325
|
}
|
|
@@ -3391,7 +3339,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3391
3339
|
pos = end;
|
|
3392
3340
|
}
|
|
3393
3341
|
if (endBlankCaret) {
|
|
3394
|
-
pieces.push({ text: ' ', inverse: caretKind === INVERSE, chip: false, caret: caretKind === CARET });
|
|
3342
|
+
pieces.push({ text: ' ', inverse: !nativeCursor && caretKind === INVERSE, chip: false, caret: !nativeCursor && caretKind === CARET });
|
|
3395
3343
|
}
|
|
3396
3344
|
return pieces;
|
|
3397
3345
|
};
|
|
@@ -3501,16 +3449,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3501
3449
|
// (padding + gutter included), so those columns ride along and the
|
|
3502
3450
|
// clamp grows with them.
|
|
3503
3451
|
//
|
|
3504
|
-
//
|
|
3505
|
-
// is
|
|
3506
|
-
//
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
// preedit target). Only the expanded editor declares against a wider box
|
|
3511
|
-
// (gutter + padding), so only that branch adds columns.
|
|
3512
|
-
column: Math.min(caretVisualCol + (expanded ? editorGutterCols + 1 : 0), expanded ? editorGutterCols + 1 + inputWidth : inputWidth),
|
|
3513
|
-
active: !suspended && !selectionActive,
|
|
3452
|
+
// Session entry and `❯ ` sit outside the value box. The inline fold
|
|
3453
|
+
// prefix is inside its first row; the expanded editor instead includes
|
|
3454
|
+
// a gutter and padding. Add only the columns inside the declared node.
|
|
3455
|
+
column: Math.min(caretVisualCol + (expanded ? editorGutterCols + 1 : caretVisualLine === 0 ? prefixCols : 0), expanded ? editorGutterCols + 1 + inputWidth : inputWidth),
|
|
3456
|
+
active: cursorParking && !suspended && !selectionActive && caretVisualLine >= windowStart && caretVisualLine < windowStart + visibleLines.length,
|
|
3457
|
+
visible: nativeCursor,
|
|
3514
3458
|
});
|
|
3515
3459
|
/**
|
|
3516
3460
|
* Map a pointer position relative to the value box to a UTF-16 offset
|
|
@@ -3794,8 +3738,8 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3794
3738
|
// ── 全屏草稿编辑节点 ────────────────────────────────────────────────
|
|
3795
3739
|
// 每次渲染构造新鲜闭包(value/caret/handlers),经 module store 发布给
|
|
3796
3740
|
// Chat 根部末尾的 PromptEditorLayer(树序最后 → 盖住全部后绘兄弟)。
|
|
3797
|
-
// useInsertionEffect 发布:sink
|
|
3798
|
-
//
|
|
3741
|
+
// useInsertionEffect 发布:sink 经 store 独立提交,useDeclaredCursor
|
|
3742
|
+
// 在 layout effect 与 ref 挂载时声明,编辑区稍后挂载也能接管光标。
|
|
3799
3743
|
// 点击/拖拽坐标以内容区为原点(localCol 去掉行号槽宽度)。
|
|
3800
3744
|
const editorNode = editorVisible ? (_jsxs(Box, { flexDirection: "column", width: "100%", height: "100%", borderStyle: "round", borderColor: promptAccent, backgroundColor: "toolCardBackground", children: [_jsxs(Box, { flexDirection: "row", flexShrink: 0, paddingLeft: 1, paddingRight: 1, children: [_jsx(Text, { bold: true, color: promptAccent, children: `✎ ${t('input-expand-editor-title')}` }), _jsx(Box, { flexGrow: 1 }), _jsx(Text, { dimColor: true, children: t('input-fold-stats', {
|
|
3801
3745
|
lines: value.split('\n').length,
|
|
@@ -3869,7 +3813,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3869
3813
|
onPick: (index) => {
|
|
3870
3814
|
const command = suggestions[index];
|
|
3871
3815
|
if (command)
|
|
3872
|
-
tryRunCommand(command.commandLine);
|
|
3816
|
+
tryRunCommand(valueRef.current === completionInput ? command.commandLine : valueRef.current);
|
|
3873
3817
|
},
|
|
3874
3818
|
// 滚轮 = 移动选中行(与 ↑/↓ 同路径,窗口跟随)
|
|
3875
3819
|
onWheelStep: (step) => {
|
|
@@ -3886,7 +3830,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3886
3830
|
setHomeHovered(true);
|
|
3887
3831
|
}, onMouseLeave: () => {
|
|
3888
3832
|
setHomeHovered(false);
|
|
3889
|
-
}, children: _jsx(Text, { dimColor: !homeHovered, bold: homeHovered, color: homeHovered ? promptAccent : undefined, children: HOME_BUTTON_TEXT }) })), _jsx(EffortChargeGlyph, { effort: channel.reasoningEffort, levels: channel.effortLevels, working: channel.working }), vimEnabled && (_jsxs(Text, { bold: true, color: vimInsert ? 'success' : 'warning', children: [vimInsert ? 'INSERT' : 'NORMAL', " "] })), _jsx(Box, { ref: expanded ? undefined : valueBoxRef, flexGrow: 1, flexShrink: 1, onClick: handleValueClick, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragEnd: handleDragEnd, children: value.length === 0 ? (_jsxs(_Fragment, { children: [caretCell('empty', ' '), _jsx(EffortTierBadge, { effort: channel.reasoningEffort, levels: channel.effortLevels, columns: columns, leadingColumns: 3 + homeButtonCols })] })) : (_jsx(Box, { flexDirection: "column", children: rendered })) }), expandEnabled && (_jsx(Box, { flexShrink: 0, onClick: (event) => {
|
|
3833
|
+
}, children: _jsx(Text, { dimColor: !homeHovered, bold: homeHovered, color: homeHovered ? promptAccent : undefined, children: HOME_BUTTON_TEXT }) })), _jsx(EffortChargeGlyph, { effort: channel.reasoningEffort, levels: channel.effortLevels, working: channel.working }), vimEnabled && (_jsxs(Text, { bold: true, color: vimInsert ? 'success' : 'warning', children: [vimInsert ? 'INSERT' : 'NORMAL', " "] })), _jsx(Box, { ref: expanded ? undefined : valueBoxRef, flexGrow: 1, flexShrink: 1, onClick: handleValueClick, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragEnd: handleDragEnd, children: value.length === 0 ? (_jsxs(_Fragment, { children: [nativeCursor ? _jsx(Text, { children: ' ' }) : caretCell('empty', ' '), _jsx(EffortTierBadge, { effort: channel.reasoningEffort, levels: channel.effortLevels, columns: columns, leadingColumns: 3 + homeButtonCols })] })) : (_jsx(Box, { flexDirection: "column", children: rendered })) }), expandEnabled && (_jsx(Box, { flexShrink: 0, onClick: (event) => {
|
|
3890
3834
|
event.stopImmediatePropagation();
|
|
3891
3835
|
toggleExpand();
|
|
3892
3836
|
}, onMouseEnter: () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* The SDK install wizard (the kernel picker's
|
|
3
|
+
* The SDK install wizard (the kernel picker's installable row, Enter): one
|
|
4
4
|
* pane, one step machine. The phase lives in Chat — it is async process
|
|
5
5
|
* state, which stays out of the overlay union by design (chatOverlay.ts
|
|
6
6
|
* note 3); this component renders it and never touches useInput, exactly
|
|
@@ -14,12 +14,14 @@ export type SdkInstallPhase = {
|
|
|
14
14
|
readonly dir: string;
|
|
15
15
|
readonly version: string;
|
|
16
16
|
readonly specifier: string;
|
|
17
|
+
readonly foundCli?: string;
|
|
17
18
|
} | {
|
|
18
19
|
readonly kind: 'checking';
|
|
19
20
|
} | {
|
|
20
21
|
readonly kind: 'running';
|
|
21
22
|
} | {
|
|
22
23
|
readonly kind: 'done';
|
|
24
|
+
readonly rebuiltStore?: boolean;
|
|
23
25
|
} | {
|
|
24
26
|
readonly kind: 'failed';
|
|
25
27
|
readonly exitCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdkInstallWizard.d.ts","sourceRoot":"","sources":["../../../src/components/SdkInstallWizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"SdkInstallWizard.d.ts","sourceRoot":"","sources":["../../../src/components/SdkInstallWizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACpI;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpK;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAAA;CAAE,CAAA;AAiBhF,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAkEvF"}
|
|
@@ -10,8 +10,15 @@ const TAIL_LINES = 6;
|
|
|
10
10
|
function manualLine(dir, specifier) {
|
|
11
11
|
return `cd ${dir} && pnpm add ${specifier}`;
|
|
12
12
|
}
|
|
13
|
+
/** Detection's first line is install guidance; only its optional note belongs
|
|
14
|
+
* in the confirmation pane. */
|
|
15
|
+
function noteAfterGuidance(hint) {
|
|
16
|
+
const note = hint?.split('\n').slice(1).join('\n').trim();
|
|
17
|
+
return note === undefined || note === '' ? undefined : note;
|
|
18
|
+
}
|
|
13
19
|
export function SdkInstallWizard({ phase }) {
|
|
14
|
-
|
|
20
|
+
const cliNote = phase.kind === 'confirm' ? noteAfterGuidance(phase.foundCli) : undefined;
|
|
21
|
+
return (_jsxs(Pane, { color: "permission", children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "remember", bold: true, children: t('sdk-install-title') }) }), phase.kind === 'confirm' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: t('sdk-install-confirm-what', { specifier: phase.specifier, version: phase.version }) }), _jsx(Text, { children: t('sdk-install-confirm-where', { dir: phase.dir }) }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: t('sdk-install-confirm-note') }), cliNote !== undefined && _jsx(Text, { dimColor: true, children: cliNote })] })] })), (phase.kind === 'checking' || phase.kind === 'running') && (_jsx(Box, { flexDirection: "column", children: _jsx(LoadingState, { message: phase.kind === 'checking' ? t('sdk-install-checking') : t('sdk-install-running'), subtitle: phase.kind === 'running' ? t('sdk-install-running-sub') : undefined }) })), phase.kind === 'done' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: t('sdk-install-done') }), phase.rebuiltStore === true && _jsx(Text, { dimColor: true, children: t('sdk-install-rebuilt') })] })), phase.kind === 'failed' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: t('sdk-install-failed', { code: String(phase.exitCode) }) }), _jsx(Text, { dimColor: true, children: t('sdk-install-manual', { command: manualLine(phase.dir, phase.specifier) }) }), phase.tail.slice(-TAIL_LINES).map((line, index) => (_jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }, index)))] })), phase.kind === 'pnpm-missing' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: t('sdk-install-pnpm-missing') }), _jsx(Text, { dimColor: true, children: t('sdk-install-manual', { command: manualLine(phase.dir, phase.specifier) }) })] })), phase.kind === 'cancelled' && _jsx(Text, { children: t('sdk-install-cancelled') }), phase.kind === 'no-target' && (_jsx(Text, { children: t(phase.reason === 'standalone' ? 'sdk-install-no-target-standalone' : 'sdk-install-no-target-no-profile') }))] }), _jsx(Text, { dimColor: true, italic: true, children: _jsx(HintLine, { text: phase.kind === 'confirm' ? t('sdk-install-confirm-hint')
|
|
15
22
|
: phase.kind === 'done' ? t('sdk-install-done-hint')
|
|
16
23
|
: phase.kind === 'failed' ? t('sdk-install-failed-hint')
|
|
17
24
|
: t('sdk-install-exit-hint') }) })] }));
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type ImageTokenSpan } from './composerImageTokens.js';
|
|
2
3
|
/**
|
|
3
|
-
* A single-line search input in a round-bordered box: `⌕ ` prefix
|
|
4
|
-
* cursor at `cursorOffset
|
|
5
|
-
* When empty
|
|
6
|
-
* character
|
|
7
|
-
* occupies a cell of its own, so text never shifts; the terminal-painted IME
|
|
8
|
-
* preedit (pinyin) still lands at the declared native cursor next to it.
|
|
4
|
+
* A single-line search input in a round-bordered box: `⌕ ` prefix and a native
|
|
5
|
+
* cursor at `cursorOffset`. Static snapshots retain the theme-painted caret.
|
|
6
|
+
* When empty with a left-aligned placeholder, the caret sits on its first
|
|
7
|
+
* character; text stays in place and IME preedit uses the same native anchor.
|
|
9
8
|
*
|
|
10
9
|
* The query row is strictly single-line: an overlong query is windowed
|
|
11
10
|
* around the caret (horizontal scroll) instead of wrapping, so the native
|
|
12
11
|
* cursor declaration below stays exact for any query length.
|
|
13
12
|
*/
|
|
14
|
-
export declare function SearchBox({ query, placeholder, isFocused, isTerminalFocused, prefix, width, cursorOffset, borderless, caretBlink, placeholderAlign, }: {
|
|
13
|
+
export declare function SearchBox({ query, placeholder, isFocused, isTerminalFocused, prefix, width, cursorOffset, borderless, caretBlink, declareCursor, placeholderAlign, imageSpans, }: {
|
|
15
14
|
query: string;
|
|
16
15
|
placeholder?: string;
|
|
17
16
|
isFocused: boolean;
|
|
@@ -20,21 +19,20 @@ export declare function SearchBox({ query, placeholder, isFocused, isTerminalFoc
|
|
|
20
19
|
width?: number | string;
|
|
21
20
|
cursorOffset?: number;
|
|
22
21
|
borderless?: boolean;
|
|
22
|
+
/** Capability-backed image chips, sharing the chat composer's atomic geometry. */
|
|
23
|
+
imageSpans?: readonly ImageTokenSpan[];
|
|
23
24
|
/**
|
|
24
25
|
* 空输入 + 焦点态那一行里占位文案的对齐(2026-10 落地页第四版新增):
|
|
25
|
-
* `right`(缺省,历史行为)贴框右缘;`left`
|
|
26
|
+
* `right`(缺省,历史行为)贴框右缘;`left` 紧跟前缀。
|
|
26
27
|
* 共享组件——聊天页/选择器不传此 prop,渲染与从前逐字节一致。
|
|
27
28
|
*/
|
|
28
29
|
placeholderAlign?: 'left' | 'right';
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* 契约(第七版修订):光标是**压在当前字符身上的块**(主题 cursor 填充,
|
|
34
|
-
* 未声明时用 inverse;行尾时为空格),绝不另起一格、绝不吃掉字符;闪烁是
|
|
35
|
-
* **纯样式切换**(光标 ↔ 常规),
|
|
36
|
-
* 不增删任何字符——无头回归读的是视口纯文本,断言不会随相位抖动。
|
|
31
|
+
* 无原生光标的呈现环境使用的闪烁相位(仅切换样式,不增删字符)。
|
|
32
|
+
* TTY 光标的闪烁与动画由终端配置控制。
|
|
37
33
|
*/
|
|
38
34
|
caretBlink?: boolean;
|
|
35
|
+
/** Keep the live field styled while another region owns the native caret. */
|
|
36
|
+
declareCursor?: boolean;
|
|
39
37
|
}): React.ReactNode;
|
|
40
38
|
//# sourceMappingURL=SearchBox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../../src/components/SearchBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../../src/components/SearchBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAW7E,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAA;AA0DjF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,WAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,MAAY,EACZ,KAAK,EACL,YAAY,EACZ,UAAkB,EAClB,UAAiB,EACjB,aAAoB,EACpB,gBAA0B,EAC1B,UAAe,GAChB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kFAAkF;IAClF,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,GAAG,KAAK,CAAC,SAAS,CAoJlB"}
|