@deepseek-harness-tui/dsh-tui 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -14
- package/bin/dsh-tui.js +200 -34
- package/cordis.patch.yml +16 -52
- package/cordis.yml +6 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +44 -7
- package/guide/dsh-tui-guide/claude-backend.md +28 -6
- package/guide/dsh-tui-guide/codex-backend.en.md +34 -7
- package/guide/dsh-tui-guide/codex-backend.md +17 -2
- package/guide/dsh-tui-guide/configuration.en.md +129 -16
- package/guide/dsh-tui-guide/configuration.md +110 -14
- package/guide/dsh-tui-guide/interaction.en.md +57 -24
- package/guide/dsh-tui-guide/interaction.md +42 -19
- package/guide/dsh-tui-guide/plugins.en.md +36 -3
- package/guide/dsh-tui-guide/plugins.md +21 -2
- package/guide/dsh-tui-guide/themes.en.md +23 -14
- package/guide/dsh-tui-guide/themes.md +19 -12
- package/guide/dsh-tui-guide/user-guide.en.md +51 -20
- package/guide/dsh-tui-guide/user-guide.md +41 -21
- package/lib/settings.json +103 -9
- package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +3 -0
- package/lib/types/adapter/channel/ui.d.ts +2 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +6 -2
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
- package/lib/types/adapter/kernel/runtime.js +2 -0
- package/lib/types/adapter/ports/channel-settings.d.ts +9 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +50 -12
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +21 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/spec/backend-capabilities.d.ts +22 -0
- package/lib/types/adapter/spec/backend-capabilities.d.ts.map +1 -0
- package/lib/types/adapter/spec/backend-capabilities.js +49 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
- package/lib/types/adapter/spec/protocol-constants.js +10 -3
- package/lib/types/adapter/spec/tui-contributions.d.ts +3 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
- package/lib/types/adapter/spec/tui-contributions.js +7 -0
- package/lib/types/adapter/standard/registry.d.ts +6 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -1
- package/lib/types/adapter/standard/registry.js +65 -15
- package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -1
- package/lib/types/adapter/standard/tui-extension.js +7 -1
- package/lib/types/adapter/standard/types.d.ts +10 -1
- package/lib/types/adapter/standard/types.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -1
- package/lib/types/adapter/upstream/host-descriptor-driver.js +52 -0
- package/lib/types/agent/backend-manifest.d.ts +152 -0
- package/lib/types/agent/backend-manifest.d.ts.map +1 -0
- package/lib/types/agent/backend-manifest.js +14 -0
- package/lib/types/agent/backend.d.ts +71 -5
- package/lib/types/agent/backend.d.ts.map +1 -1
- package/lib/types/agent/capabilities.d.ts +6 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -1
- package/lib/types/agent/index.d.ts +2 -0
- package/lib/types/agent/index.d.ts.map +1 -1
- package/lib/types/agent/refs.d.ts +11 -1
- package/lib/types/agent/refs.d.ts.map +1 -1
- package/lib/types/agent/starting-session.d.ts +4 -0
- package/lib/types/agent/starting-session.d.ts.map +1 -0
- package/lib/types/agent/starting-session.js +19 -0
- package/lib/types/backends/claude/activity.d.ts +1 -1
- package/lib/types/backends/claude/activity.d.ts.map +1 -1
- package/lib/types/backends/claude/activity.js +5 -5
- package/lib/types/backends/claude/auth.d.ts.map +1 -1
- package/lib/types/backends/claude/auth.js +10 -3
- package/lib/types/backends/claude/backend.d.ts.map +1 -1
- package/lib/types/backends/claude/backend.js +103 -29
- package/lib/types/backends/claude/catalog.d.ts +2 -1
- package/lib/types/backends/claude/catalog.d.ts.map +1 -1
- package/lib/types/backends/claude/catalog.js +15 -5
- package/lib/types/backends/claude/channels.d.ts +5 -3
- package/lib/types/backends/claude/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/channels.js +5 -4
- package/lib/types/backends/claude/contract.d.ts +4 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -1
- package/lib/types/backends/claude/contract.js +4 -0
- package/lib/types/backends/claude/controls.d.ts +4 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -1
- package/lib/types/backends/claude/controls.js +34 -42
- package/lib/types/backends/claude/dialogs.d.ts +8 -2
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -1
- package/lib/types/backends/claude/dialogs.js +24 -16
- package/lib/types/backends/claude/images.d.ts +1 -1
- package/lib/types/backends/claude/images.d.ts.map +1 -1
- package/lib/types/backends/claude/images.js +7 -7
- package/lib/types/backends/claude/manifest.d.ts +21 -0
- package/lib/types/backends/claude/manifest.d.ts.map +1 -0
- package/lib/types/backends/claude/manifest.js +29 -0
- package/lib/types/backends/claude/older-history.js +2 -2
- package/lib/types/backends/claude/permissions.js +11 -11
- package/lib/types/backends/claude/prefs.d.ts +4 -2
- package/lib/types/backends/claude/prefs.d.ts.map +1 -1
- package/lib/types/backends/claude/prefs.js +4 -3
- package/lib/types/backends/claude/process.d.ts +16 -4
- package/lib/types/backends/claude/process.d.ts.map +1 -1
- package/lib/types/backends/claude/process.js +100 -37
- package/lib/types/backends/claude/send-message.d.ts +1 -1
- package/lib/types/backends/claude/send-message.d.ts.map +1 -1
- package/lib/types/backends/claude/session/auth.js +22 -22
- package/lib/types/backends/claude/session/channels.d.ts +4 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -1
- package/lib/types/backends/claude/session/channels.js +5 -3
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -1
- package/lib/types/backends/claude/session/lifecycle.js +31 -23
- package/lib/types/backends/claude/session/store.js +8 -8
- package/lib/types/backends/claude/session/subagents.js +2 -2
- package/lib/types/backends/claude/session/types.d.ts +7 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -1
- package/lib/types/backends/claude/side-query.js +3 -3
- package/lib/types/backends/claude/task-output.js +5 -5
- package/lib/types/backends/claude/text.d.ts +778 -0
- package/lib/types/backends/claude/text.d.ts.map +1 -0
- package/lib/types/backends/claude/text.js +298 -0
- package/lib/types/backends/claude/transcript-file.d.ts +1 -1
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -1
- package/lib/types/backends/claude/transcript-file.js +4 -4
- package/lib/types/backends/claude/translate/attempts.js +2 -2
- package/lib/types/backends/claude/translate/core.js +3 -3
- package/lib/types/backends/claude/translate/messages.js +4 -4
- package/lib/types/backends/claude/translate/system.js +14 -14
- package/lib/types/backends/claude/translate/tasks.js +2 -2
- package/lib/types/backends/claude/translate/types.d.ts +1 -1
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -1
- package/lib/types/backends/codex/auth/external-tokens.js +16 -16
- package/lib/types/backends/codex/auth/status.js +14 -14
- package/lib/types/backends/codex/backend.d.ts +4 -19
- package/lib/types/backends/codex/backend.d.ts.map +1 -1
- package/lib/types/backends/codex/backend.js +118 -25
- package/lib/types/backends/codex/catalog.d.ts +2 -1
- package/lib/types/backends/codex/catalog.d.ts.map +1 -1
- package/lib/types/backends/codex/catalog.js +63 -18
- package/lib/types/backends/codex/channels.d.ts +6 -3
- package/lib/types/backends/codex/channels.d.ts.map +1 -1
- package/lib/types/backends/codex/channels.js +15 -13
- package/lib/types/backends/codex/detect.d.ts.map +1 -1
- package/lib/types/backends/codex/detect.js +9 -6
- package/lib/types/backends/codex/manifest.d.ts +30 -0
- package/lib/types/backends/codex/manifest.d.ts.map +1 -0
- package/lib/types/backends/codex/manifest.js +23 -0
- package/lib/types/backends/codex/prefs.d.ts +4 -2
- package/lib/types/backends/codex/prefs.d.ts.map +1 -1
- package/lib/types/backends/codex/prefs.js +4 -3
- package/lib/types/backends/codex/rpc/hub.js +2 -2
- package/lib/types/backends/codex/session/activity.d.ts +1 -1
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -1
- package/lib/types/backends/codex/session/activity.js +13 -13
- package/lib/types/backends/codex/session/approvals.js +30 -30
- package/lib/types/backends/codex/session/commands.d.ts +8 -2
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -1
- package/lib/types/backends/codex/session/commands.js +71 -23
- package/lib/types/backends/codex/session/controls.d.ts +1 -1
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -1
- package/lib/types/backends/codex/session/controls.js +21 -16
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -1
- package/lib/types/backends/codex/session/goals.js +3 -3
- package/lib/types/backends/codex/session/history.js +2 -2
- package/lib/types/backends/codex/session/images.js +8 -8
- package/lib/types/backends/codex/session/input.d.ts +6 -2
- package/lib/types/backends/codex/session/input.d.ts.map +1 -1
- package/lib/types/backends/codex/session/input.js +55 -13
- package/lib/types/backends/codex/session/plan-review.js +6 -6
- package/lib/types/backends/codex/session/session.d.ts.map +1 -1
- package/lib/types/backends/codex/session/session.js +66 -34
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -1
- package/lib/types/backends/codex/session/side-query.js +27 -9
- package/lib/types/backends/codex/session/state.d.ts +6 -1
- package/lib/types/backends/codex/session/state.d.ts.map +1 -1
- package/lib/types/backends/codex/session/subagents.js +5 -5
- package/lib/types/backends/codex/session/tasks.js +4 -4
- package/lib/types/backends/codex/text.d.ts +933 -0
- package/lib/types/backends/codex/text.d.ts.map +1 -0
- package/lib/types/backends/codex/text.js +313 -0
- package/lib/types/backends/codex/translate/items.js +4 -4
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/live.js +11 -8
- package/lib/types/backends/codex/translate/notices.js +10 -10
- package/lib/types/backends/shared/channel-slug.d.ts +4 -0
- package/lib/types/backends/shared/channel-slug.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-slug.js +25 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -1
- package/lib/types/backends/shared/channel-tokens.js +30 -23
- package/lib/types/{channel → backends/shared}/elicitation.d.ts +78 -21
- package/lib/types/backends/shared/elicitation.d.ts.map +1 -0
- package/lib/types/{channel → backends/shared}/elicitation.js +64 -66
- package/lib/types/backends/shared/image-size.d.ts +33 -0
- package/lib/types/backends/shared/image-size.d.ts.map +1 -0
- package/lib/types/backends/shared/image-size.js +134 -0
- package/lib/types/{utils → backends/shared}/jsonl.d.ts +5 -1
- package/lib/types/backends/shared/jsonl.d.ts.map +1 -0
- package/lib/types/{utils → backends/shared}/jsonl.js +5 -1
- package/lib/types/backends/shared/localized-text.d.ts +30 -0
- package/lib/types/backends/shared/localized-text.d.ts.map +1 -0
- package/lib/types/backends/shared/localized-text.js +24 -0
- package/lib/types/backends/shared/platform-text.d.ts +88 -0
- package/lib/types/backends/shared/platform-text.d.ts.map +1 -0
- package/lib/types/backends/shared/platform-text.js +33 -0
- package/lib/types/branding.d.ts +13 -0
- package/lib/types/branding.d.ts.map +1 -1
- package/lib/types/branding.js +18 -0
- package/lib/types/channel/channel-slug.d.ts +3 -1
- package/lib/types/channel/channel-slug.d.ts.map +1 -1
- package/lib/types/channel/channel-slug.js +3 -1
- package/lib/types/channel/sanitize.d.ts +7 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -1
- package/lib/types/channel/sanitize.js +9 -0
- package/lib/types/channel/usage.d.ts.map +1 -1
- package/lib/types/channel/usage.js +5 -0
- package/lib/types/commands.d.ts +5 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +47 -8
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -1
- package/lib/types/components/AgentMessageComposer.js +3 -2
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +4 -2
- package/lib/types/components/Chat/JobCard.js +3 -3
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -6
- package/lib/types/components/ContextBarView.d.ts +5 -1
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +6 -3
- package/lib/types/components/ExtensionDialog.d.ts.map +1 -1
- package/lib/types/components/ExtensionDialog.js +2 -3
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +14 -3
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/KernelPicker.d.ts.map +1 -1
- package/lib/types/components/KernelPicker.js +1 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +9 -6
- package/lib/types/components/MarkdownTable.d.ts.map +1 -1
- package/lib/types/components/MarkdownTable.js +4 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +18 -5
- package/lib/types/components/ModelPicker.d.ts +24 -31
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +115 -40
- package/lib/types/components/PromptEditor.d.ts +3 -3
- package/lib/types/components/PromptInput.d.ts +21 -3
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +58 -118
- package/lib/types/components/SdkInstallWizard.d.ts +3 -1
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -1
- package/lib/types/components/SdkInstallWizard.js +8 -1
- package/lib/types/components/SearchBox.d.ts +13 -15
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +58 -27
- package/lib/types/components/ThemePicker.d.ts +1 -1
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +14 -11
- package/lib/types/components/Tooltip.js +1 -1
- package/lib/types/components/WorkingSpinner.js +1 -1
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -1
- package/lib/types/components/WorkspaceFlowPicker.js +4 -3
- package/lib/types/components/composerImageTokens.d.ts +24 -0
- package/lib/types/components/composerImageTokens.d.ts.map +1 -0
- package/lib/types/components/composerImageTokens.js +37 -0
- package/lib/types/components/design-system/InputCaret.d.ts +7 -0
- package/lib/types/components/design-system/InputCaret.d.ts.map +1 -0
- package/lib/types/components/design-system/InputCaret.js +9 -0
- package/lib/types/components/design-system/ListItem.d.ts +13 -2
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +11 -5
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +6 -8
- package/lib/types/components/kernelCatalog.d.ts +55 -11
- package/lib/types/components/kernelCatalog.d.ts.map +1 -1
- package/lib/types/components/kernelCatalog.js +42 -23
- package/lib/types/components/launchpadActions.d.ts +4 -0
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +5 -4
- package/lib/types/components/launchpadLayout.d.ts.map +1 -1
- package/lib/types/components/launchpadLayout.js +2 -2
- package/lib/types/components/messages/UserPromptMessage.d.ts +4 -3
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
- package/lib/types/components/messages/UserPromptMessage.js +4 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +4 -3
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -1
- package/lib/types/components/questions/ProviderModelEditor.js +3 -13
- package/lib/types/components/sessions/ForeignSessionRow.d.ts +3 -1
- package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -1
- package/lib/types/components/sessions/ForeignSessionRow.js +5 -2
- package/lib/types/components/sessions/SessionListRow.d.ts +3 -1
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
- package/lib/types/components/sessions/SessionListRow.js +5 -2
- package/lib/types/components/sidePanel/PanelBar.d.ts +1 -0
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +21 -17
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +2 -1
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts +6 -4
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelLayout.js +33 -7
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +4 -2
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +12 -4
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +59 -15
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +4 -2
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +12 -6
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
- package/lib/types/components/sidePanel/types.d.ts +1 -1
- package/lib/types/components/sidePanel/types.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.d.ts +2 -0
- package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/useSidePanel.js +11 -1
- package/lib/types/components/splashFonts.d.ts +24 -1
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +40 -5
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +5 -2
- package/lib/types/dsh-adapter/admission-loader.d.ts +20 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
- package/lib/types/dsh-adapter/admission-loader.js +256 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +3 -0
- package/lib/types/dsh-adapter/backend-admission.d.ts +64 -0
- package/lib/types/dsh-adapter/backend-admission.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-admission.js +34 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts +26 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-contribution.js +37 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts +136 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-registry.js +285 -0
- package/lib/types/dsh-adapter/backends.d.ts +67 -24
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backends.generated.d.ts +12 -0
- package/lib/types/dsh-adapter/backends.generated.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.generated.js +6 -0
- package/lib/types/dsh-adapter/backends.js +92 -46
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +2 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +9 -3
- package/lib/types/dsh-adapter/channel/agent-view-projection.js +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +8 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +16 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +18 -46
- package/lib/types/dsh-adapter/channel/channel-host.d.ts +45 -0
- package/lib/types/dsh-adapter/channel/channel-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/channel-host.js +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +16 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +4 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +36 -5
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts +14 -0
- package/lib/types/dsh-adapter/channel/cordis-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/cordis-host.js +35 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/actions.js +15 -6
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +3 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +12 -28
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/compose.js +318 -117
- package/lib/types/dsh-adapter/channel/core/files.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/files.js +1 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +12 -6
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/host.js +69 -35
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +5 -3
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/local-actions.js +5 -2
- package/lib/types/dsh-adapter/channel/core/session-controls.js +2 -2
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +7 -4
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/session-switch.js +8 -4
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/sessions.js +75 -16
- package/lib/types/dsh-adapter/channel/extensions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/extensions.js +41 -22
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +14 -5
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +4 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +205 -24
- package/lib/types/dsh-adapter/channel/mentions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +138 -8
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +40 -28
- package/lib/types/dsh-adapter/channel/model-selection.d.ts +17 -0
- package/lib/types/dsh-adapter/channel/model-selection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-selection.js +109 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +12 -21
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +39 -102
- package/lib/types/dsh-adapter/channel/projection.js +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/reports.js +11 -3
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +33 -20
- package/lib/types/dsh-adapter/channel/session-listing.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/session-listing.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-listing.js +51 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +3 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +56 -27
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +15 -8
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +38 -24
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +38 -24
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +1 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +37 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +14 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +66 -6
- package/lib/types/dsh-adapter/channel/task-completion.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/task-completion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/task-completion.js +114 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +1 -1
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts +81 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/upstream-retry.js +138 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +9 -8
- package/lib/types/dsh-adapter/channel-ui.d.ts +3 -1
- package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel-ui.js +4 -2
- package/lib/types/dsh-adapter/channel.d.ts +2 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +19 -5
- package/lib/types/dsh-adapter/context-occupancy.d.ts +81 -4
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +108 -17
- package/lib/types/dsh-adapter/contract.d.ts +1 -1
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +15 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts +36 -0
- package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -0
- package/lib/types/dsh-adapter/entry-slot.js +28 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts +22 -0
- package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -0
- package/lib/types/dsh-adapter/fresh-agent.js +221 -0
- package/lib/types/dsh-adapter/host-access.d.ts +16 -1
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-access.js +53 -2
- package/lib/types/dsh-adapter/host-contract.d.ts +103 -0
- package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-contract.js +76 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts +106 -0
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-dsh.js +466 -0
- package/lib/types/dsh-adapter/host-entry.d.ts +9 -0
- package/lib/types/dsh-adapter/host-entry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-entry.js +228 -0
- package/lib/types/dsh-adapter/index.d.ts +55 -18
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +59 -7
- package/lib/types/dsh-adapter/install/executors.d.ts +44 -0
- package/lib/types/dsh-adapter/install/executors.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/executors.js +15 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts +3 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts.map +1 -0
- package/lib/types/dsh-adapter/install/pnpm-profile-add.js +150 -0
- package/lib/types/dsh-adapter/jobs.d.ts +7 -0
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +13 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts +50 -0
- package/lib/types/dsh-adapter/lite-profile.d.ts.map +1 -0
- package/lib/types/dsh-adapter/lite-profile.js +49 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +4 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -1
- package/lib/types/dsh-adapter/oauth/profiles.js +5 -1
- package/lib/types/dsh-adapter/panels.d.ts +7 -0
- package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
- package/lib/types/dsh-adapter/panels.js +35 -2
- package/lib/types/dsh-adapter/plugin-completions.d.ts +32 -0
- package/lib/types/dsh-adapter/plugin-completions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-completions.js +80 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts +21 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-declaration.js +53 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts +13 -2
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-host.js +34 -8
- package/lib/types/dsh-adapter/plugin-manager.d.ts +68 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manager.js +51 -0
- package/lib/types/dsh-adapter/plugin.d.ts +50 -1
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +870 -233
- package/lib/types/dsh-adapter/plugins-info.d.ts +44 -8
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +354 -34
- package/lib/types/dsh-adapter/process-exit.d.ts +43 -0
- package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -0
- package/lib/types/dsh-adapter/process-exit.js +60 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts +18 -0
- package/lib/types/dsh-adapter/root-dispose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/root-dispose.js +28 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts +20 -0
- package/lib/types/dsh-adapter/session-list-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-list-metadata.js +56 -0
- package/lib/types/dsh-adapter/session-seed.d.ts +11 -0
- package/lib/types/dsh-adapter/session-seed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-seed.js +47 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts +3 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +11 -5
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts +0 -2
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/snapshot.js +7 -70
- package/lib/types/dsh-adapter/startup-args.d.ts +2 -0
- package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -1
- package/lib/types/dsh-adapter/startup-args.js +5 -0
- package/lib/types/dsh-adapter/subagents.d.ts +33 -1
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +110 -8
- package/lib/types/dsh-adapter/tui-settings.d.ts +57 -0
- package/lib/types/dsh-adapter/tui-settings.d.ts.map +1 -0
- package/lib/types/dsh-adapter/tui-settings.js +199 -0
- package/lib/types/effortPrefs.d.ts +6 -3
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +7 -4
- package/lib/types/hostEntryRoute.d.ts +18 -0
- package/lib/types/hostEntryRoute.d.ts.map +1 -0
- package/lib/types/hostEntryRoute.js +57 -0
- package/lib/types/i18n.d.ts +363 -1432
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +155 -385
- package/lib/types/ink/components/AlternateScreen.js +2 -2
- package/lib/types/ink/components/App.d.ts +1 -0
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +16 -4
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +9 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -1
- package/lib/types/ink/components/CursorDeclarationContext.js +2 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +2 -2
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-copy-on-select.js +13 -7
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +11 -3
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-declared-cursor.js +30 -10
- package/lib/types/ink/ink.d.ts +22 -17
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +151 -40
- package/lib/types/ink/kitty-graphics.d.ts +2 -0
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +6 -1
- package/lib/types/ink/node-cache.d.ts +2 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/output.d.ts +10 -4
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +14 -10
- package/lib/types/ink/render-node-to-output.d.ts +5 -2
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +27 -9
- package/lib/types/ink/renderer.d.ts +1 -0
- package/lib/types/ink/renderer.d.ts.map +1 -1
- package/lib/types/ink/renderer.js +4 -3
- package/lib/types/ink/root.d.ts +4 -1
- package/lib/types/ink/root.d.ts.map +1 -1
- package/lib/types/ink/screen.d.ts +4 -2
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/selection.d.ts +10 -1
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +94 -25
- package/lib/types/ink/stdin-handoff.d.ts +11 -0
- package/lib/types/ink/stdin-handoff.d.ts.map +1 -0
- package/lib/types/ink/stdin-handoff.js +20 -0
- package/lib/types/ink/styles.d.ts +2 -1
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +6 -4
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.js +16 -39
- package/lib/types/ink/terminal-notification.d.ts +8 -0
- package/lib/types/ink/terminal-notification.d.ts.map +1 -0
- package/lib/types/ink/terminal-notification.js +83 -0
- package/lib/types/ink/terminal.d.ts +9 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +34 -1
- package/lib/types/ink/termio/csi.d.ts +11 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -1
- package/lib/types/ink/termio/csi.js +13 -0
- package/lib/types/ink/update-overflow-guard.d.ts +6 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +17 -0
- package/lib/types/ink/wrap-text.d.ts +6 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +17 -0
- package/lib/types/kernelPrefs.d.ts +129 -16
- package/lib/types/kernelPrefs.d.ts.map +1 -1
- package/lib/types/kernelPrefs.js +98 -35
- package/lib/types/math/inline-layout.d.ts +2 -0
- package/lib/types/math/inline-layout.d.ts.map +1 -1
- package/lib/types/math/inline-layout.js +5 -27
- package/lib/types/modelGroups.d.ts +15 -27
- package/lib/types/modelGroups.d.ts.map +1 -1
- package/lib/types/modelGroups.js +17 -31
- package/lib/types/modelPrefs.d.ts +5 -4
- package/lib/types/modelPrefs.d.ts.map +1 -1
- package/lib/types/modelPrefs.js +5 -4
- package/lib/types/modelRoute.d.ts +23 -9
- package/lib/types/modelRoute.d.ts.map +1 -1
- package/lib/types/modelRoute.js +25 -11
- package/lib/types/permissionPrefs.d.ts +34 -0
- package/lib/types/permissionPrefs.d.ts.map +1 -0
- package/lib/types/permissionPrefs.js +61 -0
- package/lib/types/plugin-host.d.ts +1 -0
- package/lib/types/plugin-host.d.ts.map +1 -1
- package/lib/types/presetPrefs.d.ts +17 -3
- package/lib/types/presetPrefs.d.ts.map +1 -1
- package/lib/types/presetPrefs.js +20 -3
- package/lib/types/reload.d.ts +6 -10
- package/lib/types/reload.d.ts.map +1 -1
- package/lib/types/reload.js +14 -14
- package/lib/types/screens/Chat.d.ts +22 -15
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +442 -272
- package/lib/types/screens/Launchpad.d.ts +27 -17
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +241 -78
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +53 -12
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +6 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +24 -7
- package/lib/types/screens/StatusMetrics.d.ts +46 -1
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +72 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +8 -4
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -1
- package/lib/types/screens/chat/useKernelPicker.js +61 -21
- package/lib/types/screens/chat/useModelPicker.d.ts +42 -0
- package/lib/types/screens/chat/useModelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useModelPicker.js +182 -0
- package/lib/types/screens/chatOverlay.d.ts +11 -4
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +0 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +4 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +26 -5
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +51 -29
- package/lib/types/sessionHistory.d.ts +5 -0
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +5 -0
- package/lib/types/sessions/listSnapshot.d.ts +6 -0
- package/lib/types/sessions/listSnapshot.d.ts.map +1 -0
- package/lib/types/sessions/listSnapshot.js +67 -0
- package/lib/types/settings/definitions.d.ts +50 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +42 -8
- package/lib/types/terminal-utils/cjk-emphasis.d.ts +28 -0
- package/lib/types/terminal-utils/cjk-emphasis.d.ts.map +1 -0
- package/lib/types/terminal-utils/cjk-emphasis.js +31 -0
- package/lib/types/terminal-utils/markdown.d.ts +3 -1
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +7 -2
- package/lib/types/theme.d.ts +29 -12
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +310 -23
- package/lib/types/themeCatalog.d.ts.map +1 -1
- package/lib/types/themeCatalog.js +21 -2
- package/lib/types/tips.js +4 -4
- package/lib/types/tuiSettingsFile.d.ts +56 -0
- package/lib/types/tuiSettingsFile.d.ts.map +1 -0
- package/lib/types/tuiSettingsFile.js +206 -0
- package/lib/types/ui.d.ts +2 -0
- package/lib/types/ui.d.ts.map +1 -1
- package/lib/types/ui.js +2 -0
- package/lib/types/update.d.ts +72 -26
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +131 -43
- package/lib/types/utils/bmp.d.ts +7 -0
- package/lib/types/utils/bmp.d.ts.map +1 -1
- package/lib/types/utils/bmp.js +27 -0
- package/lib/types/utils/bootTrace.d.ts +2 -0
- package/lib/types/utils/bootTrace.d.ts.map +1 -0
- package/lib/types/utils/bootTrace.js +20 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +11 -3
- package/lib/types/utils/credentials.d.ts +14 -2
- package/lib/types/utils/credentials.d.ts.map +1 -1
- package/lib/types/utils/credentials.js +34 -11
- package/lib/types/utils/imageResize.d.ts +10 -20
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +61 -134
- package/lib/types/utils/inputPaste.d.ts +2 -2
- package/lib/types/utils/inputPaste.js +2 -2
- package/lib/types/utils/pastedImagePath.d.ts +5 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +33 -0
- package/package.json +36 -6
- package/presets/winbash.mjs +716 -0
- package/tui-profile/protocols/profile-definitions.d.ts +1 -0
- package/tui-profile/protocols/profile-definitions.js +14 -0
- package/tui-profile/protocols/tui-contributions.d.ts +55 -0
- package/tui-profile/protocols/tui-contributions.js +141 -0
- package/tui-profile/registry/contracts/backend-v1alpha1.json +13 -0
- package/tui-profile/registry/registry-0.15.json +12 -0
- package/lib/types/backends/claude/install.d.ts +0 -15
- package/lib/types/backends/claude/install.d.ts.map +0 -1
- package/lib/types/backends/claude/install.js +0 -91
- package/lib/types/channel/elicitation.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts +0 -42
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/session-lineage.js +0 -51
- package/lib/types/utils/jsonl.d.ts.map +0 -1
package/lib/types/theme.js
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* dsh-tui color themes — Gentle Mist Blue (雾蓝)
|
|
3
|
-
* Code
|
|
2
|
+
* dsh-tui color themes — Gentle Mist Blue (雾蓝), Sakura Pink (樱), and the
|
|
3
|
+
* Claude Code brand adaptation.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* (#FFFFFF) and ink text
|
|
8
|
-
* dark-terminal adaptation (warm
|
|
9
|
-
* `dark-ansi` is the 16-color fallback for
|
|
5
|
+
* Gentle Mist Blue (雾蓝) is the default family. Two truecolor palettes share
|
|
6
|
+
* one identity: mist blues carry brand, focus, and interaction; body text
|
|
7
|
+
* stays neutral. `light` uses white panel surfaces (#FFFFFF) and ink text
|
|
8
|
+
* (#343945) for light terminals; `dark` is its dark-terminal adaptation (warm
|
|
9
|
+
* off-white text, accent-soft blues). `dark-ansi` is the 16-color fallback for
|
|
10
|
+
* terminals without truecolor.
|
|
11
|
+
*
|
|
12
|
+
* Sakura Pink (樱) is the optional second family. Sakura pink carries brand,
|
|
13
|
+
* focus and interaction, and the surfaces stay warm so the palette reads soft
|
|
14
|
+
* rather than neon: `pink-day` for light terminals, `pink-night` for dark
|
|
15
|
+
* ones, `pink-ansi` as the 16-color fallback. The three keep the same role
|
|
16
|
+
* split as the mist family, so switching families changes hue, not the
|
|
17
|
+
* contrast structure every component relies on. `mascotBody` has no upstream
|
|
18
|
+
* consumer, so all three keep the mist family's orange rather than a pink that
|
|
19
|
+
* never renders.
|
|
10
20
|
*
|
|
11
21
|
* The active palette is chosen at startup by querying the terminal background
|
|
12
22
|
* (OSC 11) — see ThemeProvider.
|
|
@@ -22,7 +32,8 @@
|
|
|
22
32
|
* from the terminal background detected via OSC 11 (which tracks the system
|
|
23
33
|
* theme in terminals that follow it). ThemeProvider re-runs detection every
|
|
24
34
|
* time `auto` is selected and pushes the result through setAutoThemeBase(),
|
|
25
|
-
* so getTheme('auto') always serves the currently detected palette.
|
|
35
|
+
* so getTheme('auto') always serves the currently detected palette. `auto`
|
|
36
|
+
* spans the mist family only; the sakura family is selected explicitly.
|
|
26
37
|
*/
|
|
27
38
|
const RETIRED_THEME_KEYS = [
|
|
28
39
|
"briefLabelClaude",
|
|
@@ -76,8 +87,25 @@ export function normalizeThemeKey(value) {
|
|
|
76
87
|
export function isThemeColorKey(value) {
|
|
77
88
|
return typeof value === 'string' && normalizeThemeKey(value) !== undefined;
|
|
78
89
|
}
|
|
79
|
-
/**
|
|
80
|
-
|
|
90
|
+
/**
|
|
91
|
+
* The built-in theme names, in display order. The sakura family repeats the
|
|
92
|
+
* mist family's own ordering (dark, ansi, light) so the picker reads as two
|
|
93
|
+
* parallel groups rather than an appended list; the brand pairs (claude,
|
|
94
|
+
* codex) land last — they are served as brand defaults, not picked as a
|
|
95
|
+
* family.
|
|
96
|
+
*/
|
|
97
|
+
export const THEME_NAMES = [
|
|
98
|
+
'dark',
|
|
99
|
+
'dark-ansi',
|
|
100
|
+
'light',
|
|
101
|
+
'pink-night',
|
|
102
|
+
'pink-ansi',
|
|
103
|
+
'pink-day',
|
|
104
|
+
'claude-dark',
|
|
105
|
+
'claude-paper',
|
|
106
|
+
'codex-lavender',
|
|
107
|
+
'codex-paper',
|
|
108
|
+
];
|
|
81
109
|
/**
|
|
82
110
|
* Whether a name is a built-in palette (THEME_NAMES membership, never the base
|
|
83
111
|
* roles a theme file may overlay).
|
|
@@ -199,8 +227,8 @@ const darkTheme = {
|
|
|
199
227
|
cursor: '',
|
|
200
228
|
mascotBody: rgb('#D98A63'), // Warm mascot orange
|
|
201
229
|
inputBackground: rgb('#000000'),
|
|
202
|
-
userMessageBackground: '', // user turn: no fill,
|
|
203
|
-
userMessageBackgroundHover: rgb('#3B5BDB'), // hover/expand: blue block with
|
|
230
|
+
userMessageBackground: '', // user turn: no fill, bold tinted text only (Kimi style)
|
|
231
|
+
userMessageBackgroundHover: rgb('#3B5BDB'), // hover/expand: blue block with tinted text
|
|
204
232
|
messageActionsBackground: rgb('#2E333D'),
|
|
205
233
|
selectionBg: rgb('#3B4A66'), // Mist-blue tint on dark
|
|
206
234
|
bashMessageBackgroundColor: rgb('#2C3038'),
|
|
@@ -209,7 +237,8 @@ const darkTheme = {
|
|
|
209
237
|
rate_limit_empty: rgb('#3C414B'),
|
|
210
238
|
fastMode: rgb('#E09A58'),
|
|
211
239
|
fastModeShimmer: rgb('#EAB478'),
|
|
212
|
-
|
|
240
|
+
// 用户消息披 Claude 档陶土红(跨内核轮换:每家内核的用户消息用另一家的招牌色)
|
|
241
|
+
userPromptLabel: rgb('#D77757'),
|
|
213
242
|
subagentBullet: rgb('#D194AE'),
|
|
214
243
|
subagentDescription: rgb('#E8E6E0'),
|
|
215
244
|
subagentModel: rgb('#8D95A6'),
|
|
@@ -270,7 +299,8 @@ const claudeDarkTheme = {
|
|
|
270
299
|
inactive: rgb('#B8B2A8'),
|
|
271
300
|
inactiveShimmer: rgb('#D5CFC5'),
|
|
272
301
|
subtle: rgb('#817C74'),
|
|
273
|
-
userPromptLabel
|
|
302
|
+
// 用户消息披 DeepSeek 档雾蓝(跨内核轮换,见 darkTheme.userPromptLabel)
|
|
303
|
+
userPromptLabel: rgb('#7DA1DE'),
|
|
274
304
|
fastMode: rgb('#D77757'),
|
|
275
305
|
fastModeShimmer: rgb('#E68A69'),
|
|
276
306
|
chromeYellow: rgb('#DFA25B'),
|
|
@@ -377,7 +407,7 @@ const lightTheme = {
|
|
|
377
407
|
cursor: '',
|
|
378
408
|
mascotBody: rgb('#D98A63'), // Warm mascot orange
|
|
379
409
|
inputBackground: rgb('#F6F3ED'),
|
|
380
|
-
userMessageBackground: '', // user turn: no fill in light mode,
|
|
410
|
+
userMessageBackground: '', // user turn: no fill in light mode, tinted text only
|
|
381
411
|
userMessageBackgroundHover: rgb('#DCE4FB'), // subtle blue tint on hover/expand
|
|
382
412
|
messageActionsBackground: rgb('#E4D9E5'),
|
|
383
413
|
selectionBg: rgb('#D5DEF2'), // Mist-blue tint on warm white
|
|
@@ -387,7 +417,8 @@ const lightTheme = {
|
|
|
387
417
|
rate_limit_empty: rgb('#DDD5C7'),
|
|
388
418
|
fastMode: rgb('#D98E4A'),
|
|
389
419
|
fastModeShimmer: rgb('#E2A465'),
|
|
390
|
-
|
|
420
|
+
// 用户消息披 Claude 档深化陶土红(浅底对应档,跨内核轮换)
|
|
421
|
+
userPromptLabel: rgb('#C96442'),
|
|
391
422
|
subagentBullet: rgb('#C07A93'),
|
|
392
423
|
subagentDescription: rgb('#343945'),
|
|
393
424
|
subagentModel: rgb('#8991A0'),
|
|
@@ -447,7 +478,8 @@ const claudePaperTheme = {
|
|
|
447
478
|
inactive: rgb('#67625B'),
|
|
448
479
|
inactiveShimmer: rgb('#4E4943'),
|
|
449
480
|
subtle: rgb('#969087'),
|
|
450
|
-
|
|
481
|
+
// 用户消息披 DeepSeek 档主蓝(浅底对应档,跨内核轮换)
|
|
482
|
+
userPromptLabel: rgb('#3F6CC4'),
|
|
451
483
|
fastMode: rgb('#C96442'),
|
|
452
484
|
fastModeShimmer: rgb('#B85738'),
|
|
453
485
|
chromeYellow: rgb('#B97929'),
|
|
@@ -539,7 +571,8 @@ const codexLavenderTheme = {
|
|
|
539
571
|
inactive: rgb('#B8B8C4'),
|
|
540
572
|
inactiveShimmer: rgb('#D5D5DE'),
|
|
541
573
|
subtle: rgb('#7D7D8A'),
|
|
542
|
-
|
|
574
|
+
// 用户消息披 DeepSeek 档亮金(跨内核轮换:Codex 用户消息用旧 dsh 金)
|
|
575
|
+
userPromptLabel: rgb('#FFDF80'),
|
|
543
576
|
fastMode: rgb('#A69BE8'),
|
|
544
577
|
fastModeShimmer: rgb('#C5BFEE'),
|
|
545
578
|
chromeYellow: rgb('#D8AE62'),
|
|
@@ -628,7 +661,8 @@ const codexPaperTheme = {
|
|
|
628
661
|
inactive: rgb('#5F5F6C'),
|
|
629
662
|
inactiveShimmer: rgb('#4E4E58'),
|
|
630
663
|
subtle: rgb('#8D8D98'),
|
|
631
|
-
|
|
664
|
+
// 用户消息披 DeepSeek 档深金(浅底对应档,跨内核轮换)
|
|
665
|
+
userPromptLabel: rgb('#A67600'),
|
|
632
666
|
fastMode: rgb('#8A7ED9'),
|
|
633
667
|
fastModeShimmer: rgb('#6B5CC8'),
|
|
634
668
|
chromeYellow: rgb('#AF7B2E'),
|
|
@@ -754,7 +788,9 @@ const darkAnsiTheme = {
|
|
|
754
788
|
rate_limit_empty: 'ansi:white',
|
|
755
789
|
fastMode: 'ansi:redBright',
|
|
756
790
|
fastModeShimmer: 'ansi:redBright',
|
|
757
|
-
|
|
791
|
+
// 陶土红的 16 色近似(DSH 用户消息跨内核轮换;与 error/fastMode 同用
|
|
792
|
+
// redBright,靠粗体和行首 ❯ 区分——ANSI 底盘没有更近的暖橙槽)
|
|
793
|
+
userPromptLabel: 'ansi:redBright',
|
|
758
794
|
subagentBullet: 'ansi:magentaBright',
|
|
759
795
|
subagentDescription: 'ansi:whiteBright',
|
|
760
796
|
subagentModel: 'ansi:white',
|
|
@@ -764,6 +800,242 @@ const darkAnsiTheme = {
|
|
|
764
800
|
subagentStatusCompleted: 'ansi:greenBright',
|
|
765
801
|
subagentStatusFailed: 'ansi:redBright',
|
|
766
802
|
};
|
|
803
|
+
/**
|
|
804
|
+
* Sakura Pink's context-bar ramp: the bloom deepens from plum to the pale petal
|
|
805
|
+
* tip. Night and day share the first four steps; `pink-day` steps only the tip
|
|
806
|
+
* back (see its `contextBarTools`).
|
|
807
|
+
*/
|
|
808
|
+
const PINK_BAR_RAMP = {
|
|
809
|
+
contextBarSystem: rgb('#6E1B3C'), // plum
|
|
810
|
+
contextBarPrompt: rgb('#9B2C55'),
|
|
811
|
+
contextBarAssistant: rgb('#C24D78'),
|
|
812
|
+
contextBarThinking: rgb('#E879A0'),
|
|
813
|
+
contextBarTools: rgb('#F7B7CC'), // pale petal tip
|
|
814
|
+
};
|
|
815
|
+
/**
|
|
816
|
+
* Sakura Pink dark adaptation. Pinks come from the bloom (#F27BA6–#F8AFC6);
|
|
817
|
+
* neutrals are warm (derived from #F0E4E9/#2B1E25) so the palette reads soft
|
|
818
|
+
* rather than neon on a dark terminal. Role base: `dark`.
|
|
819
|
+
*/
|
|
820
|
+
const pinkNightTheme = {
|
|
821
|
+
autoAccept: rgb('#B598D9'),
|
|
822
|
+
bashBorder: rgb('#E08CA8'),
|
|
823
|
+
accent: rgb('#F27BA6'),
|
|
824
|
+
toolNameMutate: rgb('#E5C07B'),
|
|
825
|
+
toolNameExec: rgb('#72C4CF'),
|
|
826
|
+
accentShimmer: rgb('#F8AFC6'),
|
|
827
|
+
activity: rgb('#F27BA6'),
|
|
828
|
+
activityShimmer: rgb('#F8AFC6'),
|
|
829
|
+
permission: rgb('#F2A0BF'),
|
|
830
|
+
permissionShimmer: rgb('#F8C1D6'),
|
|
831
|
+
planMode: rgb('#7FB596'),
|
|
832
|
+
ide: rgb('#E0709A'),
|
|
833
|
+
promptBorder: rgb('#6E4A58'),
|
|
834
|
+
promptBorderShimmer: rgb('#E08CA8'),
|
|
835
|
+
text: rgb('#F0E4E9'),
|
|
836
|
+
inverseText: rgb('#2B1E25'),
|
|
837
|
+
inactive: rgb('#A8929C'),
|
|
838
|
+
inactiveShimmer: rgb('#C4B0B9'),
|
|
839
|
+
subtle: rgb('#77646D'),
|
|
840
|
+
suggestion: rgb('#F2A0BF'),
|
|
841
|
+
remember: rgb('#F2A0BF'),
|
|
842
|
+
background: rgb('#D9648F'),
|
|
843
|
+
success: rgb('#8FC9A4'),
|
|
844
|
+
error: rgb('#E66A6A'),
|
|
845
|
+
warning: rgb('#E3B56C'),
|
|
846
|
+
merged: rgb('#B598D9'),
|
|
847
|
+
warningShimmer: rgb('#F0CB8E'),
|
|
848
|
+
diffAdded: rgb('#2E3A2F'),
|
|
849
|
+
diffRemoved: rgb('#402A31'),
|
|
850
|
+
diffAddedDimmed: rgb('#2F3630'),
|
|
851
|
+
diffRemovedDimmed: rgb('#392830'),
|
|
852
|
+
diffAddedWord: rgb('#5E9B72'),
|
|
853
|
+
diffRemovedWord: rgb('#C96B7B'),
|
|
854
|
+
toolCardBackground: rgb('#2E2229'),
|
|
855
|
+
toolCardBackgroundDim: rgb('#241A20'),
|
|
856
|
+
toolDotExec: rgb('#7FB596'),
|
|
857
|
+
toolDotRead: rgb('#7FB6C9'),
|
|
858
|
+
toolDotWrite: rgb('#C29BDF'),
|
|
859
|
+
toolDotWeb: rgb('#F27BA6'),
|
|
860
|
+
toolDotTask: rgb('#E0A0AE'),
|
|
861
|
+
syntaxKeyword: rgb('#E08CA8'),
|
|
862
|
+
syntaxString: rgb('#8FC9A4'),
|
|
863
|
+
syntaxComment: rgb('#857481'),
|
|
864
|
+
syntaxNumber: rgb('#E3B56C'),
|
|
865
|
+
syntaxFunction: rgb('#7FC4CE'),
|
|
866
|
+
syntaxType: rgb('#C29BDF'),
|
|
867
|
+
syntaxVariable: rgb('#DDD2D8'),
|
|
868
|
+
syntaxOperator: rgb('#A8929C'),
|
|
869
|
+
syntaxPunctuation: rgb('#8A7680'),
|
|
870
|
+
syntaxConstant: rgb('#E0709A'),
|
|
871
|
+
professionalBlue: rgb('#E08CA8'),
|
|
872
|
+
chromeYellow: rgb('#E3B56C'),
|
|
873
|
+
mascotBody: rgb('#D98A63'),
|
|
874
|
+
inputBackground: rgb('#000000'),
|
|
875
|
+
userMessageBackground: '',
|
|
876
|
+
userMessageBackgroundHover: rgb('#7E3A55'),
|
|
877
|
+
messageActionsBackground: rgb('#362A31'),
|
|
878
|
+
selectionBg: rgb('#55303E'),
|
|
879
|
+
bashMessageBackgroundColor: rgb('#2E242A'),
|
|
880
|
+
memoryBackgroundColor: rgb('#322630'),
|
|
881
|
+
rate_limit_fill: rgb('#F27BA6'),
|
|
882
|
+
rate_limit_empty: rgb('#43333B'),
|
|
883
|
+
fastMode: rgb('#E09A58'),
|
|
884
|
+
fastModeShimmer: rgb('#ECB478'),
|
|
885
|
+
userPromptLabel: rgb('#FFDF80'),
|
|
886
|
+
subagentBullet: rgb('#E0A0BE'),
|
|
887
|
+
subagentDescription: rgb('#F0E4E9'),
|
|
888
|
+
subagentModel: rgb('#A8929C'),
|
|
889
|
+
subagentElapsed: rgb('#A8929C'),
|
|
890
|
+
subagentToolName: rgb('#F27BA6'),
|
|
891
|
+
subagentStatusRunning: rgb('#F27BA6'),
|
|
892
|
+
subagentStatusCompleted: rgb('#8FC9A4'),
|
|
893
|
+
subagentStatusFailed: rgb('#E66A6A'),
|
|
894
|
+
// The family's bar ramp and crest. `ignition` carries the brand pink rather
|
|
895
|
+
// than the neon #FF2D6F it started at — the crest reads as a glow, and a
|
|
896
|
+
// fully saturated magenta made it the loudest thing on a dark terminal (the
|
|
897
|
+
// softer crest also clears more contrast on the band: 6.56:1 against
|
|
898
|
+
// `ignitionDim`, up from 4.71:1).
|
|
899
|
+
...PINK_BAR_RAMP,
|
|
900
|
+
ignition: rgb('#F27BA6'),
|
|
901
|
+
ignitionDim: rgb('#241A20'),
|
|
902
|
+
cursor: '',
|
|
903
|
+
};
|
|
904
|
+
/**
|
|
905
|
+
* Sakura Pink light adaptation. Warm off-white panels (#FBF3F0) under ink text
|
|
906
|
+
* (#3D2B33), with the same bloom pinks carrying brand and focus. Role base:
|
|
907
|
+
* `light`.
|
|
908
|
+
*/
|
|
909
|
+
const pinkDayTheme = {
|
|
910
|
+
autoAccept: rgb('#8F6BAC'),
|
|
911
|
+
bashBorder: rgb('#C05C7E'),
|
|
912
|
+
accent: rgb('#DE6E96'),
|
|
913
|
+
toolNameMutate: rgb('#8A6A00'),
|
|
914
|
+
toolNameExec: rgb('#0E7A8A'),
|
|
915
|
+
accentShimmer: rgb('#F2A0BF'),
|
|
916
|
+
activity: rgb('#E879A0'),
|
|
917
|
+
activityShimmer: rgb('#F2A0BF'),
|
|
918
|
+
permission: rgb('#D5517F'),
|
|
919
|
+
permissionShimmer: rgb('#E879A0'),
|
|
920
|
+
planMode: rgb('#43916B'),
|
|
921
|
+
ide: rgb('#C43D6C'),
|
|
922
|
+
promptBorder: rgb('#EFC4D4'),
|
|
923
|
+
promptBorderShimmer: rgb('#D988A9'),
|
|
924
|
+
text: rgb('#3D2B33'),
|
|
925
|
+
inverseText: rgb('#FBF3F0'),
|
|
926
|
+
inactive: rgb('#9A8790'),
|
|
927
|
+
inactiveShimmer: rgb('#9E6E82'),
|
|
928
|
+
subtle: rgb('#B3A3AC'),
|
|
929
|
+
suggestion: rgb('#D5517F'),
|
|
930
|
+
remember: rgb('#B03A63'),
|
|
931
|
+
background: rgb('#D5517F'),
|
|
932
|
+
success: rgb('#3E9468'),
|
|
933
|
+
error: rgb('#C24D5C'),
|
|
934
|
+
warning: rgb('#B97F2E'),
|
|
935
|
+
merged: rgb('#8F6BAC'),
|
|
936
|
+
warningShimmer: rgb('#CE9840'),
|
|
937
|
+
diffAdded: rgb('#DFF0E2'),
|
|
938
|
+
diffRemoved: rgb('#F7E0E4'),
|
|
939
|
+
diffAddedDimmed: rgb('#E8F3EA'),
|
|
940
|
+
diffRemovedDimmed: rgb('#F9E9EC'),
|
|
941
|
+
diffAddedWord: rgb('#8CCFA4'),
|
|
942
|
+
diffRemovedWord: rgb('#E6A3B0'),
|
|
943
|
+
toolCardBackground: rgb('#F9ECF1'),
|
|
944
|
+
toolCardBackgroundDim: rgb('#F2E0E9'),
|
|
945
|
+
toolDotExec: rgb('#4E7A5A'),
|
|
946
|
+
toolDotRead: rgb('#3F7E8F'),
|
|
947
|
+
toolDotWrite: rgb('#7A5CA8'),
|
|
948
|
+
toolDotWeb: rgb('#C24D78'),
|
|
949
|
+
toolDotTask: rgb('#B04A5A'),
|
|
950
|
+
syntaxKeyword: rgb('#C24470'),
|
|
951
|
+
syntaxString: rgb('#3F805F'),
|
|
952
|
+
syntaxComment: rgb('#8B7F88'),
|
|
953
|
+
syntaxNumber: rgb('#A6602B'),
|
|
954
|
+
syntaxFunction: rgb('#2E7E8A'),
|
|
955
|
+
syntaxType: rgb('#7E55A4'),
|
|
956
|
+
syntaxVariable: rgb('#3D2B33'),
|
|
957
|
+
syntaxOperator: rgb('#5F5260'),
|
|
958
|
+
syntaxPunctuation: rgb('#A3959E'),
|
|
959
|
+
syntaxConstant: rgb('#A84472'),
|
|
960
|
+
professionalBlue: rgb('#CE5A80'),
|
|
961
|
+
chromeYellow: rgb('#C99A3F'),
|
|
962
|
+
mascotBody: rgb('#D98A63'),
|
|
963
|
+
inputBackground: rgb('#FBF3F0'),
|
|
964
|
+
userMessageBackground: '',
|
|
965
|
+
userMessageBackgroundHover: rgb('#F0DCE6'),
|
|
966
|
+
messageActionsBackground: rgb('#F3E4EB'),
|
|
967
|
+
selectionBg: rgb('#F3D7E0'),
|
|
968
|
+
bashMessageBackgroundColor: rgb('#F5EAE0'),
|
|
969
|
+
memoryBackgroundColor: rgb('#F3E4EB'),
|
|
970
|
+
rate_limit_fill: rgb('#D988A9'),
|
|
971
|
+
rate_limit_empty: rgb('#E8DAD2'),
|
|
972
|
+
fastMode: rgb('#D98E4A'),
|
|
973
|
+
fastModeShimmer: rgb('#E2A465'),
|
|
974
|
+
userPromptLabel: rgb('#A67600'),
|
|
975
|
+
subagentBullet: rgb('#C05C7E'),
|
|
976
|
+
subagentDescription: rgb('#3D2B33'),
|
|
977
|
+
subagentModel: rgb('#9A8790'),
|
|
978
|
+
subagentElapsed: rgb('#9A8790'),
|
|
979
|
+
subagentToolName: rgb('#D5517F'),
|
|
980
|
+
subagentStatusRunning: rgb('#D5517F'),
|
|
981
|
+
subagentStatusCompleted: rgb('#3E9468'),
|
|
982
|
+
subagentStatusFailed: rgb('#C24D5C'),
|
|
983
|
+
// The night preset's ramp, with only the pale tip stepped back: the night's
|
|
984
|
+
// #F7B7CC sits at 1.36:1 against the #E8E8E8 free fill, the day tip #EE8FB0
|
|
985
|
+
// at 1.86:1. The crest cannot follow the night's either — #F27BA6 is 2.14:1
|
|
986
|
+
// on this palette's blush, so the wave deepens for the same reason the
|
|
987
|
+
// built-in light pair does. `ignitionDim` is the near-white blush the wave
|
|
988
|
+
// rides on, mirroring the mist light preset's #F0F0F2.
|
|
989
|
+
...PINK_BAR_RAMP,
|
|
990
|
+
contextBarTools: rgb('#EE8FB0'),
|
|
991
|
+
ignition: rgb('#B03A63'),
|
|
992
|
+
ignitionDim: rgb('#FFE3EC'),
|
|
993
|
+
cursor: '',
|
|
994
|
+
};
|
|
995
|
+
/**
|
|
996
|
+
* Sakura Pink in the 16 standard ANSI colors, for terminals without truecolor.
|
|
997
|
+
* Magenta carries brand, matching the truecolor variants. Role base:
|
|
998
|
+
* `dark-ansi`, deliberately: the 16-color space has no pink slots, so 56 of
|
|
999
|
+
* the 81 keys are the base's own values and only the ones listed here shift.
|
|
1000
|
+
* `cursor` stays empty like every other built-in (the inverse-video caret).
|
|
1001
|
+
*/
|
|
1002
|
+
const pinkAnsiTheme = {
|
|
1003
|
+
...darkAnsiTheme,
|
|
1004
|
+
// Brand, focus and activity: the magenta pair replaces the base's blue pair.
|
|
1005
|
+
accent: 'ansi:magentaBright',
|
|
1006
|
+
accentShimmer: 'ansi:magentaBright',
|
|
1007
|
+
activity: 'ansi:magentaBright',
|
|
1008
|
+
activityShimmer: 'ansi:magentaBright',
|
|
1009
|
+
permission: 'ansi:magentaBright',
|
|
1010
|
+
permissionShimmer: 'ansi:magentaBright',
|
|
1011
|
+
ide: 'ansi:magenta',
|
|
1012
|
+
suggestion: 'ansi:magentaBright',
|
|
1013
|
+
remember: 'ansi:magentaBright',
|
|
1014
|
+
background: 'ansi:magentaBright',
|
|
1015
|
+
toolDotWeb: 'ansi:magenta',
|
|
1016
|
+
syntaxKeyword: 'ansi:magentaBright',
|
|
1017
|
+
// A real override, not a leftover: the base's `syntaxType` is magenta too
|
|
1018
|
+
// (like `syntaxKeyword` here), so deleting this line would collide the two.
|
|
1019
|
+
syntaxType: 'ansi:blueBright',
|
|
1020
|
+
professionalBlue: 'ansi:magentaBright',
|
|
1021
|
+
// Tinted surfaces.
|
|
1022
|
+
userMessageBackgroundHover: 'ansi:magenta',
|
|
1023
|
+
selectionBg: 'ansi:magenta',
|
|
1024
|
+
rate_limit_fill: 'ansi:magentaBright',
|
|
1025
|
+
subagentStatusRunning: 'ansi:magentaBright',
|
|
1026
|
+
// The 16-color bar ladder: the base's dark anchor, the two magentas that
|
|
1027
|
+
// carry the sakura brand, then white/whiteBright as the pale tip (the
|
|
1028
|
+
// 16-color space has no paler pink). The ignition wave is drawn column by
|
|
1029
|
+
// column in truecolor, so its pair stays hex — an `ansi:*` value there falls
|
|
1030
|
+
// back to the blue pair instead of rendering — and its crest matches the
|
|
1031
|
+
// truecolor night preset rather than the neon #FF2D6F.
|
|
1032
|
+
contextBarPrompt: 'ansi:magenta',
|
|
1033
|
+
contextBarAssistant: 'ansi:magentaBright',
|
|
1034
|
+
contextBarThinking: 'ansi:white',
|
|
1035
|
+
contextBarTools: 'ansi:whiteBright',
|
|
1036
|
+
ignition: rgb('#F27BA6'),
|
|
1037
|
+
ignitionDim: rgb('#241A20'),
|
|
1038
|
+
};
|
|
767
1039
|
const normalizedThemeCache = new WeakMap();
|
|
768
1040
|
/** Include every own value so a mutable legacy resolver cannot serve stale data. */
|
|
769
1041
|
function themeObjectSignature(raw) {
|
|
@@ -824,7 +1096,8 @@ export function getTheme(themeName) {
|
|
|
824
1096
|
case 'dark-ansi':
|
|
825
1097
|
return darkAnsiTheme;
|
|
826
1098
|
// Built-in bases must resolve without touching the custom-theme resolver
|
|
827
|
-
// (same reasoning as `dark` above)
|
|
1099
|
+
// (same reasoning as `dark` above); the sakura family and the brand pairs
|
|
1100
|
+
// follow the same rule.
|
|
828
1101
|
case 'claude-dark':
|
|
829
1102
|
return claudeDarkTheme;
|
|
830
1103
|
case 'claude-paper':
|
|
@@ -833,6 +1106,12 @@ export function getTheme(themeName) {
|
|
|
833
1106
|
return codexLavenderTheme;
|
|
834
1107
|
case 'codex-paper':
|
|
835
1108
|
return codexPaperTheme;
|
|
1109
|
+
case 'pink-night':
|
|
1110
|
+
return pinkNightTheme;
|
|
1111
|
+
case 'pink-ansi':
|
|
1112
|
+
return pinkAnsiTheme;
|
|
1113
|
+
case 'pink-day':
|
|
1114
|
+
return pinkDayTheme;
|
|
836
1115
|
case AUTO_THEME_NAME:
|
|
837
1116
|
return autoBase === 'light' ? lightTheme : darkTheme;
|
|
838
1117
|
default: {
|
|
@@ -869,9 +1148,17 @@ export function isLightThemeActive(themeName) {
|
|
|
869
1148
|
// Built-ins answer by palette identity, never by luminance. An ANSI palette
|
|
870
1149
|
// has no parseable ink at all, and a future truecolor tweak must not silently
|
|
871
1150
|
// flip a whole family's contrast direction.
|
|
872
|
-
if (theme === lightTheme ||
|
|
1151
|
+
if (theme === lightTheme ||
|
|
1152
|
+
theme === pinkDayTheme ||
|
|
1153
|
+
theme === claudePaperTheme ||
|
|
1154
|
+
theme === codexPaperTheme)
|
|
873
1155
|
return true;
|
|
874
|
-
if (theme === darkTheme ||
|
|
1156
|
+
if (theme === darkTheme ||
|
|
1157
|
+
theme === darkAnsiTheme ||
|
|
1158
|
+
theme === pinkNightTheme ||
|
|
1159
|
+
theme === pinkAnsiTheme ||
|
|
1160
|
+
theme === claudeDarkTheme ||
|
|
1161
|
+
theme === codexLavenderTheme)
|
|
875
1162
|
return false;
|
|
876
1163
|
// 自定义或运行时主题:按文本墨色亮度判定——浅底配深墨(ink)、深底配亮墨。
|
|
877
1164
|
// 调色板的 background 字段是徽标填充色而非终端背景,不能作判据。墨色走
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeCatalog.d.ts","sourceRoot":"","sources":["../../src/themeCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,KAAK,EACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,yBAAyB,CAAA;AAEjF,mCAAmC;AACnC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE1E,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;
|
|
1
|
+
{"version":3,"file":"themeCatalog.d.ts","sourceRoot":"","sources":["../../src/themeCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,KAAK,EACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,yBAAyB,CAAA;AAEjF,mCAAmC;AACnC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE1E,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AA4HD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,iBAAiB,EAAE,CAMlF;AAED,iDAAiD;AACjD,eAAO,MAAM,UAAU,yBAAmB,CAAA;AAU1C,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CA6BlG;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,SAAS,CAExF;AAED,kEAAkE;AAClE,eAAO,MAAM,YAAY,0BAAoB,CAAA;AAE7C,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAEjE;AAED,iEAAiE;AACjE,eAAO,MAAM,cAAc,mBAAa,CAAA"}
|
|
@@ -20,10 +20,29 @@ function entry(name, displayName, source, theme, base, file) {
|
|
|
20
20
|
...(file === undefined ? {} : { file }),
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* The role each built-in plays as a `base`. The mist and sakura rows play one
|
|
25
|
+
* of the three classic roles (their own names are not bases); the brand pairs
|
|
26
|
+
* play the dark/light role of their brand family — the brand adaptation of
|
|
27
|
+
* `dark`/`light` (their own names are bases too, see THEME_BASE_NAMES).
|
|
28
|
+
* Total over THEME_NAMES, so a new built-in must decide a role to compile.
|
|
29
|
+
*/
|
|
30
|
+
const BUILT_IN_BASE = {
|
|
31
|
+
dark: 'dark',
|
|
32
|
+
'dark-ansi': 'dark-ansi',
|
|
33
|
+
light: 'light',
|
|
34
|
+
'pink-night': 'dark',
|
|
35
|
+
'pink-ansi': 'dark-ansi',
|
|
36
|
+
'pink-day': 'light',
|
|
37
|
+
'claude-dark': 'dark',
|
|
38
|
+
'claude-paper': 'light',
|
|
39
|
+
'codex-lavender': 'dark',
|
|
40
|
+
'codex-paper': 'light',
|
|
41
|
+
};
|
|
23
42
|
function builtInEntries() {
|
|
24
43
|
return [
|
|
25
44
|
entry(AUTO_THEME_NAME, AUTO_THEME_NAME, 'auto', getTheme(AUTO_THEME_NAME)),
|
|
26
|
-
...THEME_NAMES.map(name => entry(name, name, 'builtin', getTheme(name), name)),
|
|
45
|
+
...THEME_NAMES.map(name => entry(name, name, 'builtin', getTheme(name), BUILT_IN_BASE[name])),
|
|
27
46
|
];
|
|
28
47
|
}
|
|
29
48
|
function staticEntries(specs, seen) {
|
|
@@ -118,7 +137,7 @@ export function resolveThemeEntry(name, host) {
|
|
|
118
137
|
return entry(name, name, 'auto', getTheme(AUTO_THEME_NAME));
|
|
119
138
|
const builtIn = THEME_NAMES.find(candidate => candidate === name);
|
|
120
139
|
if (builtIn !== undefined)
|
|
121
|
-
return entry(builtIn, builtIn, 'builtin', getTheme(builtIn), builtIn);
|
|
140
|
+
return entry(builtIn, builtIn, 'builtin', getTheme(builtIn), BUILT_IN_BASE[builtIn]);
|
|
122
141
|
const spec = findStaticSpec(name);
|
|
123
142
|
if (spec !== undefined)
|
|
124
143
|
return entry(spec.name, spec.displayName, 'static', buildTheme(spec), spec.base, spec.file);
|
package/lib/types/tips.js
CHANGED
|
@@ -315,8 +315,8 @@ export const TIPS = [
|
|
|
315
315
|
{
|
|
316
316
|
id: 'cmd-model',
|
|
317
317
|
group: 'commands',
|
|
318
|
-
zh: '/model
|
|
319
|
-
en: '/model
|
|
318
|
+
zh: '/model 同会话换模型,历史不丢',
|
|
319
|
+
en: '/model switches in place: session and history are preserved',
|
|
320
320
|
},
|
|
321
321
|
{
|
|
322
322
|
id: 'cmd-effort',
|
|
@@ -405,8 +405,8 @@ export const TIPS = [
|
|
|
405
405
|
{
|
|
406
406
|
id: 'cmd-plugins',
|
|
407
407
|
group: 'commands',
|
|
408
|
-
zh: '/
|
|
409
|
-
en: '/
|
|
408
|
+
zh: '/plugin check <清单路径> 诊断插件兼容性',
|
|
409
|
+
en: '/plugin check <manifest> diagnoses plugin compatibility',
|
|
410
410
|
},
|
|
411
411
|
{
|
|
412
412
|
id: 'cmd-update',
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface TuiSettingsDocument {
|
|
2
|
+
readonly version: 1;
|
|
3
|
+
/** The sparse user layer: only what the user set. */
|
|
4
|
+
readonly values: Readonly<Record<string, unknown>>;
|
|
5
|
+
/** The one-time import from the DSH profile patch (absent = never ran). */
|
|
6
|
+
readonly imported?: {
|
|
7
|
+
readonly from: string;
|
|
8
|
+
readonly at: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export declare const TUI_SETTINGS_FILE: string;
|
|
12
|
+
/** The document, or undefined when there is none yet. A broken file reads as
|
|
13
|
+
* an empty layer (and is not re-imported over). Never throws. */
|
|
14
|
+
export declare function readTuiSettings(file?: string): TuiSettingsDocument | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Before the first write over a document `readTuiSettings` could not parse,
|
|
17
|
+
* keep its original bytes beside it as `<file>.corrupt-<timestamp>` (mode
|
|
18
|
+
* 0600). Returns the backup path; throws when the bytes cannot be preserved
|
|
19
|
+
* — the caller must then not replace the file.
|
|
20
|
+
*/
|
|
21
|
+
export declare function backupUnreadableTuiSettings(file?: string): string;
|
|
22
|
+
/** Write the document atomically; throws when it cannot be written. */
|
|
23
|
+
export declare function writeTuiSettings(document: TuiSettingsDocument, file?: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Write the document only when there is none yet; false when another process
|
|
26
|
+
* created it first. The complete file appears at once (a hard link of the
|
|
27
|
+
* temporary, which fails on an existing name); a filesystem without hard links
|
|
28
|
+
* falls back to an exclusive create, which never replaces a document either.
|
|
29
|
+
* Throws when it cannot be written.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTuiSettings(document: TuiSettingsDocument, file?: string): boolean;
|
|
32
|
+
/** The DSH profile's own patch layer, where DSH persisted the `/settings` layer. */
|
|
33
|
+
export declare function profilePatchPath(profile: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* The `dsh-tui` row's `config` in a DSH profile patch, restricted to `keys`
|
|
36
|
+
* (the editable fields; deployment fields such as the provider route stay in
|
|
37
|
+
* the profile). Undefined when the file or the row is missing or unreadable.
|
|
38
|
+
* `!!js` expressions are not evaluated: such a field is skipped (a top-level
|
|
39
|
+
* one's source is recorded in `expressions`, when given).
|
|
40
|
+
*/
|
|
41
|
+
export declare function readProfileTuiSettings(path: string, keys: readonly string[], expressions?: Map<string, string>): Record<string, unknown> | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* The `ns` section of the `/settings` user layer older DSH hosts kept in
|
|
44
|
+
* `<DSH home>/settings.yaml` (dsh-settings-file), restricted to `keys`. A DSH
|
|
45
|
+
* that has since moved the document into the profile patch leaves it as
|
|
46
|
+
* `settings.yaml.imported`; `pending` tells the two apart (a pending document
|
|
47
|
+
* still overrides the patch, an imported one is already beneath it).
|
|
48
|
+
*/
|
|
49
|
+
export declare function readLegacyTuiSettings(ns: string, keys: readonly string[]): {
|
|
50
|
+
readonly from: string;
|
|
51
|
+
readonly pending: boolean;
|
|
52
|
+
readonly values: Record<string, unknown>;
|
|
53
|
+
} | undefined;
|
|
54
|
+
/** `over` laid on `under`: nested records merge, anything else replaces. */
|
|
55
|
+
export declare function mergeSettingsLayers(under: Readonly<Record<string, unknown>>, over: Readonly<Record<string, unknown>>): Record<string, unknown>;
|
|
56
|
+
//# sourceMappingURL=tuiSettingsFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuiSettingsFile.d.ts","sourceRoot":"","sources":["../../src/tuiSettingsFile.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;AAED,eAAO,MAAM,iBAAiB,QAAkC,CAAA;AAEhE;kEACkE;AAClE,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAA0B,GAAG,mBAAmB,GAAG,SAAS,CAiBjG;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,GAAE,MAA0B,GAAG,MAAM,CAIpF;AAID,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,GAAE,MAA0B,GAAG,IAAI,CAUtG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,GAAE,MAA0B,GAAG,OAAO,CAsB1G;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAqBpJ;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAAS,CAerL;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO9I"}
|