@deepseek-harness-tui/dsh-tui 0.9.0 → 0.9.2
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 +69 -256
- package/bin/dsh-tui.js +172 -5
- package/cordis.patch.yml +16 -4
- package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -13
- package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -59
- package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -15
- package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -32
- package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -59
- package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -166
- package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -42
- package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -143
- package/dsh-ecosystem-spec/registry/README.md +14 -14
- package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -56
- package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -13
- package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -149
- package/lib/types/cc/hyperlink.d.ts +7 -1
- package/lib/types/cc/hyperlink.d.ts.map +1 -1
- package/lib/types/cc/hyperlink.js +3 -2
- package/lib/types/cc/markdown.d.ts.map +1 -1
- package/lib/types/cc/markdown.js +33 -3
- package/lib/types/cc/sessionColors.d.ts +27 -0
- package/lib/types/cc/sessionColors.d.ts.map +1 -0
- package/lib/types/cc/sessionColors.js +39 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +6 -0
- package/lib/types/components/AutoRecapRow.d.ts +23 -0
- package/lib/types/components/AutoRecapRow.d.ts.map +1 -0
- package/lib/types/components/AutoRecapRow.js +23 -0
- package/lib/types/components/ColorPicker.d.ts +17 -0
- package/lib/types/components/ColorPicker.d.ts.map +1 -0
- package/lib/types/components/ColorPicker.js +20 -0
- package/lib/types/components/CommandSuggestions.d.ts +3 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.d.ts +33 -0
- package/lib/types/components/ContextBarView.d.ts.map +1 -0
- package/lib/types/components/ContextBarView.js +46 -0
- package/lib/types/components/EffortInputBorder.d.ts +12 -1
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +22 -5
- package/lib/types/components/FileActionsPanel.d.ts +22 -0
- package/lib/types/components/FileActionsPanel.d.ts.map +1 -0
- package/lib/types/components/FileActionsPanel.js +28 -0
- package/lib/types/components/FileSuggestions.d.ts +3 -1
- package/lib/types/components/FileSuggestions.d.ts.map +1 -1
- package/lib/types/components/MessageList.d.ts +3 -1
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +13 -6
- package/lib/types/components/ModelPicker.d.ts +26 -4
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +26 -6
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +365 -57
- package/lib/types/components/RecapPanel.d.ts +25 -0
- package/lib/types/components/RecapPanel.d.ts.map +1 -0
- package/lib/types/components/RecapPanel.js +55 -0
- package/lib/types/components/ScrollbarGutter.d.ts.map +1 -1
- package/lib/types/components/ScrollbarGutter.js +55 -4
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +6 -4
- package/lib/types/components/SuggestionCard.d.ts +4 -2
- package/lib/types/components/SuggestionCard.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.js +9 -2
- package/lib/types/components/design-system/ThemeProvider.d.ts +7 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +2 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +8 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +36 -8
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +7 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +41 -9
- package/lib/types/dsh-adapter/channel.d.ts +101 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +969 -93
- package/lib/types/dsh-adapter/compat/index.d.ts +8 -6
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/index.js +8 -6
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +150 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/sessionLog.js +518 -41
- 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 +1 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +1 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.d.ts +10 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +5 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +317 -8
- package/lib/types/dsh-adapter/presets.d.ts +18 -0
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +31 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +29 -1
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +89 -5
- package/lib/types/dsh-adapter/questions.d.ts +19 -2
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +53 -10
- package/lib/types/dsh-adapter/recap.d.ts +49 -0
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -0
- package/lib/types/dsh-adapter/recap.js +121 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts +314 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessionTree.js +954 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts +15 -44
- package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
- package/lib/types/dsh-adapter/shortcuts.js +28 -165
- package/lib/types/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- package/lib/types/herdr.js +1 -1
- package/lib/types/i18n.d.ts +604 -176
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +206 -72
- package/lib/types/ink/log-update.d.ts.map +1 -1
- package/lib/types/ink/log-update.js +21 -0
- package/lib/types/migrationPrefs.d.ts +60 -0
- package/lib/types/migrationPrefs.d.ts.map +1 -0
- package/lib/types/migrationPrefs.js +97 -0
- package/lib/types/modelGroups.d.ts +72 -0
- package/lib/types/modelGroups.d.ts.map +1 -0
- package/lib/types/modelGroups.js +97 -0
- package/lib/types/modelRecents.d.ts +39 -0
- package/lib/types/modelRecents.d.ts.map +1 -0
- package/lib/types/modelRecents.js +97 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +11 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +31 -1
- package/lib/types/oauth.d.ts +15 -0
- package/lib/types/oauth.d.ts.map +1 -0
- package/lib/types/oauth.js +14 -0
- package/lib/types/plugin-spec/registry.d.ts +1 -1
- package/lib/types/plugin-spec/registry.js +1 -1
- package/lib/types/reload.d.ts +109 -0
- package/lib/types/reload.d.ts.map +1 -0
- package/lib/types/reload.js +118 -0
- package/lib/types/screens/Chat.d.ts +3 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +588 -64
- package/lib/types/screens/SessionTree.d.ts +27 -0
- package/lib/types/screens/SessionTree.d.ts.map +1 -0
- package/lib/types/screens/SessionTree.js +555 -0
- package/lib/types/screens/StatusLine.d.ts +0 -9
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +215 -52
- package/lib/types/screens/StatusMetrics.d.ts +35 -3
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +63 -8
- package/lib/types/screens/chatOverlay.d.ts +17 -1
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +3 -1
- package/lib/types/tips.d.ts.map +1 -1
- package/lib/types/tips.js +22 -4
- package/lib/types/update.d.ts +159 -0
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +496 -30
- package/lib/types/utils/debug.d.ts +1 -1
- package/lib/types/utils/debug.js +3 -3
- package/lib/types/utils/fileTarget.d.ts +46 -0
- package/lib/types/utils/fileTarget.d.ts.map +1 -0
- package/lib/types/utils/fileTarget.js +178 -0
- package/lib/types/utils/keymap.d.ts +134 -0
- package/lib/types/utils/keymap.d.ts.map +1 -0
- package/lib/types/utils/keymap.js +311 -0
- package/lib/types/utils/mentions.d.ts +25 -2
- package/lib/types/utils/mentions.d.ts.map +1 -1
- package/lib/types/utils/mentions.js +69 -10
- package/lib/types/utils/openExternal.d.ts +50 -0
- package/lib/types/utils/openExternal.d.ts.map +1 -0
- package/lib/types/utils/openExternal.js +170 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +140 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +11 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.d.ts +14 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.js +67 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.d.ts +64 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.js +170 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.d.ts +79 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.js +196 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.d.ts +68 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +193 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.d.ts +32 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.js +101 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.d.ts +31 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +68 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.d.ts +69 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +129 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +70 -0
- package/node_modules/@dsh-std/command/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/command/LICENSE +21 -21
- package/node_modules/@dsh-std/command/README.md +26 -26
- package/node_modules/@dsh-std/command/README.zh.md +28 -28
- package/node_modules/@dsh-std/command/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/command/package.json +22 -22
- package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/node_modules/@dsh-std/connection/README.md +42 -42
- package/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/node_modules/@dsh-std/connection/package.json +20 -20
- package/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/core/LICENSE +21 -21
- package/node_modules/@dsh-std/core/README.md +13 -13
- package/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/core/package.json +21 -21
- package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/node_modules/@dsh-std/manifest/README.md +5 -5
- package/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/manifest/package.json +20 -20
- package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/messages/LICENSE +21 -21
- package/node_modules/@dsh-std/messages/README.md +5 -5
- package/node_modules/@dsh-std/messages/README.zh.md +7 -7
- package/node_modules/@dsh-std/messages/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/messages/package.json +20 -20
- package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -54
- package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/node_modules/@dsh-std/presentation/README.md +27 -27
- package/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/presentation/package.json +25 -25
- package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/storage/LICENSE +21 -21
- package/node_modules/@dsh-std/storage/README.md +5 -5
- package/node_modules/@dsh-std/storage/README.zh.md +7 -7
- package/node_modules/@dsh-std/storage/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/storage/package.json +20 -20
- package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -56
- package/package.json +17 -5
- package/presets/liangshen/.dsh-tui-managed.json +1 -1
- package/presets/liangshen/instruction-hint.mjs +8 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -27
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -25
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -21
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
{
|
|
2
|
-
"profileVersion": "tui-admission/0.15",
|
|
3
|
-
"std": {
|
|
4
|
-
"repository": "https://github.com/Yan-Zero/dsh-std",
|
|
5
|
-
"submodule": "vendor/dsh-std",
|
|
6
|
-
"manifestVersion": "0.15"
|
|
7
|
-
},
|
|
8
|
-
"imports": [
|
|
9
|
-
{
|
|
10
|
-
"name": "commands",
|
|
11
|
-
"coordinates": {
|
|
12
|
-
"apiVersion": "commands.dsh/v1alpha1",
|
|
13
|
-
"kind": "Command"
|
|
14
|
-
},
|
|
15
|
-
"package": "@dsh-std/command",
|
|
16
|
-
"kind": "capability",
|
|
17
|
-
"permissions": [
|
|
18
|
-
"commands.invoke"
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"name": "storage.local",
|
|
23
|
-
"coordinates": {
|
|
24
|
-
"apiVersion": "storage.dsh/v1alpha1",
|
|
25
|
-
"kind": "LocalStorage"
|
|
26
|
-
},
|
|
27
|
-
"package": "@dsh-std/storage",
|
|
28
|
-
"kind": "capability",
|
|
29
|
-
"permissions": [
|
|
30
|
-
"storage.local.read",
|
|
31
|
-
"storage.local.write"
|
|
32
|
-
]
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"name": "messages.observe",
|
|
36
|
-
"coordinates": {
|
|
37
|
-
"apiVersion": "messages.dsh/v1alpha1",
|
|
38
|
-
"kind": "MessageObserver"
|
|
39
|
-
},
|
|
40
|
-
"package": "@dsh-std/messages",
|
|
41
|
-
"kind": "event",
|
|
42
|
-
"permissions": [
|
|
43
|
-
"messages.observe.read"
|
|
44
|
-
],
|
|
45
|
-
"eventEnvelope": "@dsh-std/messages/schema/message-observer-envelope-0.15.json"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"name": "presentation.open-external",
|
|
49
|
-
"coordinates": {
|
|
50
|
-
"apiVersion": "presentation.dsh/v1alpha1",
|
|
51
|
-
"kind": "OpenExternal"
|
|
52
|
-
},
|
|
53
|
-
"package": "@dsh-std/presentation",
|
|
54
|
-
"kind": "capability",
|
|
55
|
-
"permissions": []
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"name": "presentation.user-interaction",
|
|
59
|
-
"coordinates": {
|
|
60
|
-
"apiVersion": "presentation.dsh/v1alpha1",
|
|
61
|
-
"kind": "UserInteraction"
|
|
62
|
-
},
|
|
63
|
-
"package": "@dsh-std/presentation",
|
|
64
|
-
"kind": "capability",
|
|
65
|
-
"permissions": []
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"name": "presentation.external-redirect",
|
|
69
|
-
"coordinates": {
|
|
70
|
-
"apiVersion": "presentation.dsh/v1alpha1",
|
|
71
|
-
"kind": "ExternalRedirect"
|
|
72
|
-
},
|
|
73
|
-
"package": "@dsh-std/presentation",
|
|
74
|
-
"kind": "capability",
|
|
75
|
-
"permissions": []
|
|
76
|
-
}
|
|
77
|
-
],
|
|
78
|
-
"definitions": [
|
|
79
|
-
{
|
|
80
|
-
"name": "tui.decision-events",
|
|
81
|
-
"authority": "dsh-tui",
|
|
82
|
-
"coordinates": {
|
|
83
|
-
"apiVersion": "tui.dsh/v1alpha1",
|
|
84
|
-
"kind": "DecisionEvents"
|
|
85
|
-
},
|
|
86
|
-
"kind": "capability",
|
|
87
|
-
"profile": "registry/contracts/decision-events-v1alpha1.json",
|
|
88
|
-
"profileHash": "sha256:56440dde1b00c210b22761a0cba139ce0a20207330567777cebe1e48b494ceb0",
|
|
89
|
-
"permissions": [
|
|
90
|
-
"session.input.intercept",
|
|
91
|
-
"session.rewind.intercept",
|
|
92
|
-
"session.switch.intercept",
|
|
93
|
-
"session.compact.intercept"
|
|
94
|
-
]
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"name": "tui.channel",
|
|
98
|
-
"authority": "dsh-tui",
|
|
99
|
-
"coordinates": {
|
|
100
|
-
"apiVersion": "tui.dsh/v1alpha1",
|
|
101
|
-
"kind": "Channel"
|
|
102
|
-
},
|
|
103
|
-
"kind": "capability",
|
|
104
|
-
"profile": "registry/contracts/tui-channel-v1alpha1.json",
|
|
105
|
-
"profileHash": "sha256:2d0668656d999a8cacd363cd3c76207f9392118be8a83e6dd5f81b54ae063fe6",
|
|
106
|
-
"permissions": []
|
|
107
|
-
}
|
|
108
|
-
],
|
|
109
|
-
"extensions": [
|
|
110
|
-
{
|
|
111
|
-
"name": "workspace.provider",
|
|
112
|
-
"authority": "dsh-std",
|
|
113
|
-
"coordinates": {
|
|
114
|
-
"apiVersion": "workspace.dsh/v1alpha1",
|
|
115
|
-
"kind": "WorkspaceProvider"
|
|
116
|
-
},
|
|
117
|
-
"kind": "extension",
|
|
118
|
-
"package": "@dsh-std/workspace",
|
|
119
|
-
"permissions": []
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"name": "tui.settings-section",
|
|
123
|
-
"authority": "dsh-tui",
|
|
124
|
-
"coordinates": {
|
|
125
|
-
"apiVersion": "tui.dsh/v1alpha1",
|
|
126
|
-
"kind": "SettingsSection"
|
|
127
|
-
},
|
|
128
|
-
"kind": "extension",
|
|
129
|
-
"profile": "registry/contracts/settings-section-v1alpha1.json",
|
|
130
|
-
"profileHash": "sha256:685b0f17fe489f458e9b799811f61c42b858330584e95ecb97e7216b5be100ac",
|
|
131
|
-
"permissions": []
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"name": "tui.scene",
|
|
135
|
-
"authority": "dsh-tui",
|
|
136
|
-
"coordinates": {
|
|
137
|
-
"apiVersion": "tui.dsh/v1alpha1",
|
|
138
|
-
"kind": "Scene"
|
|
139
|
-
},
|
|
140
|
-
"kind": "extension",
|
|
141
|
-
"profile": "registry/contracts/scene-v1alpha1.json",
|
|
142
|
-
"profileHash": "sha256:69ce3ae26d60dea2ed170376db8a1fb5860c94bd192c62681423c1d848ec2b26",
|
|
143
|
-
"permissions": []
|
|
144
|
-
}
|
|
145
|
-
],
|
|
146
|
-
"facetApiVersions": [
|
|
147
|
-
"v1alpha1"
|
|
148
|
-
]
|
|
149
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"profileVersion": "tui-admission/0.15",
|
|
3
|
+
"std": {
|
|
4
|
+
"repository": "https://github.com/Yan-Zero/dsh-std",
|
|
5
|
+
"submodule": "vendor/dsh-std",
|
|
6
|
+
"manifestVersion": "0.15"
|
|
7
|
+
},
|
|
8
|
+
"imports": [
|
|
9
|
+
{
|
|
10
|
+
"name": "commands",
|
|
11
|
+
"coordinates": {
|
|
12
|
+
"apiVersion": "commands.dsh/v1alpha1",
|
|
13
|
+
"kind": "Command"
|
|
14
|
+
},
|
|
15
|
+
"package": "@dsh-std/command",
|
|
16
|
+
"kind": "capability",
|
|
17
|
+
"permissions": [
|
|
18
|
+
"commands.invoke"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "storage.local",
|
|
23
|
+
"coordinates": {
|
|
24
|
+
"apiVersion": "storage.dsh/v1alpha1",
|
|
25
|
+
"kind": "LocalStorage"
|
|
26
|
+
},
|
|
27
|
+
"package": "@dsh-std/storage",
|
|
28
|
+
"kind": "capability",
|
|
29
|
+
"permissions": [
|
|
30
|
+
"storage.local.read",
|
|
31
|
+
"storage.local.write"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "messages.observe",
|
|
36
|
+
"coordinates": {
|
|
37
|
+
"apiVersion": "messages.dsh/v1alpha1",
|
|
38
|
+
"kind": "MessageObserver"
|
|
39
|
+
},
|
|
40
|
+
"package": "@dsh-std/messages",
|
|
41
|
+
"kind": "event",
|
|
42
|
+
"permissions": [
|
|
43
|
+
"messages.observe.read"
|
|
44
|
+
],
|
|
45
|
+
"eventEnvelope": "@dsh-std/messages/schema/message-observer-envelope-0.15.json"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "presentation.open-external",
|
|
49
|
+
"coordinates": {
|
|
50
|
+
"apiVersion": "presentation.dsh/v1alpha1",
|
|
51
|
+
"kind": "OpenExternal"
|
|
52
|
+
},
|
|
53
|
+
"package": "@dsh-std/presentation",
|
|
54
|
+
"kind": "capability",
|
|
55
|
+
"permissions": []
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "presentation.user-interaction",
|
|
59
|
+
"coordinates": {
|
|
60
|
+
"apiVersion": "presentation.dsh/v1alpha1",
|
|
61
|
+
"kind": "UserInteraction"
|
|
62
|
+
},
|
|
63
|
+
"package": "@dsh-std/presentation",
|
|
64
|
+
"kind": "capability",
|
|
65
|
+
"permissions": []
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "presentation.external-redirect",
|
|
69
|
+
"coordinates": {
|
|
70
|
+
"apiVersion": "presentation.dsh/v1alpha1",
|
|
71
|
+
"kind": "ExternalRedirect"
|
|
72
|
+
},
|
|
73
|
+
"package": "@dsh-std/presentation",
|
|
74
|
+
"kind": "capability",
|
|
75
|
+
"permissions": []
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"definitions": [
|
|
79
|
+
{
|
|
80
|
+
"name": "tui.decision-events",
|
|
81
|
+
"authority": "dsh-tui",
|
|
82
|
+
"coordinates": {
|
|
83
|
+
"apiVersion": "tui.dsh/v1alpha1",
|
|
84
|
+
"kind": "DecisionEvents"
|
|
85
|
+
},
|
|
86
|
+
"kind": "capability",
|
|
87
|
+
"profile": "registry/contracts/decision-events-v1alpha1.json",
|
|
88
|
+
"profileHash": "sha256:56440dde1b00c210b22761a0cba139ce0a20207330567777cebe1e48b494ceb0",
|
|
89
|
+
"permissions": [
|
|
90
|
+
"session.input.intercept",
|
|
91
|
+
"session.rewind.intercept",
|
|
92
|
+
"session.switch.intercept",
|
|
93
|
+
"session.compact.intercept"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "tui.channel",
|
|
98
|
+
"authority": "dsh-tui",
|
|
99
|
+
"coordinates": {
|
|
100
|
+
"apiVersion": "tui.dsh/v1alpha1",
|
|
101
|
+
"kind": "Channel"
|
|
102
|
+
},
|
|
103
|
+
"kind": "capability",
|
|
104
|
+
"profile": "registry/contracts/tui-channel-v1alpha1.json",
|
|
105
|
+
"profileHash": "sha256:2d0668656d999a8cacd363cd3c76207f9392118be8a83e6dd5f81b54ae063fe6",
|
|
106
|
+
"permissions": []
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"extensions": [
|
|
110
|
+
{
|
|
111
|
+
"name": "workspace.provider",
|
|
112
|
+
"authority": "dsh-std",
|
|
113
|
+
"coordinates": {
|
|
114
|
+
"apiVersion": "workspace.dsh/v1alpha1",
|
|
115
|
+
"kind": "WorkspaceProvider"
|
|
116
|
+
},
|
|
117
|
+
"kind": "extension",
|
|
118
|
+
"package": "@dsh-std/workspace",
|
|
119
|
+
"permissions": []
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "tui.settings-section",
|
|
123
|
+
"authority": "dsh-tui",
|
|
124
|
+
"coordinates": {
|
|
125
|
+
"apiVersion": "tui.dsh/v1alpha1",
|
|
126
|
+
"kind": "SettingsSection"
|
|
127
|
+
},
|
|
128
|
+
"kind": "extension",
|
|
129
|
+
"profile": "registry/contracts/settings-section-v1alpha1.json",
|
|
130
|
+
"profileHash": "sha256:685b0f17fe489f458e9b799811f61c42b858330584e95ecb97e7216b5be100ac",
|
|
131
|
+
"permissions": []
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "tui.scene",
|
|
135
|
+
"authority": "dsh-tui",
|
|
136
|
+
"coordinates": {
|
|
137
|
+
"apiVersion": "tui.dsh/v1alpha1",
|
|
138
|
+
"kind": "Scene"
|
|
139
|
+
},
|
|
140
|
+
"kind": "extension",
|
|
141
|
+
"profile": "registry/contracts/scene-v1alpha1.json",
|
|
142
|
+
"profileHash": "sha256:69ce3ae26d60dea2ed170376db8a1fb5860c94bd192c62681423c1d848ec2b26",
|
|
143
|
+
"permissions": []
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"facetApiVersions": [
|
|
147
|
+
"v1alpha1"
|
|
148
|
+
]
|
|
149
|
+
}
|
|
@@ -4,6 +4,12 @@ export declare const OSC8_START = "\u001B]8;;";
|
|
|
4
4
|
export declare const OSC8_END = "\u0007";
|
|
5
5
|
type HyperlinkOptions = {
|
|
6
6
|
supportsHyperlinks?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Override the default blue styling of the display text — callers that
|
|
9
|
+
* already painted the content (code spans keep their permission color)
|
|
10
|
+
* pass the identity here so the OSC 8 wrap does not recolor it.
|
|
11
|
+
*/
|
|
12
|
+
style?: (text: string) => string;
|
|
7
13
|
};
|
|
8
14
|
/**
|
|
9
15
|
* Create a clickable hyperlink using OSC 8 escape sequences.
|
|
@@ -13,7 +19,7 @@ type HyperlinkOptions = {
|
|
|
13
19
|
* @param content - Optional content to display as the link text (only when hyperlinks are supported).
|
|
14
20
|
* If provided and hyperlinks are supported, this text is shown as a clickable link.
|
|
15
21
|
* If hyperlinks are not supported, content is ignored and only the URL is shown.
|
|
16
|
-
* @param options - Optional overrides for testing (supportsHyperlinks)
|
|
22
|
+
* @param options - Optional overrides for testing (supportsHyperlinks, style)
|
|
17
23
|
* @returns The OSC 8-wrapped blue link text, or the plain URL when the terminal lacks hyperlink support.
|
|
18
24
|
*/
|
|
19
25
|
export declare function createHyperlink(url: string, content?: string, options?: HyperlinkOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperlink.d.ts","sourceRoot":"","sources":["../../../src/cc/hyperlink.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,UAAU,eAAa,CAAA;AACpC,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,WAAS,CAAA;AAE9B,KAAK,gBAAgB,GAAG;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"hyperlink.d.ts","sourceRoot":"","sources":["../../../src/cc/hyperlink.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,UAAU,eAAa,CAAA;AACpC,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,WAAS,CAAA;AAE9B,KAAK,gBAAgB,GAAG;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACjC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAYR"}
|
|
@@ -15,7 +15,7 @@ export const OSC8_END = '\x07';
|
|
|
15
15
|
* @param content - Optional content to display as the link text (only when hyperlinks are supported).
|
|
16
16
|
* If provided and hyperlinks are supported, this text is shown as a clickable link.
|
|
17
17
|
* If hyperlinks are not supported, content is ignored and only the URL is shown.
|
|
18
|
-
* @param options - Optional overrides for testing (supportsHyperlinks)
|
|
18
|
+
* @param options - Optional overrides for testing (supportsHyperlinks, style)
|
|
19
19
|
* @returns The OSC 8-wrapped blue link text, or the plain URL when the terminal lacks hyperlink support.
|
|
20
20
|
*/
|
|
21
21
|
export function createHyperlink(url, content, options) {
|
|
@@ -26,6 +26,7 @@ export function createHyperlink(url, content, options) {
|
|
|
26
26
|
// Apply basic ANSI blue color - wrap-ansi preserves this across line breaks
|
|
27
27
|
// RGB colors (like theme colors) are NOT preserved by wrap-ansi with OSC 8
|
|
28
28
|
const displayText = content ?? url;
|
|
29
|
-
const
|
|
29
|
+
const style = options?.style ?? ((text) => chalk.blue(text));
|
|
30
|
+
const coloredText = style(displayText);
|
|
30
31
|
return `${OSC8_START}${url}${OSC8_END}${coloredText}${OSC8_START}${OSC8_END}`;
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/cc/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAA4B,KAAK,KAAK,EAAe,MAAM,QAAQ,CAAA;AAO1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/cc/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAA4B,KAAK,KAAK,EAAe,MAAM,QAAQ,CAAA;AAO1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA6BrD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAsED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,EACZ,SAAS,SAAI,EACb,iBAAiB,GAAE,MAAM,GAAG,IAAW,EACvC,MAAM,GAAE,KAAK,GAAG,IAAW,EAC3B,SAAS,GAAE,YAAY,GAAG,IAAW,GACpC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,YAAY,GAAG,IAAW,GACpC,MAAM,CAgBR;AA2SD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAUR"}
|
package/lib/types/cc/markdown.js
CHANGED
|
@@ -21,6 +21,7 @@ import { getActiveTheme } from '../theme.js';
|
|
|
21
21
|
import { buildSyntaxTheme } from './syntaxTheme.js';
|
|
22
22
|
import { logForDebugging } from '../utils/debug.js';
|
|
23
23
|
import { createHyperlink } from './hyperlink.js';
|
|
24
|
+
import { fileLinkUrl, linkifyFilePaths, looksLikeFilePath } from '../utils/fileTarget.js';
|
|
24
25
|
// '\n' is used unconditionally — os.EOL is '\r\n' on Windows, and the stray
|
|
25
26
|
// '\r' breaks the character-to-segment mapping in applyStylesToWrappedText,
|
|
26
27
|
// shifting styled text to the right.
|
|
@@ -71,6 +72,35 @@ export function configureMarked() {
|
|
|
71
72
|
function paintInlineCode(text) {
|
|
72
73
|
return colorize(text, getActiveTheme().permission, 'foreground');
|
|
73
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Inline code that reads as a file path becomes a clickable target (the
|
|
77
|
+
* OSC 8 wrap keeps the code's permission color via the identity style —
|
|
78
|
+
* createHyperlink's default blue would otherwise override it). Terminals
|
|
79
|
+
* without OSC 8 support keep the plain painted code span.
|
|
80
|
+
*/
|
|
81
|
+
function renderCodeSpan(token) {
|
|
82
|
+
const painted = paintInlineCode(token.text);
|
|
83
|
+
if (!looksLikeFilePath(token.text))
|
|
84
|
+
return painted;
|
|
85
|
+
if (!supportsHyperlinks())
|
|
86
|
+
return painted;
|
|
87
|
+
return createHyperlink(fileLinkUrl(token.text), painted, {
|
|
88
|
+
style: (text) => text,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Linkify path-like text into clickable file targets, then issue
|
|
93
|
+
* references (owner/repo#123). File spans exclude `#`, so the two
|
|
94
|
+
* linkifiers cannot nest or overlap. Without OSC 8 support the text stays
|
|
95
|
+
* untouched (createHyperlink's URL fallback would show the raw encoded
|
|
96
|
+
* `dsh-file:` payload — worse than plain text).
|
|
97
|
+
*/
|
|
98
|
+
function linkifyText(text) {
|
|
99
|
+
const withFiles = supportsHyperlinks()
|
|
100
|
+
? linkifyFilePaths(text, (path, display) => createHyperlink(fileLinkUrl(path), display))
|
|
101
|
+
: text;
|
|
102
|
+
return linkifyIssueReferences(withFiles);
|
|
103
|
+
}
|
|
74
104
|
/** A fresh context for block-level children: list state reset, no parent. */
|
|
75
105
|
function fresh(state) {
|
|
76
106
|
return { highlight: state.highlight, parent: null, listDepth: 0, ordinal: null };
|
|
@@ -134,7 +164,7 @@ function dispatch(token, state) {
|
|
|
134
164
|
if (isToken(token, 'code'))
|
|
135
165
|
return renderCodeBlock(token, state);
|
|
136
166
|
if (isToken(token, 'codespan'))
|
|
137
|
-
return
|
|
167
|
+
return renderCodeSpan(token);
|
|
138
168
|
if (isToken(token, 'em'))
|
|
139
169
|
return renderEmphasis(token, state);
|
|
140
170
|
if (isToken(token, 'strong'))
|
|
@@ -280,13 +310,13 @@ function renderText(token, state) {
|
|
|
280
310
|
const bullet = ordinal === null ? '-' : `${formatListMarker(listDepth, ordinal)}.`;
|
|
281
311
|
const body = token.tokens
|
|
282
312
|
? token.tokens.map(child => dispatch(child, withParent(state, token))).join('')
|
|
283
|
-
:
|
|
313
|
+
: linkifyText(token.text);
|
|
284
314
|
// Blue bullet marker: list structure gets a tint without loading the
|
|
285
315
|
// whole item (kimi-style `•` in the accent color).
|
|
286
316
|
const tinted = colorize(bullet, getActiveTheme().permission, 'foreground');
|
|
287
317
|
return `${tinted} ${body}${EOL}`;
|
|
288
318
|
}
|
|
289
|
-
return
|
|
319
|
+
return linkifyText(token.text);
|
|
290
320
|
}
|
|
291
321
|
function renderTable(token, state) {
|
|
292
322
|
const rows = [token.header, ...token.rows];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session accent colors for `/color` (CC's /color semantics): a small
|
|
3
|
+
* named palette that overrides the prompt-input border (and its session
|
|
4
|
+
* label chip) for ONE session, so side-by-side sessions can be told apart
|
|
5
|
+
* at a glance. The name is persisted per session via a `session/color`
|
|
6
|
+
* log event (channel.ts); these hex values are what the name resolves to
|
|
7
|
+
* at render time.
|
|
8
|
+
*
|
|
9
|
+
* Values are mid-tone hues (Radix accent family, the same family CC's
|
|
10
|
+
* /color palette comes from) chosen to stay readable as a border/accent
|
|
11
|
+
* on both light and dark terminals.
|
|
12
|
+
*/
|
|
13
|
+
/** Named session accent colors: name → hex. */
|
|
14
|
+
export declare const SESSION_COLORS: Readonly<Record<string, `#${string}`>>;
|
|
15
|
+
/** The accepted `/color <name>` names, in display order. */
|
|
16
|
+
export declare const SESSION_COLOR_NAMES: readonly string[];
|
|
17
|
+
/**
|
|
18
|
+
* Whether `name` is a known session accent color (used by both the
|
|
19
|
+
* command dispatch and the render-time resolution).
|
|
20
|
+
*/
|
|
21
|
+
export declare function isValidSessionColor(name: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a session color name to its hex value, or undefined when the
|
|
24
|
+
* name is unknown/empty (caller keeps the theme default).
|
|
25
|
+
*/
|
|
26
|
+
export declare function sessionColorHex(name: string): `#${string}` | undefined;
|
|
27
|
+
//# sourceMappingURL=sessionColors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionColors.d.ts","sourceRoot":"","sources":["../../../src/cc/sessionColors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC,CASjE,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAgC,CAAA;AAEjF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,GAAG,SAAS,CAEtE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session accent colors for `/color` (CC's /color semantics): a small
|
|
3
|
+
* named palette that overrides the prompt-input border (and its session
|
|
4
|
+
* label chip) for ONE session, so side-by-side sessions can be told apart
|
|
5
|
+
* at a glance. The name is persisted per session via a `session/color`
|
|
6
|
+
* log event (channel.ts); these hex values are what the name resolves to
|
|
7
|
+
* at render time.
|
|
8
|
+
*
|
|
9
|
+
* Values are mid-tone hues (Radix accent family, the same family CC's
|
|
10
|
+
* /color palette comes from) chosen to stay readable as a border/accent
|
|
11
|
+
* on both light and dark terminals.
|
|
12
|
+
*/
|
|
13
|
+
/** Named session accent colors: name → hex. */
|
|
14
|
+
export const SESSION_COLORS = {
|
|
15
|
+
red: '#E5484D',
|
|
16
|
+
orange: '#F76B15',
|
|
17
|
+
yellow: '#FFB224',
|
|
18
|
+
green: '#46A758',
|
|
19
|
+
blue: '#3E63DD',
|
|
20
|
+
purple: '#8E4EC6',
|
|
21
|
+
pink: '#D6409F',
|
|
22
|
+
cyan: '#12A594',
|
|
23
|
+
};
|
|
24
|
+
/** The accepted `/color <name>` names, in display order. */
|
|
25
|
+
export const SESSION_COLOR_NAMES = Object.keys(SESSION_COLORS);
|
|
26
|
+
/**
|
|
27
|
+
* Whether `name` is a known session accent color (used by both the
|
|
28
|
+
* command dispatch and the render-time resolution).
|
|
29
|
+
*/
|
|
30
|
+
export function isValidSessionColor(name) {
|
|
31
|
+
return Object.prototype.hasOwnProperty.call(SESSION_COLORS, name);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve a session color name to its hex value, or undefined when the
|
|
35
|
+
* name is unknown/empty (caller keeps the theme default).
|
|
36
|
+
*/
|
|
37
|
+
export function sessionColorHex(name) {
|
|
38
|
+
return isValidSessionColor(name) ? SESSION_COLORS[name] : undefined;
|
|
39
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAElF,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAElF,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,EAgExC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAElD,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIhG;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,YAAY,EAAmB,GAC7C,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,SAAS,YAAY,EAAmB,GAC7C,YAAY,EAAE,CAKhB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,SAAS,YAAY,EAAmB,EAC/C,QAAQ,GAAE,eAA0B,GACnC,iBAAiB,EAAE,CAuCrB"}
|
package/lib/types/commands.js
CHANGED
|
@@ -18,7 +18,10 @@ export const LOCAL_COMMANDS = [
|
|
|
18
18
|
{ name: 'compact', description: 'Compact the conversation history' },
|
|
19
19
|
{ name: 'resume', description: 'Resume a previous session' },
|
|
20
20
|
{ name: 'rename', description: 'Rename the current session' },
|
|
21
|
+
{ name: 'recap', description: 'Generate a recap of recent session activity' },
|
|
21
22
|
{ name: 'rewind', description: 'Rewind the conversation to a previous message' },
|
|
23
|
+
{ name: 'tree', description: 'Browse the session family tree (rewind / fork / adopt)' },
|
|
24
|
+
{ name: 'fork', description: 'Fork the current session into a resumable copy' },
|
|
22
25
|
{ name: 'export', description: 'Export the conversation to a markdown file' },
|
|
23
26
|
{ name: 'btw', description: 'Ask a quick side question without interrupting the conversation' },
|
|
24
27
|
{ name: 'trace', description: 'Show the session event trace timeline' },
|
|
@@ -27,6 +30,7 @@ export const LOCAL_COMMANDS = [
|
|
|
27
30
|
{ name: 'status', description: 'Show session status' },
|
|
28
31
|
{ name: 'cost', description: 'Show session token usage' },
|
|
29
32
|
{ name: 'config', description: 'Show the dsh-tui configuration source' },
|
|
33
|
+
{ name: 'reload', description: 'Reload preference files from disk and apply live' },
|
|
30
34
|
{ name: 'settings', description: 'View and edit plugin settings' },
|
|
31
35
|
{ name: 'doctor', description: 'Run environment checks' },
|
|
32
36
|
{ name: 'init', description: 'Create AGENTS.md in the working directory' },
|
|
@@ -35,6 +39,7 @@ export const LOCAL_COMMANDS = [
|
|
|
35
39
|
{ name: 'activity', description: 'Switch the working-activity indicator preset' },
|
|
36
40
|
{ name: 'preset', description: 'Switch the agent preset (including Liangshen mode)' },
|
|
37
41
|
{ name: 'theme', description: 'Switch the color theme (auto, built-in or custom)' },
|
|
42
|
+
{ name: 'color', description: 'Set the current session accent color' },
|
|
38
43
|
{ name: 'lang', description: 'Switch the UI language (en / zh)' },
|
|
39
44
|
{ name: 'model', description: 'Show the active model' },
|
|
40
45
|
{ name: 'effort', description: 'Adjust the reasoning effort (slider)' },
|
|
@@ -66,6 +71,7 @@ export const LOCAL_COMMANDS = [
|
|
|
66
71
|
// Help / exit
|
|
67
72
|
{ name: 'help', description: 'Show shortcuts and commands' },
|
|
68
73
|
{ name: 'tips', description: 'Show usage tips and shortcuts' },
|
|
74
|
+
{ name: 'restart', description: 'Restart dsh-tui and resume this session' },
|
|
69
75
|
{ name: 'exit', description: 'Exit dsh-tui' },
|
|
70
76
|
{ name: 'quit', description: 'Exit dsh-tui', tag: 'alias of /exit' },
|
|
71
77
|
{ name: 'q', description: 'Exit dsh-tui', tag: 'alias of /exit' },
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
|
|
4
|
+
* at the bottom of the transcript after an automatic summary on session
|
|
5
|
+
* open/resume — a thin divider, then a `回顾:` line showing the session
|
|
6
|
+
* tail in FULL (wraps over lines rather than truncating, like a colleague
|
|
7
|
+
* catching the user up). Hover reveals the affordances on their own row;
|
|
8
|
+
* click expands into the full RecapPanel; the dismiss chip hides the row
|
|
9
|
+
* until the next session switch. It bows out on its own once the user
|
|
10
|
+
* starts a new message (see Chat.tsx). Keyboard users keep `/recap` for
|
|
11
|
+
* the full panel.
|
|
12
|
+
*/
|
|
13
|
+
export declare function AutoRecapRow({ summary, streaming, onExpand, onDismiss, }: {
|
|
14
|
+
/** The one-line summary (streamed raw, then replaced on settle). */
|
|
15
|
+
summary: string;
|
|
16
|
+
/** True while the recap call is in flight. */
|
|
17
|
+
streaming: boolean;
|
|
18
|
+
/** Expand into the full RecapPanel (click on the row). */
|
|
19
|
+
onExpand: () => void;
|
|
20
|
+
/** Dismiss the row until the next session switch. */
|
|
21
|
+
onDismiss: () => void;
|
|
22
|
+
}): React.ReactNode;
|
|
23
|
+
//# sourceMappingURL=AutoRecapRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoRecapRow.d.ts","sourceRoot":"","sources":["../../../src/components/AutoRecapRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE;IACD,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,qDAAqD;IACrD,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB,GAAG,KAAK,CAAC,SAAS,CA6BlB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Box, Text } from '../ui.js';
|
|
4
|
+
import { Divider } from './design-system/Divider.js';
|
|
5
|
+
import { t } from '../i18n.js';
|
|
6
|
+
/**
|
|
7
|
+
* Auto-recap row (`dsh-tui.recapOnOpen` setting): a quiet, dim recap shown
|
|
8
|
+
* at the bottom of the transcript after an automatic summary on session
|
|
9
|
+
* open/resume — a thin divider, then a `回顾:` line showing the session
|
|
10
|
+
* tail in FULL (wraps over lines rather than truncating, like a colleague
|
|
11
|
+
* catching the user up). Hover reveals the affordances on their own row;
|
|
12
|
+
* click expands into the full RecapPanel; the dismiss chip hides the row
|
|
13
|
+
* until the next session switch. It bows out on its own once the user
|
|
14
|
+
* starts a new message (see Chat.tsx). Keyboard users keep `/recap` for
|
|
15
|
+
* the full panel.
|
|
16
|
+
*/
|
|
17
|
+
export function AutoRecapRow({ summary, streaming, onExpand, onDismiss, }) {
|
|
18
|
+
const [hovered, setHovered] = React.useState(false);
|
|
19
|
+
const line = t('recap-auto-line', {
|
|
20
|
+
summary: streaming ? t('recap-answering') : summary,
|
|
21
|
+
});
|
|
22
|
+
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Divider, {}), _jsxs(Box, { flexDirection: "column", marginTop: 1, marginLeft: 1, onClick: onExpand, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [_jsx(Text, { dimColor: !hovered, children: line }), hovered && (_jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: [" [", t('recap-auto-hint'), "]"] }), _jsx(Box, { onClick: onDismiss, children: _jsxs(Text, { color: "warning", children: [" [\u00D7 ", t('recap-auto-close'), "]"] }) })] }))] })] }));
|
|
23
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Session accent color picker (bare `/color`): a permission-colored Pane
|
|
4
|
+
* listing the whole palette with a colored swatch per row, `❯` focus
|
|
5
|
+
* pointer and `✓` on the session's current color. Enter applies through
|
|
6
|
+
* `channel.setSessionColor`, Esc cancels. The palette is static, so the
|
|
7
|
+
* picker never needs an async list.
|
|
8
|
+
*/
|
|
9
|
+
export declare function ColorPicker({ focusIndex, currentColor, onPick, }: {
|
|
10
|
+
focusIndex: number;
|
|
11
|
+
/** The session's current accent color name ('' = theme default). */
|
|
12
|
+
currentColor: string;
|
|
13
|
+
/** Mouse pick (fullscreen): clicked row's absolute index (Chat applies
|
|
14
|
+
* the same code path as the keyboard Enter). */
|
|
15
|
+
onPick?: (index: number) => void;
|
|
16
|
+
}): React.ReactNode;
|
|
17
|
+
//# sourceMappingURL=ColorPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorPicker.d.ts","sourceRoot":"","sources":["../../../src/components/ColorPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,YAAY,EACZ,MAAM,GACP,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAA;IACpB;qDACiD;IACjD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC,GAAG,KAAK,CAAC,SAAS,CA6BlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { t } from '../i18n.js';
|
|
3
|
+
import { Box, Text } from '../ui.js';
|
|
4
|
+
import { Pane } from './design-system/Pane.js';
|
|
5
|
+
import { Select } from './Select.js';
|
|
6
|
+
import { HintLine } from './design-system/HintLine.js';
|
|
7
|
+
import { SESSION_COLOR_NAMES, SESSION_COLORS } from '../cc/sessionColors.js';
|
|
8
|
+
/**
|
|
9
|
+
* Session accent color picker (bare `/color`): a permission-colored Pane
|
|
10
|
+
* listing the whole palette with a colored swatch per row, `❯` focus
|
|
11
|
+
* pointer and `✓` on the session's current color. Enter applies through
|
|
12
|
+
* `channel.setSessionColor`, Esc cancels. The palette is static, so the
|
|
13
|
+
* picker never needs an async list.
|
|
14
|
+
*/
|
|
15
|
+
export function ColorPicker({ focusIndex, currentColor, onPick, }) {
|
|
16
|
+
return (_jsx(Pane, { color: "permission", children: _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "remember", bold: true, children: t('picker-title-color') }) }), _jsx(Select, { options: SESSION_COLOR_NAMES.map(name => ({
|
|
17
|
+
value: name,
|
|
18
|
+
label: (_jsxs(Text, { children: [_jsx(Text, { color: SESSION_COLORS[name], children: "\u25CF " }), name] })),
|
|
19
|
+
})), focusIndex: focusIndex, selectedValue: currentColor === '' ? undefined : currentColor, onPick: onPick ? index => onPick(index) : undefined }), _jsx(Text, { dimColor: true, italic: true, children: _jsx(HintLine, { text: t('hint-confirm-exit') }) })] }) }));
|
|
20
|
+
}
|